Conferir dados de métricas usando a API

Você está visualizando a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
info

Use as APIs descritas abaixo para receber métricas da API Monitoring. As métricas são os valores de dados agregados pela API Monitoring com base nos dados brutos contidos nos registros da API Monitoring.

As seções a seguir descrevem como gerenciar métricas usando a API.

Consulte a API Metrics para saber mais.

Para informações sobre as opções de cURL usadas nesses exemplos, consulte Usar cURL.

APIs Metrics

O URL base usado para fazer uma solicitação GET à API Metrics é:

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

Em que resource corresponde a uma métrica específica. A tabela a seguir lista os recursos de métricas:

Recurso Descrição
/traffic Receber métricas de tráfego. Especifique filtros como nome do proxy, intervalo, janela de tempo, destino, código de status e muito mais.
/latency Conferir métricas de latência para solicitações

para destinos de back-end e Edge. Especifique filtros, como nome do proxy, intervalo, destino, código de status e muito mais.

/targets Receba todos os domínios de destino de uma organização e um ambiente específicos.
/alerthistory Receba métricas do histórico de alertas para uma organização e janela de tempo específicas.
/alertinstance/instanceid Receba métricas do histórico de alertas para o ID da instância de alerta específico.
/alertsummary Receba a contagem total de alertas para uma organização e uma janela de tempo.
/faultcodenames Conferir todos os nomes de faultcode.
/faultcodes Receber códigos de falha.
/faultcodecategories Receber categorias de código de falha.
/faultcodesubcategories Receber subcategorias de códigos de falha.
/faultcodedetails Receba todos os códigos de falha com detalhes.

Receber informações de falha

Todos os recursos /fault* retornam metadados sobre as possíveis falhas no Edge. Por exemplo, para ver a lista de todas as categorias de falha possíveis:

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

Defina $ACCESS_TOKEN como token de acesso do OAuth 2.0, conforme descrito em Receber um token de acesso do OAuth 2.0.

A resposta aparece como:

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

Em seguida, você pode determinar a lista de códigos de falha para a categoria 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 mais opções, consulte a API Metrics.

Capturar métricas de tráfego e latência

A API Metrics tem filtros que podem ser aplicados a ela para especificar intervalos de tempo, proxies, regiões, ambientes e outros filtros personalizados às métricas calculadas. Por exemplo, para conferir a métrica de transações por segundo (tps) a cada 10 minutos da hora anterior para todos os ambientes:

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" 

Defina $ACCESS_TOKEN como token de acesso do OAuth 2.0, conforme descrito em Receber um token de acesso do OAuth 2.0.

Essa chamada retorna os resultados no 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],
              
            ]
          },
       
       }
    }]
}

Observe como a propriedade columns especifica o formato de values. A propriedade values contém os tps calculados a cada 10 minutos, para o intervalo anterior de 10 minutos.

O parâmetro de consulta interval define a frequência com que a métrica é salva nos resultados e a janela de amostragem do valor nos resultados. No exemplo acima, a métrica é calculada nos 10 minutos anteriores e gravada nos resultados a cada 10 minutos.

Use os parâmetros de consulta from e to para especificar um período formatado em ISO. A duração máxima especificada por from e to é de 24 horas.

O formato da data pode ser:

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

Exemplo:

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"

Ou use os parâmetros de consulta from e to para especificar um período relativo, por exemplo, a ú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"

Outra opção é usar o parâmetro de consulta proxy para mostrar transações por segundo (tps) para um único 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 as métricas de latência, especifique muitos dos mesmos critérios das métricas de tráfego. No entanto, para o recurso /latency:

  • É necessário especificar o parâmetro de consulta percentile como 50, 90, 95 ou 99. Por exemplo, se você especificar 90, a API vai retornar o valor da latência de resposta total no percentil 90.
  • O windowsize é fixado em um minuto.

Por exemplo, para conferir as métricas da latência total no 90º percentil em um período de 1 minuto:

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 mais opções, consulte a API Metrics.

Capturar métricas para alertas

A API Metrics retorna métricas para todos os alertas, para um alerta específico ou para um resumo de alertas. Por exemplo, para conferir o histórico de alertas de uma organização nas últimas horas:

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"

Defina $ACCESS_TOKEN como token de acesso do OAuth 2.0, conforme descrito em Receber um token de acesso do OAuth 2.0.

Essa chamada de API retorna uma resposta no seguinte 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"
 },
 
]

Em seguida, use id na matriz retornada para receber informações sobre um alerta específico:

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 mais opções, consulte a API Metrics.