Usar a API de detecção de anomalias

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

A maioria das APIs usadas para criar e gerenciar alertas de anomalias e coletar métricas de anomalias são as mesmas usadas com os alertas fixos. As APIs de alerta abaixo funcionam da mesma forma para alertas fixos e de anomalias:

No entanto, algumas APIs têm mais prioridades usadas para oferecer suporte a alertas de anomalias. Veja abaixo alguns exemplos:

Como definir $ACCESS_TOKEN

Todas as chamadas de API mostradas abaixo transmitem as credenciais em uma variável de ambiente chamada $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. Para informações sobre as opções de cURL usadas nesses exemplos, consulte Usar cURL (em inglês).

Receber alertas

Por padrão, a API Receber alertas retorna informações sobre todos os alertas definidos. Agora, essa API usa parâmetros de consulta para que você filtre os resultados:

  • enabled: se true especifica que são retornados apenas alertas ativados. O valor padrão é false.
  • alertType: especifica o tipo de alerta a ser retornado. Os valores permitidos são runtime, o padrão, cert.
  • alertSubType: especifica o subtipo de alerta a ser retornado. O valor padrão não é definido, o que significa que retorna todos os subtipos de alerta. Especifique anomaly para retornar alertas de anomalias.

Por exemplo, use a seguinte chamada de API para retornar apenas os alertas para a organização chamada myorg:

curl -H "Authorization: Bearer $ACCESS_TOKEN" \
'https://apimonitoring.enterprise.apigee.com/alerts?org=myorg&enabled=true'

A chamada a seguir retorna apenas alertas de anomalias, ativados e desativados:

curl -H "Authorization: Bearer $ACCESS_TOKEN" \
'https://apimonitoring.enterprise.apigee.com/alerts?org=myorg&alertType=runtime&alertSubType=anomaly'

Criar ou atualizar um alerta de anomalia

Use as mesmas APIs para criar ou atualizar um alerta de anomalias como é feito atualmente para um alerta fixo. O corpo da chamada de API para criar ou atualizar um alerta de anomalia é o mesmo usado para um alerta fixo, com as seguintes alterações:

  • Você precisa adicionar as novas propriedades a seguir para especificar que o alerta é uma anomalia:

    "alertType": "runtime"
    "alertSubType": "anomaly"

    Os valores padrão dessas propriedades são:

    "alertType": "runtime"
    "alertSubType": "fixed"
  • Na matriz conditions:

    • A propriedade metrics assume apenas os valores de:

      • count: gera um alerta sobre contagens de erros HTTP.
      • totalLatency: gera um alerta de latência.
    • A propriedade threshold usa uma string em vez de um número. Os valores aceitos incluem: slight, moderate e severe.
    • As propriedades durationSeconds e comparator não são compatíveis.
  • No elemento dimensions da matriz conditions:

    • Defina o valor da propriedade proxy como ALL.
    • A propriedade statusCode aceita apenas o valor 4xx, 503, 504, and 5xx.
    • As propriedades developerApp, collection, faultCodeCategory, faultCodeSubCategory e faultCodeName não são compatíveis.
  • A propriedade reportEnabled não é compatível com alertas de anomalias.

O exemplo de chamada de API a seguir cria um alerta de anomalia que é acionado quando os códigos de status 5xx ocorrem a uma taxa moderada para todos os proxies de API no ambiente prod de qualquer região. Uma notificação é enviada para o endereço de e-mail especificado quando o alerta é acionado.

curl 'https://apimonitoring.enterprise.apigee.com/alerts' \
 -X POST \
 -H 'Accept: application/json, text/plain, */*' -H "Content-Type: application/json" \
 -H "Authorization: Bearer $ACCESS_TOKEN" \
 -d '{
     "organization":"myorg",
     "name":"5xx Anomaly Alert",
     "description":"My 5xx alert",
     "environment":"prod",
     "enabled":true,
     "alertType": "runtime",
     "alertSubType": "anomaly",
     "conditions":[
     {
        "description":"",
        "dimensions":{
            "org":"myorg",
            "env":"prod",
            "proxy":"ALL",
            "region":"ANY",
            "statusCode":"5xx"
        },
        "metric":"count",
        "threshold": "moderate"
     }
     ],
     "notifications":[{
         "channel":"email",
         "destination":"ops@acme.com"
     }],
     "playbook":"http://acme.com/myplaybook.html",
     "throttleIntervalSeconds":3600
    }'

Usar a API de eventos com anomalias

Use a API /metrics/events para acessar todos os eventos de uma organização por um intervalo de tempo especificado. A lista de eventos inclui anomalias detectadas pelo Edge e qualquer alerta acionado. Os alertas podem incluir alertas fixos e de anomalias.

Por padrão, a API retorna todos os eventos da hora anterior. Use os parâmetros de consulta from e to para especificar uma duração diferente. Os valores do parâmetro de consulta from e to para especificar uma duração diferente.

Por exemplo, a seguinte chamada de API retorna todos os eventos na organização myorg referentes às 12 horas anteriores:

curl -H "Authorization: Bearer $ACCESS_TOKEN" \
"https://apimonitoring.enterprise.apigee.com/metrics/events?org=myorg&from=-12h&to=now"

Defina $ACCESS_TOKEN como token de acesso do OAuth 2.0, conforme descrito em Receber um token de acesso do OAuth 2.0. Para informações sobre as opções de cURL usadas neste exemplo, consulte Usar cURL (em inglês).

A próxima chamada retorna todos os eventos de anomalia com um limite moderado nas últimas 24 horas:

curl -H "Authorization: Bearer $ACCESS_TOKEN" \
"https://apimonitoring.enterprise.apigee.com/metrics/events?org=myorg&type=anomaly&threshold=moderate&from=-24h&to=now"

Apenas o parâmetro de consulta org é necessário para esta API. Junto com os parâmetros de consulta descritos no documento da API em /metrics/events, essa API é compatível com as seguintes opções para oferecer compatibilidade com a detecção de anomalias:

Nome Descrição Padrão
threshold

Filtre eventos pelo limite especificado: slight, moderate ou severe.

Permitido apenas quando você define type=anomaly.

Todas as gravidades
type Filtre eventos pelo tipo especificado: alert ou anomaly. Especifique diversos valores como uma lista separada por vírgulas. Todos os tipos