Consulta datos de métricas con la API

Estás consultando la documentación de Apigee Edge.
Consulta la documentación de Apigee X.
Información

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

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

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

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 utilizas para realizar una solicitud GET a la API de métricas es la siguiente:

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

En el ejemplo anterior, 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 y el código de estado, entre otros.
/latency Obtén métricas de latencia para las solicitudes

a destinos perimetrales y de backend. Especifica filtros, como nombre de proxy, intervalo, objetivo, código de estado y muchos más.

/targets Obtener 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 códigos de fallas.
/faultcodes Obtener códigos de falla
/faultcodecategories Obtiene categorías de códigos de fallas.
/faultcodesubcategories Obtén subcategorías de códigos de falla.
/faultcodedetails Obtén todo el código de fallas con los detalles.

Obtener información sobre fallas

Todos los recursos /fault* muestran metadatos sobre los posibles errores 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 se muestra 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 fallas 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 ver más opciones, consulta la API de Metrics.

Captura métricas de tráfico y latencia

La API de métricas 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, si quieres ver la métrica de transacciones por segundo (tps) cada 10 minutos durante la hora anterior para todos los entornos, usa este comando:

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 con 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 los tps calculados 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 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 especificada por from y to es de 24 horas.

El formato de la 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 usa los parámetros de consulta from y to a fin de 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"

En el caso de 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 sucede 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 de latencia de respuesta total en el percentil 90.
  • El windowsize se fija en un minuto.

Por ejemplo, para ver las métricas de latencia total en el percentil 90 de 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 ver más opciones, consulta API de Metrics.

Captura de métricas para las alertas

La API de Metrics muestra métricas para todas las alertas, 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 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 ver más opciones, consulta la API de Metrics.