hefestoapicontainer

Logs y análisis

Api hefesto-analysis

Antes de nada, clona y despliega la api hefesto-analysis, que dota a tu virtual-host de varias funcionalidades que se explican a continuación para analizar tus logs.

Logs

Hefesto registra internamente toda la información de la request (path, queryParams, body si no es muy grande, etc) y toda la información de la response (status, headers, body si no es muy grande, etc) para las peticiones 2xx. Para las peticiones 4xx y 5xx registra además información del error que haya ocurrido.

La directiva Log va almacenando toda esta información de las peticiones y los jobs, en un registro de log, situado en el espacio en disco de la api. El registro de log con todas las peticiones se llamará hefesto-2023-01-10.log (las fechas irán cambiando).

No hace falta que configures la directiva Log, al crear una API desde el cliente vendrá configurada en el after de la API. Por lo que afectará a todos los endpoints.

Por defecto, Log se ejecuta en el grupo AFTER_FLOW, por lo que no se escribirá el registro de log hasta que la respuesta haya llegado al cliente. Por ello, no se aumentará la latencia de la petición http en la operación de escritura.

Análisis

Puedes conseguir información de una petición concreta de una API de esta manera:

    curl --location --request GET 'https://youradminhost.com/analysis/{api}/{operation}' \
        --header 'public-host: yourpublichost.com' \
        --header 'public-host-key: your-key'

Siendo los dominios y claves los explicados en virtual-host, y la api analysis, hefesto-analysis, la que se pide desplegar en la primera sección.

El endpoint acepta los siguientes parámetros:

Puedes conseguir un resumen de todas las peticiones de una API con este formato:

    [
        {
            "type": "REQUEST",
            "verb": "GET",
            "path": "/user",
            "status": 204,
            "count": 7,
            "percentage": 100
        },
        {
            "type": "REQUEST",
            "verb": "POST",
            "path": "/user",
            "status": 204,
            "count": 6,
            "percentage": 50
        },
        {
            "type": "REQUEST",
            "verb": "POST",
            "path": "/user",
            "status": 400,
            "count": 6,
            "percentage": 50
        },
        {
            "type": "INIT_JOB",
            "verb": "POST",
            "path": "/user",
            "status": 204,
            "count": 242,
            "percentage": 100
        }
    ]

Es decir, se analizan todas las peticiones, se agrupan por sus status, sus endpoints y si han sido gestionados por jobs o son peticiones http. De esta manera podemos conocer el porcentaje de errores que estamos teniendo en una API, el número de peticiones diarias, etc.

Para conseguir un informe como el anterior debemos hacer un petición como esta:

    curl --location --request POST 'https://youradminhost.com/analysis/{api}/analysis' \
        --header 'public-host: yourpublichost.com' \
        --header 'public-host-key: your-key'

Siendo los dominios y claves los explicados en virtual-host, y la api analysis, hefesto-analysis, la que se pide desplegar en la primera sección.

El endpoint acepta los siguientes parámetros:

Ir a la home