Consulta datos de métricas con la API

Estás viendo la documentación de Apigee Edge.
Ir 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 agregados por la supervisión de API a partir de los datos sin procesar que se encuentran en los registros de supervisión de API.

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

Consulta la 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

Donde 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 destino, 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 destino, el código de estado y muchos otros.

/targets Obtén todos los dominios de destino para 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 para 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 subcategorías de códigos de falla.
/faultcodedetails Obtén todos los códigos de falla con detalles.

Obtén información sobre 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, haz lo siguiente:

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 opciones adicionales, 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 períodos 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 durante 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 resultados en el siguiente formato:

{
  "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 las tps calculadas cada 10 minutos, para el intervalo de 10 minutos anterior.

El parámetro de consulta interval define la frecuencia con la que se guarda la métrica en los resultados y el período 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 período con formato ISO. La duración máxima especificada por 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"

O bien, usa los parámetros de consulta from y to para especificar un período 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, haz lo siguiente:

  • 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 para 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 de 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 en 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 opciones adicionales, consulta la API de Metrics.