Gerenciando notificações usando a API do Monitoring
Você pode gerenciar as notificações em uma instância IBM Cloud Monitoring usando a API Monitoring API.
Para saber como usar cURL, consulte Comando cURL.
Buscar todas as notificações do usuário
É possível usar o comando cURL a seguir para obter informações sobre todos os canais de notificação:
curl -X GET <REST_API_ENDPOINT>/api/notificationChannels?from=<START_TIMESTAMP>&to=<END_TIMESTAMP> -H "Authorization: $AUTH_TOKEN" -H "IBMInstanceID: $GUID" -H "SysdigTeamID: $TEAM_ID" -H "content-type: application/json"
em que
-
<REST_API_ENDPOINT>indica o terminal de destino pela chamada de API de REST. Para obter mais informações, consulte MonitoringTerminais da API de REST. Por exemplo, o terminal público para uma instância que está disponível em us-south é o seguinte:https://us-south.monitoring.cloud.ibm.com/api -
É possível transmitir vários cabeçalhos usando
-H.AuthorizationeIBMInstanceIDsão cabeçalhos que são necessários para autenticação.SysdigTeamIDé opcional. Ao especificar esse cabeçalho, é possível limitar a solicitação aos dados e aos recursos disponíveis para a equipe especificada.Para obter um
AUTH_TOKENe oGUID, consulte Cabeçalhos para tokens do IAM. -
toefromsão parâmetros de consulta que você deve definir para configurar o período de tempo para o qual você deseja informações sobre as notificações.
Para obter mais informações sobre o formato de resposta, consulte Esquema de notificação.
Buscar notificação de usuário específica
É possível usar o comando cURL a seguir para obter informações sobre um canal de notificação:
curl -X GET <REST_API_ENDPOINT>/api/notificationChannels/<NOTIFICATION_ID> -H "Authorization: $AUTH_TOKEN" -H "IBMInstanceID: $GUID" -H "SysdigTeamID: $TEAM_ID" -H "content-type: application/json"
em que
-
<REST_API_ENDPOINT>indica o terminal de destino pela chamada de API de REST. Para obter mais informações, consulte MonitoringTerminais da API de REST. Por exemplo, o terminal público para uma instância que está disponível em us-south é o seguinte:https://us-south.monitoring.cloud.ibm.com/api -
É possível transmitir vários cabeçalhos usando
-H.AuthorizationeIBMInstanceIDsão cabeçalhos que são necessários para autenticação.SysdigTeamIDé opcional. Ao especificar esse cabeçalho, é possível limitar a solicitação aos dados e aos recursos disponíveis para a equipe especificada.Para obter um
AUTH_TOKENe oGUID, consulte Cabeçalhos para tokens do IAM. -
<NOTIFICATION_ID>define a ID da notificação que você deseja modificar.
Por exemplo, o corpo de resposta para um canal de notificação por e-mail se parece com o seguinte:
{
"notificationChannel": {
"id": 20,
"version": 1,
"createdOn": 1466023669000,
"modifiedOn": 1466023669000,
"type": "EMAIL",
"enabled": true,
"name": "emailChannel",
"options": {
"emailRecipients": [
"abc@xyz.com"
],
"notifyOnOk": false
}
}
}
Criar uma notificação
É possível usar o comando cURL a seguir para criar uma notificação:
curl -X POST <REST_API_ENDPOINT>/api/notificationChannels -H "Authorization: $AUTH_TOKEN" -H "IBMInstanceID: $GUID" -H "SysdigTeamID: $TEAM_ID" -H "content-type: application/json" -d @notification.json
em que
-
<REST_API_ENDPOINT>indica o terminal de destino pela chamada de API de REST. Para obter mais informações, consulte MonitoringTerminais da API de REST. Por exemplo, o terminal público para uma instância que está disponível em us-south é o seguinte:https://us-south.monitoring.cloud.ibm.com/api -
É possível transmitir vários cabeçalhos usando
-H.AuthorizationeIBMInstanceIDsão cabeçalhos que são necessários para autenticação.SysdigTeamIDé opcional. Ao especificar esse cabeçalho, é possível limitar a solicitação aos dados e aos recursos disponíveis para a equipe especificada.Para obter um
AUTH_TOKENe oGUID, consulte Cabeçalhos para tokens do IAM. -
É possível transmitir dados para criar a notificação no arquivo
notification.jsonusando-d.Os tipos válidos são '
EMAIL, 'PAGER_DUTY, 'SLACKe 'VICTOROPS.
A amostra a seguir mostra os parâmetros do corpo da solicitação que podem ser configurados para criar uma notificação:
{
"notificationChannel": {
"type": "SLACK",
"enabled": true,
"name": "my-slack-channel",
"options": {
"notifyOnOk": true,
"url": "https://hooks.slack.com/services/xxx",
"channel": "myslack"
"notifyOnResolve": true,
}
}
}
Excluir uma notificação
Para excluir uma notificação existente, é necessário o ID dessa notificação.
É possível usar o comando cURL a seguir para excluir uma notificação:
curl -X DELETE <REST_API_ENDPOINT>/api/notificationChannels/<NOTIFICATION_ID> -H "Authorization: $AUTH_TOKEN" -H "IBMInstanceID: $GUID" -H "SysdigTeamID: $TEAM_ID" -H "content-type: application/json"
em que
-
<REST_API_ENDPOINT>indica o terminal de destino pela chamada de API de REST. Para obter mais informações, consulte MonitoringTerminais da API de REST. Por exemplo, o terminal público para uma instância que está disponível em us-south é o seguinte:https://us-south.monitoring.cloud.ibm.com/api -
É possível transmitir vários cabeçalhos usando
-H.AuthorizationeIBMInstanceIDsão cabeçalhos que são necessários para autenticação.SysdigTeamIDé opcional. Ao especificar esse cabeçalho, é possível limitar a solicitação aos dados e aos recursos disponíveis para a equipe especificada.Para obter um
AUTH_TOKENe oGUID, consulte Cabeçalhos para tokens do IAM. -
<NOTIFICATION_ID>define a ID da notificação que você deseja modificar.
Atualizar uma notificação
Para atualizar uma notificação existente, é necessário o ID dessa notificação.
É possível usar o comando cURL a seguir para atualizar uma notificação:
curl -X PUT <REST_API_ENDPOINT>/api/notificationChannels/<NOTIFICATION_ID> -H "Authorization: $AUTH_TOKEN" -H "IBMInstanceID: $GUID" -H "SysdigTeamID: $TEAM_ID" -H "content-type: application/json" -d @notification.json
em que
-
<REST_API_ENDPOINT>indica o terminal de destino pela chamada de API de REST. Para obter mais informações, consulte MonitoringTerminais da API de REST. Por exemplo, o terminal público para uma instância que está disponível em us-south é o seguinte:https://us-south.monitoring.cloud.ibm.com/api -
É possível transmitir vários cabeçalhos usando
-H.AuthorizationeIBMInstanceIDsão cabeçalhos que são necessários para autenticação.SysdigTeamIDé opcional. Ao especificar esse cabeçalho, é possível limitar a solicitação aos dados e aos recursos disponíveis para a equipe especificada.Para obter um
AUTH_TOKENe oGUID, consulte Cabeçalhos para tokens do IAM. -
<NOTIFICATION_ID>define a ID da notificação que você deseja modificar. -
É possível transmitir dados para criar a notificação no arquivo
notification.jsonusando-d.
A amostra a seguir mostra os parâmetros do corpo da solicitação que podem ser configurados para atualizar uma notificação:
{
"notificationChannel": {
"id": 9,
"version": 2,
"type": "WEBHOOK",
"enabled": true,
"name": "test-tip-webhook",
"options": {
"notifyOnOk": false,
"url": "https://test-tip.endpoint.com",
"notifyOnResolve": true
}
}
}
Parâmetros do corpo de solicitação: todos os parâmetros do corpo de resposta especificados no canal de notificação GET, exceto:
- createdOn
- modifiedOn
Nota: a versão de notificação pode passar pelo corpo de resposta da API notificationChannels. O usuário também pode adicionar customHeaders e customData às notificações com base em suas necessidades.
Esquema de notificações: corpo de solicitação
Veja o esquema para obter informações sobre um ou mais canais de notificações:
{
"notificationChannel": {
"id": 20,
"version": 1,
"type": "",
"enabled": true,
"name": "",
"options": {
"notifyOnOk": false,
"notifyOnResolve": true,
"resolveOnOk": true,
"channel": "",
"emailRecipients": "",
"url" : "",
"apiKey": "",
"routingKey": "",
"account": "",
"serviceKey": "",
"serviceName": ""
}
}
}
Veja o esquema ao criar, atualizar ou excluir um canal de notificação:
{
"notificationChannel": {
"id": 20,
"version": 1,
"type": "",
"enabled": true,
"name": "",
"options": {
"notifyOnOk": false,
"notifyOnResolve": true,
"resolveOnOk": true,
"channel": "",
"emailRecipients": "",
"url" : "",
"apiKey": "",
"routingKey": "",
"account": "",
"serviceKey": "",
"serviceName": ""
}
}
}
Esquema de notificações: corpo de resposta
{
"notificationChannel": {
"id": 20,
"version": 1,
"createdOn": 1466023669000,
"modifiedOn": 1466023669000,
"type": "",
"enabled": true,
"name": "",
"options": {
"notifyOnOk": false,
"notifyOnResolve": true,
"resolveOnOk": true,
"channel": "",
"emailRecipients": "",
"url" : "",
"apiKey": "",
"routingKey": "",
"account": "",
"serviceKey": "",
"serviceName": ""
}
}
}
Parâmetros do corpo
id (número inteiro)
ID de um canal de notificação.
createdOn (número inteiro)
Define o tempo de criação de uma notificação em milissegundos.
Esse parâmetro retorna o registro de data e hora do Unix de quando a notificação foi criada.
description (sequência)
Este parâmetro descreve a notificação.
A descrição está disponível ao visualizar uma notificação na seção notificações da IU de monitoramento e está incluída em e-mails de notificação.
enabled (booleano)
Define o status de um canal de notificação.
Configure esse parâmetro como true, se o canal de notificação estiver ativado, para enviar eventos e notificar quando uma notificação for acionada.
Configure como false para desativar o canal de notificação para que ele não possa enviar eventos de notificação.
name (sequência)
Nome da notificação. Deve ser exclusivo.
O nome de um canal de notificação deve ser exclusivo e não mais do que 255 caracteres.
modifiedOn (número inteiro)
Define quando uma notificação foi modificada pela última vez em milissegundos.
Esse parâmetro define o registro de data e hora do Unix de quando a notificação foi modificada pela última vez.
Opções (json)
As opções são diferentes por tipo de canal de notificação.
O JSON a seguir mostra o modelo de esquema:
"options": {
"notifyOnOk": false,
"notifyOnResolve": true,
"resolveOnOk": true,
"channel": "",
"emailRecipients": "",
"url" : "",
"apiKey": "",
"routingKey": "",
"account": "",
"serviceKey": "",
"serviceName": ""
}
| Opção | EMAIL |
PAGER_DUTY |
SLACK |
VICTOROPS |
WEBHOOK |
OPSGENIE |
|---|---|---|---|---|---|---|
name |
||||||
notifyOnOk |
||||||
notifyOnResolve |
||||||
resolveOnOk |
||||||
emailRecipients |
||||||
url |
||||||
apiKey |
||||||
routingKey |
||||||
account |
||||||
serviceKey |
||||||
serviceName |
apiKey (sequência)
Chave de API do VictorOps. Deve-se obter essa chave por meio da página de configurações da integração do VictorOps.
channel (sequência)
Nome do canal.
emailRecipients (string)
Lista de endereços de e-mail.
notifyOnOk (booleano)
Sinalização que indica o status no qual é possível enviar uma notificação quando o estado dela muda de ACTIVE para OK e ela é reconhecida manualmente por um usuário.
Configure como true para enviar uma notificação.
notifyOnResolve (booleano)
Sinalização que indica o status no qual é possível enviar uma notificação quando o estado dela muda de ACTIVE para OK, a condição não é mais acionada porque está resolvida e a notificação é mudada manualmente para
resolvida por um usuário.
Configure como true para enviar uma notificação.
resolveOnOk (booleano)
Sinalização que indica o status no qual é possível enviar uma notificação quando o estado dela muda de ACTIVE para OK e a condição não é mais acionada porque está resolvida.
Configure como true para enviar uma notificação.
routingKey (sequência)
Chave de roteamento do VictorOps. Deve-se obter essa chave por meio da página de configurações da integração do VictorOps.
url (sequência)
Terminal de URL.
tipo
Define o canal de notificação.
| Tipo de notificação | Valor |
|---|---|
EMAIL |
|
| PagerDuty | PAGER_DUTY |
| Slack | SLACK |
| VictorOps | VICTOROPS |
| Webhook | WEBHOOK |
| OpsGenie | OPSGENIE |
version (número inteiro)
Versão de uma notificação.
A versão muda toda vez que você atualiza uma notificação.
A versão é usada para bloqueio otimista.
Parâmetros de consulta
notificationId (número inteiro)
ID de uma notificação.
from (longo)
Define o registro de data e hora de início, em microssegundos, que é usado ao solicitar informações sobre notificações que são definidas.
to (longo)
Define o registro de data e hora final, em microssegundos, que é usado ao solicitar informações sobre notificações que são definidas.