Consulta datos de métricas con la API

Estás viendo la documentación de Apigee Edge.
Ve a la documentación de Apigee X.
info

Usa las APIs que se describen a continuación para obtener métricas de supervisión de API. Las métricas son los valores de datos que la supervisión de la API agrega a partir de los datos sin procesar que se incluyen en los registros de supervisión de la API.

En las siguientes secciones, se describe cómo administrar métricas con la API.

Consulta API de Metrics para obtener más información sobre la API de métricas.

Para obtener información sobre las opciones de cURL que se usan en estos ejemplos, consulta Usa cURL.

APIs de Metrics

La URL base que usas para realizar una solicitud GET a la API de Metrics es la siguiente:

https://apimonitoring.enterprise.apigee.com/metrics/resource

En el que resource corresponde a una métrica específica. En la siguiente tabla, se enumeran los recursos de métricas:

Recurso Descripción
/traffic Obtén métricas de tráfico. Especifica filtros, como el nombre del proxy, el intervalo, el período, el objetivo, el código de estado y muchos otros.
/latency Obtén métricas de latencia para las solicitudes

a Edge y a los destinos de backend. Especifica filtros, como el nombre del proxy, el intervalo, el objetivo, el código de estado y muchos otros.

/targets Obtén todos los dominios de destino de una organización y un entorno específicos.
/alerthistory Obtén métricas del historial de alertas para una organización y un período específicos.
/alertinstance/instanceid Obtén métricas del historial de alertas para el ID de instancia de alerta específico.
/alertsummary Obtén el recuento total de alertas de una organización y un período.
/faultcodenames Obtén todos los nombres de faultcode.
/faultcodes Obtén códigos de falla.
/faultcodecategories Obtén categorías de códigos de falla.
/faultcodesubcategories Obtén las subcategorías de los códigos de falla.
/faultcodedetails Obtén todos los códigos de falla con detalles.

Cómo obtener información de fallas

Todos los recursos /fault* muestran metadatos sobre las posibles fallas en Edge. Por ejemplo, para ver la lista de todas las categorías de fallas posibles, sigue estos pasos:

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/faultcodecategories" \
-H "accept: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN"

Configura $ACCESS_TOKEN como tu token de acceso de OAuth 2.0, como se describe en Obtén un token de acceso de OAuth 2.0.

La respuesta aparece de la siguiente manera:

{
  "faultCodeCategories":[
    "","API Protocol","Developer/App","Extension Policy","Gateway",
    "Mediation Policy","Mint","Security Policy","Sense","Traffic Mgmt Policy"
  ]
}

Luego, puedes determinar la lista de códigos de falla para la categoría API Protocol:

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/faultcodes?faultCodeCategory=API Protocol" \
-H "accept: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN"

Para obtener más opciones, consulta la API de Metrics.

Captura métricas de tráfico y latencia

La API de Metrics tiene filtros que puedes aplicar a la API para especificar intervalos de tiempo personalizados, proxies, regiones, entornos y otros filtros a las métricas calculadas. Por ejemplo, para ver la métrica de transacciones por segundo (tps) cada 10 minutos de la hora anterior para todos los entornos, haz lo siguiente:

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/traffic?from=-1h&to=now&select=tps&interval=10m&groupBy=env&org=myorg" \
-H "accept: application/json"  \
-H "Authorization: Bearer $ACCESS_TOKEN" 

Configura $ACCESS_TOKEN como tu token de acceso de OAuth 2.0, como se describe en Obtén un token de acceso de OAuth 2.0.

Esta llamada muestra los resultados de la siguiente forma:

{
  "results":[
    {
      "series":[
        {
          "name":"proxy",
        "tags":
             {
                "env":"prod",
                "intervalSeconds":"60",
                "org":"myorg",
                "region":"myregion"
              },
            "columns":["time","tps"],
            "values":[
              ["2018-08-15T13:10:00Z",5.03],
              ["2018-08-15T13:20:00Z",5.01],
              ["2018-08-15T13:30:00Z",5.81],
              ["2018-08-15T13:40:00Z",5.95],
              
            ]
          },
       
       }
    }]
}

Observa cómo la propiedad columns especifica el formato de values. La propiedad values contiene los tps calculados cada 10 minutos, para el intervalo anterior de 10 minutos.

