Você está vendo a documentação do Apigee Edge.
Acesse a
documentação da
Apigee X. info
Nas seções a seguir, descrevemos como gerenciar alertas usando a API.
Consulte a API Alerts para saber mais sobre a API Alerts.
Configurar alertas e notificações usando a API
Configure alertas e notificações emitindo uma solicitação POST para o seguinte recurso: https://apimonitoring.enterprise.apigee.com/alerts.
As seções a seguir fornecem exemplos de configuração de alertas e notificações usando a API:
- Configure um alerta de código de status 5xx para um proxy de API usando a API
- Configurar um alerta de latência p95 para um proxy de API usando a API
- Configurar um alerta de código de status 404 (Aplicativo não encontrado) para todos os proxies de API usando a API
- Configurar um alerta de contagem de proxy de API para APIs usando a API
- Configurar um alerta de taxa de erro para serviços de destino usando a API
- Configurar um alerta de taxa de erro para a política da Service Callout usando a API
- Configurar um alerta de código de falha para APIs usando a API
Configurar um alerta de código de status 5xx para um proxy de API usando a API
O exemplo a seguir mostra como configurar um alerta que é acionado quando os códigos de status 5xx ocorrem a uma taxa maior que 100 transações por segundo (TPS) por 10 minutos para o proxy da API Hotels no ambiente de produção para 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 Alert", "description":"My 5xx alert", "environment":"prod", "enabled":true, "conditions":[ { "description":"", "dimensions":{ "org":"myorg", "env":"prod", "proxy":"hotels", "region":"ANY", "statusCode":"5xx" }, "metric":"tps", "threshold":100, "durationSeconds":600, "comparator":">" } ], "notifications":[{ "channel":"email", "destination":"ops@acme.com" }], "playbook":"http://acme.com/myplaybook.html", "throttleIntervalSeconds":3600, "reportEnabled":true }'
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).
Configurar um alerta de latência do 95º percentil para um proxy de API usando a API
O exemplo a seguir mostra como configurar um alerta que é acionado se a latência de resposta total do 95º percentil for maior que 100 ms por cinco minutos para o proxy da API Hotel no ambiente de produção para qualquer região.
Uma notificação é enviada para o Webhook especificado no caso em que 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":"My Alert", "description":"My first alert", "environment":"prod", "enabled":true, "conditions":[ { "description":"", "dimensions":{ "org":"myorg", "env":"prod", "proxy" : "hotels", "region":"ANY", "percentile":"95" }, "metric":"totalLatency", "threshold":100, "durationSeconds":300, "comparator":">" } ], "notifications":[{ "channel":"webhook", "destination":"https://apigee.com/test-webhook"}], "playbook":"http://acme.com/myplaybook.html", "throttleIntervalSeconds":3600, "reportEnabled":true }'
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).
Configurar um alerta de código de status 404 (aplicativo não encontrado) para todos os proxies de API usando a API
O exemplo a seguir mostra como configurar um alerta que é acionado quando os códigos de status HTTP 404 ocorrem a uma taxa maior que 10% por cinco minutos para todos os proxies de API no ambiente de produção para qualquer região.
Uma notificação é enviada ao canal especificado do Slack 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":"404 Application Not Found Alert", "description":"My 404 alert", "environment":"prod", "enabled":true, "conditions":[ { "description":"", "dimensions":{"org":"myorg", "env":"prod", "proxy":"ALL", "region":"ANY", "statusCode":"404"}, "metric":"rate", "threshold":0.05, "durationSeconds":300, "comparator":">" }], "notifications":[{ "channel":"slack", "destination":"https://hooks.slack.com/services/T00000000/B00000000/XXXXX"}], "playbook":"http://acme.com/myplaybook.html", "throttleIntervalSeconds":3600, "reportEnabled":true }'
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).
Configurar um alerta de contagem de proxy de API para APIs usando a API
Veja a seguir um exemplo de como configurar um alerta que é acionado quando a contagem de código 5xx para APIs excede 200 por 5 minutos para qualquer região.
Neste exemplo, as APIs são capturadas no conjunto de proxies de API críticos (com UUID aeff4394-86b7-11e8-83d7-42010a840040). Para encontrar o UUID de uma coleção, consulte Visualizar todas as coleções usando a API.
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":"Proxy Count Alert", "description":"My proxy count alert", "environment":"prod", "enabled":true, "conditions":[ { "description":"", "dimensions":{ "collection":"aeff4394-86b7-11e8-83d7-42010a840040", "org":"myorg", "env":"prod", "proxy" : "ANY", "region":"ANY", "statusCode":"5xx" }, "metric":"count", "threshold":200, "durationSeconds":300, "comparator":">" } ], "notifications":[{ "channel":"email", "destination":"ops@acme.com" }], "playbook":"http://acme.com/myplaybook.html", "throttleIntervalSeconds":3600, "reportEnabled":true }'
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).
Configurar um alerta de taxa de erros para serviços de destino usando a API
Veja a seguir um exemplo de como configurar um alerta que é acionado quando a taxa de código 500 dos serviços de destino excede 10% para uma hora para qualquer região.
Neste exemplo, os serviços de destino são capturados na coleção de destinos críticos (com UUID aeff4394-86b7-11e8-83d7-42010a840040). Para encontrar o UUID de uma coleção, consulte Visualizar todas as coleções usando a API.
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":"Error rate Alert", "description":"My error rate alert", "environment":"prod", "enabled":true, "conditions":[ { "description":"", "dimensions":{ "collection":"aeff4394-86b7-11e8-83d7-42010a840040", "org":"myorg", "env":"prod", "proxy" : "ANY", "region":"ANY", "statusCode":"500" }, "metric":"rate", "threshold":0.1, "durationSeconds":3600, "comparator":">" } ], "notifications":[{ "channel":"email", "destination":"ops@acme.com" }], "playbook":"http://acme.com/myplaybook.html", "throttleIntervalSeconds":3600, "reportEnabled":true }'
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).
Configurar um alerta de taxa de erro para a política da Service Callout usando a API
Veja a seguir um exemplo de como configurar um alerta acionado quando a taxa de código 500 do serviço especificado pela política ServiceCallout excede 10% por 1 hora para qualquer região.
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":"Error rate Alert", "description":"My error rate alert", "environment":"prod", "enabled":true, "conditions":[ { "description":"", "dimensions":{ "target": "sc://docstore-api", "org":"myorg", "env":"prod", "proxy" : "ANY", "region":"ANY", "statusCode":"500" }, "metric":"rate", "threshold":0.1, "durationSeconds":3600, "comparator":">" } ], "notifications":[{ "channel":"email", "destination":"ops@acme.com" }], "playbook":"http://acme.com/myplaybook.html", "throttleIntervalSeconds":3600, "reportEnabled":true }'
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).
Configurar um alerta de código de falha de política usando a API
O exemplo a seguir mostra como configurar um alerta que é acionado quando uma das seguintes condições é atendida:
- A contagem de códigos de falha
SpikeArrestViolation
é maior que 10 por 5 minutos para APIs no ambiente de produção para qualquer região. - A contagem de todos os códigos de falha do protocolo da API é superior a 3% por cinco minutos para APIs no ambiente de produção de qualquer região.
Neste exemplo, as APIs são capturadas no conjunto de proxies de API críticos (com UUID aeff4394-86b7-11e8-83d7-42010a840040). Para encontrar o UUID de uma coleção, consulte Visualizar todas as coleções usando a API.
Uma notificação é enviada ao código PagerDuty 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":"My Fault Code Alert", "description":"My fault code alert", "environment":"prod", "enabled":true, "conditions":[ { "description":"", "dimensions": { "collection":"aeff4394-86b7-11e8-83d7-42010a840040", "org":"myorg", "env":"prod", "proxy":"ANY", "region":"ANY", "faultCodeCategory":"Traffic Mgmt Policy", "faultCodeSubCategory":"Spike Arrest", "faultCodeName":"SpikeArrest Violation" }, "metric":"count, "threshold":10, "durationSeconds":300, "comparator":">" }, { "description":"", "dimensions": { "collection":"aeff4394-86b7-11e8-83d7-42010a840040", "org":"myorg", "env":"prod", "proxy":"ANY", "region":"ANY", "faultCodeCategory":"API Protocol", "faultCodeSubCategory":"ALL" }, "metric":"rate", "threshold":0.03, "durationSeconds":300, "comparator":">" } ], "notifications":[{ "channel":"pagerduty", "destination":"abcd1234efgh56789"}], "playbook":"http://acme.com/myplaybook.html", "throttleIntervalSeconds":3600, "reportEnabled":true }'
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).
Visualizar alertas e notificações
Nas seções a seguir, apresentamos exemplos de como visualizar definições de alerta e informações sobre alertas acionados usando a API:
- Visualizar todas as definições de alerta de uma organização
- Visualizar uma definição de alerta específica
- Visualizar o histórico de alertas acionados para uma organização
- Visualizar o histórico de alertas específicos
Ver todas as definições de alerta de uma organização
Confira todas as definições de alerta e notificação emitindo uma solicitação GET para a seguinte API: https://apimonitoring.enterprise.apigee.com/alerts.
Você precisa passar o nome da organização usando o parâmetro de consulta org
.
Exemplo:
curl 'https://apimonitoring.enterprise.apigee.com/alerts?org=myorg' -X GET -H 'Accept: application/json, text/plain, */*' -H "Authorization: Bearer $ACCESS_TOKEN"
O UUID do alerta é mostrado no campo uuid
da resposta. Esse UUID é necessário
para fazer chamadas que determinem informações específicas de uma definição de alerta. Veja a seguir
um exemplo de resposta:
[ { "uuid": "4fa49a87-3463023ea7c4", "name": "PublicAPI latency alert", "enabled": true, "description": "Public API Latency alerts, 90th %ile > 6secs for 5 minute window trigger this alert", "conditions": [ { "uuid": "4fa49a87-3463023ea7c4", "description": "", "dimensions": { "env": "prod", "org": "myorg", "percentile": "90", "proxy": "PublicAPI", "region": "ANY" }, "metric": "totalLatency", "threshold": 6000, "durationSeconds": 300, "comparator": ">", "updatedBy": "me@foo.com" } ], "playbook": "PublicAPI Latency alert, setup to go off when 90th %ile is > 4 secs for 5 minute window", "throttleIntervalSeconds": 3600, "self": "/alerts/4fa49a87-3463023ea7c4", "feed": "/o/myorg/events/4fa49a87-3463023ea7c4", "organization": "myorg", "environment": "prod", "notifications": [ { "channel": "email", "destination": "me@foo.com" } ], "updatedAt": "2018-07-19T18:19:31.654738Z", "updatedBy": "me@foo.com" }, { "uuid": "ef1a5249-345ed3023ea7c4", "name": "Minty API Latency alert", "enabled": true, "description": "Minty API Latency alerts, 90th %ile > 6secs for 5 minute window trigger this alert", "conditions": [ { "uuid": "ef1a5249-345ed3023ea7c4", "description": "", "dimensions": { "env": "prod", "org": "myorg", "percentile": "90", "proxy": "minty", "region": "ANY" }, "metric": "totalLatency", "threshold": 6000, "durationSeconds": 300, "comparator": ">", "updatedBy": "me@foo.com" } ], "playbook": "Minty API", "throttleIntervalSeconds": 3600, "self": "/alerts/ef1a5249-345ed3023ea7c4", "feed": "/o/myorg/events/ef1a5249-345ed3023ea7c4", "organization": "myorg", "environment": "prod", "notifications": [ { "channel": "email", "destination": "me@foo.com" } ], "updatedAt": "2018-07-19T18:19:33.22479Z", "updatedBy": "me@foo.com" }, ... ]
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).
Ver uma definição de alerta específica
Veja uma definição de alerta específica enviando uma solicitação GET para o seguinte recurso: https://apimonitoring.enterprise.apigee.com/alerts/ (link em inglês) alert_uuid em que alert_uuid especifica o UUID da definição do alerta. Veja o UUID ao criar o alerta ou use a chamada de API exibida na seção anterior para listar todos os alertas e o UUID associado.
Exemplo:
curl 'https://apimonitoring.enterprise.apigee.com/alerts/4fa49a87-3463023ea7c4' -X GET -H 'Accept: application/json, text/plain, */*' -H "Authorization: Bearer $ACCESS_TOKEN"
Veja a seguir um exemplo de resposta:
{ "uuid": "4fa49a87-3463023ea7c4", "name": "PublicAPI latency alert", "enabled": true, "description": "Public API Latency alerts, 90th %ile > 6secs for 5 minute window trigger this alert", "conditions": [ { "uuid": "4fa49a87-3463023ea7c4", "description": "", "dimensions": { "env": "prod", "org": "myorg", "percentile": "90", "proxy": "PublicAPI", "region": "ANY" }, "metric": "totalLatency", "threshold": 6000, "durationSeconds": 300, "comparator": ">", "updatedBy": "me@foo.com" } ], "playbook": "PublicAPI Latency alert, setup to go off when 90th %ile is > 4 secs for 5 minute window", "throttleIntervalSeconds": 3600, "self": "/alerts/4fa49a87-3463023ea7c4", "feed": "/o/myorg/events/4fa49a87-3463023ea7c4", "organization": "myorg", "environment": "prod", "notifications": [ { "channel": "email", "destination": "me@foo.com" } ], "updatedAt": "2018-07-19T18:19:31.654738Z", "updatedBy": "me@foo.com" }
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).
Ver o histórico de todos os alertas acionados por uma organização
Veja o histórico de todos os alertas acionados por uma organização emitindo uma solicitação GET para o seguinte recurso: https://apimonitoring.enterprise.apigee.com/metrics/alerthistory (em inglês).
Você precisa passar o nome da organização usando o parâmetro de consulta org
.
Como opção, especifique um período usado para pesquisar alertas acionados. O padrão é retornar
todos os alertas acionados na última hora.
Exemplo:
curl 'https://apimonitoring.enterprise.apigee.com/metrics/alerthistory?org=myorg' -X GET -H 'Accept: application/json, text/plain, */*' -H "Authorization: Bearer $ACCESS_TOKEN"
A resposta contém uma matriz de todos os alertas acionados durante o período solicitado.
No corpo da resposta, o campo id
especifica o UUID do alerta acionado
e o campo shared_id
especifica o UUID da definição de alerta associada
ao alerta acionado.
Veja a seguir um exemplo de resposta.
[ { "id": "80cbe560-f6e0-475c6f7ed2d", "shared_id": "4fa49a87-3463023ea7c4", "organization": "myorg", "environment": "prod", "name": "PublicAPI latency alert", "type": "Alert", "source": "null/current", "raw_payload": "{\"reportUUID\":\"\",\"reportEnabled\":false,\"organization\":\"myorg\",\"name\":\"emgmt-api 404\",\"self\":\"/alerts/4fa49a87-3463023ea7c4\",\"description\":\"go/apigee-extensions-playbook\",\"conditions\":[ {\"comparator\":\">\",\"metric\":\"rate\",\"durationSeconds\":300,\"name\":\"PublicAPI latency alert\",\"description\":\"\",\"threshold\":0.05,\"dimensions\":{\"proxy\":\"emgmt-api\",\"org\":\"myorg\",\"env\":\"prod\",\"region\":\"any\",\"statusCode\":\"404\"}}],\"uuid\":\"4fa49a87-3463023ea7c4\",\"playbook\":\"go/apigee-extensions-playbook\"}", "time": "2019-03-25T15:30:18Z" }, { "id": "8131d740-6680-45b9c72c3", "shared_id": "1a64885b-f9-42010a850039", "organization": "apigee-pinpoint", "environment": "prod", "name": "Demo 5xx alert", "type": "Alert", "source": "null/current", "raw_payload": "{\"reportUUID\":\"\",\"reportEnabled\":false,\"organization\":\"myorg\",\"name\":\"Demo 5xx alert\",\"self\":\"/alerts/1a64885b-f9-42010a850039\",\"description\":\"Demo 5xx alert\",\"conditions\":[ {\"comparator\":\">\",\"metric\":\"rate\",\"durationSeconds\":300,\"name\":\"Demo 5xx alert\",\"description\":\"\",\"threshold\":0.4,\"dimensions\":{\"proxy\":\"ALL\",\"org\":\"myorg\",\"env\":\"prod\",\"region\":\"any\",\"statusCode\":\"5xx\"}}],\"uuid\":\"1a64885b-f9-42010a850039\",\"playbook\":\"Recommended Playbook\"}", "time": "2019-03-25T15:57:30Z" }, ... ]
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).
Visualizar o histórico de alertas específicos
Veja o histórico de alertas acionados para uma definição de alerta específica emitindo uma solicitação GET para o seguinte recurso: https://apimonitoring.enterprise.apigee.com/metrics/alerthistory.
Você precisa passar o nome da organização usando o parâmetro de consulta org
e o UUID da definição de alerta. Como opção, especifique um período usado
para pesquisar alertas. O padrão é retornar todos os alertas acionados na última hora.
O UUID de definição de alerta pode ser encontrado no histórico de alertas, conforme mostrado na seção anterior, no momento de criação da definição de alerta ou usando a chamada de API mostrada em Visualizar todas as definições de alerta.
Exemplo:
curl 'https://apimonitoring.enterprise.apigee.com/metrics/alerthistory?org=myorg&alertId=4fa49a87-3463023ea7c4' -X GET -H 'Accept: application/json, text/plain, */*' -H "Authorization: Bearer $ACCESS_TOKEN"
A resposta contém uma matriz de todos os alertas acionados durante o período solicitado para o UUID de definição do alerta especificado. No corpo da resposta, o campo id
especifica o UUID do alerta acionado e o campo shared_id
especifica o UUID da definição de alerta associada ao alerta acionado.
Veja a seguir um exemplo da resposta.
[ { "id": "80cbe560-f6e0-475c6f7ed2d", "shared_id": "4fa49a87-3463023ea7c4", "organization": "myorg", "environment": "prod", "name": "PublicAPI latency alert", "type": "Alert", "source": "null/current", "raw_payload": "{\"reportUUID\":\"\",\"reportEnabled\":false,\"organization\":\"myorg\",\"name\":\"emgmt-api 404\",\"self\":\"/alerts/4fa49a87-3463023ea7c4\",\"description\":\"go/apigee-extensions-playbook\",\"conditions\":[ {\"comparator\":\">\",\"metric\":\"rate\",\"durationSeconds\":300,\"name\":\"PublicAPI latency alert\",\"description\":\"\",\"threshold\":0.05,\"dimensions\":{\"proxy\":\"emgmt-api\",\"org\":\"myorg\",\"env\":\"prod\",\"region\":\"any\",\"statusCode\":\"404\"}}],\"uuid\":\"4fa49a87-3463023ea7c4\",\"playbook\":\"go/apigee-extensions-playbook\"}", "time": "2019-03-25T15:30:18Z" }, { "id": "9fc442d5-d607-40ef118c4e7", "shared_id": "4fa49a87-3463023ea7c4", "organization": "myorg", "environment": "prod", "name": "PublicAPI latency alert", "type": "Alert", "source": "null/current", "raw_payload": "{\"reportUUID\":\"\",\"reportEnabled\":false,\"organization\":\"myorg\",\"name\":\"emgmt-api 404\",\"self\":\"/alerts/4fa49a87-3463023ea7c4\",\"description\":\"go/apigee-extensions-playbook\",\"conditions\":[{\"comparator\":\">\",\"metric\":\"rate\",\"durationSeconds\":300,\"name\":\"PublicAPI latency alert\",\"description\":\"\",\"threshold\":0.05,\"dimensions\":{\"proxy\":\"emgmt-api\",\"org\":\"myorg\",\"env\":\"prod\",\"region\":\"any\",\"statusCode\":\"404\"}}],\"uuid\":\"4fa49a87-3463023ea7c4\",\"playbook\":\"go/apigee-extensions-playbook\"}", "time": "2019-03-25T15:17:55Z" }, ... ]
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).