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.

    Authorization e IBMInstanceID sã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_TOKEN e o GUID, consulte Cabeçalhos para tokens do IAM.

  • to e from sã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.

    Authorization e IBMInstanceID sã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_TOKEN e o GUID, 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.

    Authorization e IBMInstanceID sã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_TOKEN e o GUID, consulte Cabeçalhos para tokens do IAM.

  • É possível transmitir dados para criar a notificação no arquivo notification.json usando -d.

    Os tipos válidos são ' EMAIL, ' PAGER_DUTY, ' SLACK e ' 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.

    Authorization e IBMInstanceID sã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_TOKEN e o GUID, 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.

    Authorization e IBMInstanceID sã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_TOKEN e o GUID, 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.json usando -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": ""
    }
Tipos de canais de notificação
Opção EMAIL PAGER_DUTY SLACK VICTOROPS WEBHOOK OPSGENIE
name Ícone de visto Ícone de visto Ícone de visto Ícone de visto Ícone de visto Ícone de visto
notifyOnOk Ícone de visto Ícone de visto Ícone de visto Ícone de visto Ícone de visto Ícone de visto
notifyOnResolve Ícone de visto Ícone de visto Ícone de visto Ícone de visto Ícone de visto Ícone de visto
resolveOnOk Ícone de visto Ícone de visto Ícone de visto Ícone de visto Ícone de visto Ícone de visto
emailRecipients Ícone de visto
url Ícone de visto Ícone de visto
apiKey Ícone de visto Ícone de visto
routingKey Ícone de visto
account Ícone de visto
serviceKey Ícone de visto
serviceName Ícone de visto

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.

Tipos de canais de notificação
Tipo de notificação Valor
E-mail 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.