El parámetro de consulta interval define la frecuencia con la que se guarda la métrica en los resultados y la ventana de muestreo para el valor en los resultados. En el ejemplo anterior, la métrica se calcula durante los 10 minutos anteriores y se escribe en los resultados cada 10 minutos.

Usa los parámetros de consulta from y to para especificar un intervalo de tiempo con formato ISO. La duración máxima que especifican from y to es de 24 horas.

El formato de fecha puede ser uno de los siguientes:

  • yyyy-mm-ddThh:mm:ssZ
  • yyyy-mm-ddThh:mm:ss+00:00

Por ejemplo:

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/traffic?from=2018-08-13T14%3A04%3A00Z&to=2018-08-13T14%3A10%3A00Z&select=tps&interval=1m&groupBy=env&org=myorg&proxy=PublicAPI" \
-H "accept: application/json"  \
-H "Authorization: Bearer $ACCESS_TOKEN"

También puedes usar los parámetros de consulta from y to para especificar un intervalo de tiempo relativo, por ejemplo, para la última hora:

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/traffic?from=-1h&to=now&select=tps&interval=1m&groupBy=env&org=myorg&proxy=PublicAPI" \
-H "accept: application/json"  \
-H "Authorization: Bearer $ACCESS_TOKEN"

Otra opción es usar el parámetro de consulta proxy para mostrar las transacciones por segundo (tps) de un solo proxy:

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/traffic?from=-1h&to=now&select=tps&interval=1m&groupBy=env&org=myorg&proxy=PublicAPI" \
-H "accept: application/json"  \
-H "Authorization: Bearer $ACCESS_TOKEN"

Para las métricas de latencia, especifica muchos de los mismos criterios que para las métricas de tráfico. Sin embargo, para el recurso /latency:

  • Debes especificar el parámetro de consulta percentile como 50, 90, 95 o 99. Por ejemplo, si especificas 90, la API muestra el valor total de latencia de respuesta en el percentil 90.
  • El windowsize se fija en un minuto.

Por ejemplo, para ver las métricas de la latencia total en el percentil 90 durante un período de 1 minuto, haz lo siguiente:

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/latency?percentile=90&select=totalLatency&from=-1h&to=now&interval=5m&windowsize=1m&groupBy=org,env,region&org=myorg" \
-H "accept: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN"

Para obtener opciones adicionales, consulta la API de Metrics.

Captura métricas para las alertas

La API de Metrics muestra métricas para todas las alertas, para una alerta específica o un resumen de alertas. Por ejemplo, para obtener el historial de alertas de una organización durante la última hora, haz lo siguiente:

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/alerthistory?org=myorg&from=-1h&to=now" \
-H "accept: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN"

Configura $ACCESS_TOKEN como tu token de acceso de OAuth 2.0, como se describe en Obtén un token de acceso de OAuth 2.0.

Esta llamada a la API muestra una respuesta con el siguiente formato:

[
  {
"id":"983c4c7a-c301-4697-95cc-9a7c53e05fac",
"organization":"myorg",
"environment":"prod",
"name":"Public Api 5xx error rate",
"type":"Alert",
"source":"https://www.apigee.net/sonar",
"raw_payload":"
{
    \"reportUUID\":\"\",
    \"reportEnabled\":false,
    \"organization\":\"myorg\",
    \"name\":\"Public Api 5xx error rate\",
    \"self\":\"/alerts/95cc9ef4-345f-11e8-9fd3-12774584e062\",
    \"description\":\"\",
    \"conditions\":[
    {
        \"comparator\":\"\u003e\",
        \"metric\":\"rate\",
        \"durationSeconds\":3600,
        \"name\":\"\",
        \"description\":\"\",
        \"threshold\":0.01,
        \"dimensions\":
        {
            \"proxy\":\"myAPI\",
            \"org\":\"myorg\",
            \"env\":\"prod\",
            \"region\":\"myRegion\",
            \"statusCode\":\"5xx\"
            }
        }],
        \"uuid\":\"95cc9ef4-345f-11e8-9fd3-12774584e062\",
    \"playbook\":\"This is a test alert.\"
    }",
"time":"2018-08-14T12:45:28Z"
 },
 
]

Luego, puedes usar el id en el array que se muestra para obtener información sobre una alerta específica:

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/alertinstance/983c4c7a-c301-4697-95cc-9a7c53e05fac" \
-H "accept: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN"

Para obtener más opciones, consulta la API de Metrics.