Conferir dados de métricas usando a API

Você está lendo 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 dos 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 mais informações sobre a API Metrics.

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 muitos outros.
/latency Receber métricas de latência para solicitações

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

/targets Receber todos os domínios de destino de uma organização e ambiente específicos.
/alerthistory Receber métricas do histórico de alertas de uma organização e janela de tempo específicas.
/alertinstance/instanceid Receber métricas do histórico de alertas para o ID da instância de alerta específica.
/alertsummary Receber a contagem total de alertas de uma organização e janela de tempo.
/faultcodenames Receber todos os nomes de faultcode.
/faultcodes Receber códigos de falha.
/faultcodecategories Receber categorias de códigos de falha.
/faultcodesubcategories Receber subcategorias de códigos de falha.
/faultcodedetails Receber 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 conferir a lista de todas as categorias de falhas 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, é possível 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 outras opções, consulte a API Metrics.

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

A API Metrics tem filtros que podem ser aplicados à API para especificar intervalos de tempo personalizados, proxies, regiões, ambientes e outros filtros para as 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 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 o tps calculado a cada 10 minutos, para o intervalo de 10 minutos anterior.

O parâmetro de consulta interval define a frequência com que a métrica é salva nos resultados e a janela de amostragem para o 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 intervalo de tempo formatado em ISO. A duração máxima especificada por from e to é de 24 horas.

O formato de 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 intervalo de tempo relativo, por exemplo, para 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 as transações por segundo (tps) de 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 métricas de latência, especifique muitos dos mesmos critérios que para 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 retornará o valor total de latência de resposta no 90º percentil.
  • O windowsize é fixo em um minuto.

Por exemplo, para conferir as métricas da latência total no 90º percentil de uma janela 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 outras opções, consulte a API Metrics.

Capturar métricas de alertas

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

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 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, é possível usar o 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 outras opções, consulte a API Metrics.