Conferir dados de métricas usando a API

Você está vendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
informações

Use as APIs descritas abaixo para conferir as métricas do monitoramento de APIs. As métricas são os valores de dados agregados pelo monitoramento de APIs dos dados brutos contidos nos registros da API Monitoring.

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

Consulte API Metrics para saber mais sobre a API Metrics.

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

APIs de métricas

O URL base que você usa para fazer uma solicitação GET para a 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 Conferir métricas de tráfego. Especifique filtros como nome de proxy, intervalo, janela de tempo, destino, código de status e muitos outros.
/latency Receber métricas de latência para solicitações

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

/targets Acessar todos os domínios de destino para uma organização e um ambiente específicos.
/alerthistory Acesse as métricas do histórico de alertas de uma organização e um período específicos.
/alertinstance/instanceid Acessar métricas do histórico de alertas para o ID específico da instância de alerta.
/alertsummary Receber o número total de alertas de uma organização e um período.
/faultcodenames Extrai todos os nomes de códigos de falha.
/faultcodes Receber códigos de falha.
/faultcodecategories Obter categorias de código de falha.
/faultcodesubcategories Consiga subcategorias de código de falha.
/faultcodedetails Conferir todos os códigos de falha com detalhes.

Receber informações de falhas

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"
  ]
}

Assim, é possível determinar a lista de códigos de falhas 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 à API para especificar períodos personalizados, proxies, regiões, ambientes e outros filtros para as métricas calculadas. Por exemplo, para visualizar a métrica de transações por segundo (tps) a cada 10 minutos na 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 formulário:

{
  "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 as tps calculadas a cada 10 minutos, para o intervalo de 10 minutos anteriores.

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 com base nos últimos 10 minutos e gravada nos resultados a cada 10 minutos.

Use os parâmetros de consulta from e to para especificar um período no formato 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, 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 exibir 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 métricas de latência, especifique muitos dos mesmos critérios para métricas de tráfego. No entanto, para o recurso /latency:

  • É preciso 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 da latência da resposta no 90o percentil.
  • O windowsize é corrigido em um minuto.

Por exemplo, para visualizar as métricas da latência total no 90o percentil para 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 mais opções, consulte API Metrics.

Capturar métricas para alertas

A API Metrics retorna métricas de todos os alertas, de um alerta específico ou de um resumo. 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 formulário:

[
  {
"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"
 },
 …
]

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