API aberta da Gestão de notificações de evento

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 6 min. de leitura
  • A API aberta do Event Notification Management fornece um endpoint para criar, atualizar e excluir eventos da tabela Eventos [em_event].

    A API aberta do Event Notification Management (sn_ind_tmf688) é uma implementação ServiceNow da especificação da API aberta do TM Fórum. Esta API é baseada no Guia do usuário da API de gestão de eventos TMF688 v4.0.0. Você pode localizar informações adicionais do alarme no Guia do usuário da API de gestão de alarmes TMF642.

    Esta API pode ser estendida para fazer personalizações em torno dos parâmetros obrigatórios, solicitar validação do corpo, operações REST adicionais e mapeamentos de campo. Para obter mais informações, consulte o Guia do desenvolvedor da API aberta da Gestão de notificações de evento.

    API aberta da Gestão de notificações de evento – POST instance_name/scope_id/GUID

    Coloca a carga da solicitação associada na fila do NowMQ. Essa fila é processada em segundo plano para criar, atualizar e excluir eventos na tabela Eventos [em_event].

    Este endpoint é diferente de outros endpoints na plataforma ServiceNow. Em vez de ter um endpoint para cada tarefa específica, como criar, atualizar e excluir, há apenas um único endpoint para todas as funcionalidades. O parâmetro eventType na carga da chamada determina a tarefa a ser executada com base no valor passado de AlarmCreateEvent, AlarmUpdateEventou AlarmDeleteEvent.

    O formato da chamada REST também é diferente das implementações REST padrão. Cada sistema externo que usará esta API, como Kafka, monitores de banco de dados ou outras aplicações, deve primeiro ser registrado na plataforma ServiceNow. Eles também devem ter seu próprio webhook que usa as informações fornecidas durante o registro para gerar a assinatura necessária para chamar esse endpoint, incluindo o instance_name, o scope_idda aplicação e o GUIDexclusivo. O GUID identifica o sistema de rede externo de onde veio a solicitação.

    A carga útil que você passa para este endpoint deve estar correlacionada à carga útil definida na inclusão de script TMFAlarmAPIConstants para o valor do parâmetro eventType correspondente. Todos os parâmetros passados na carga útil e não definidos no esquema são ignorados pelo endpoint.
    • AlarmCreateEvent: ALARM_CREATE_EVENT_SCHEMA
    • AlarmUpdateEvent: ALARM_CHANGE_EVENT_SCHEMA
    • AlarmDeleteEvent: ALARM_DELETE_EVENT_SCHEMA

    Formato de URL

    URL padrão:<instance_name> /<scope_id> /<GUID>

    Parâmetros de solicitação compatíveis

    Tabela 1. Parâmetros de caminho
    Nome Descrição
    Nenhum
    Tabela 2. Parâmetros de consulta
    Nome Descrição
    Nenhum
    Tabela 3. Parâmetros do corpo da solicitação
    Nome Descrição
    evento Detalhes sobre o evento que ocorreu.

    Tipo de dados: objeto

    "event": {
        "alarm": {Object}
    }
    evento.alarme Obrigatório quando eventType for AlarmCreateEvent.

    Detalhes sobre o alarme associado.

    Tipo de dados: objeto

    "alarm": {
      "affectedService": [Array],
      "alarmedObject": {Object},
      "alarmType": "String",
      "crossedThresholdInformation": {Object},
      "externalAlarmId": "String",
      "href": "String",
      "id": "String",
      "perceivedSeverity": "String",
      "probableCause": "String",
      "sourceSystemId": "String",
      "specificProblem": "String",
    }
    evento.alarme.serviçoafetado Lista de objetos que identificam um ou mais serviços afetados pelo alarme.

    Tipo de dados: matriz

    "affectedService":[
      {
        "href": "String",
        "id": "String"
      },
    ]
    evento.alarme.serviçoafetado.href Referência de URL que fornece detalhes do serviço afetado.

    Tipo de dados: cadeia de caracteres

    event.alarm.affectedService.id
    Identificador do serviço afetado pelo alarme. Este valor é mapeado para o item de configuração (IC) afetado no alerta.

    Tipo de dados: cadeia de caracteres

    event.alarm.alarmedObject Obrigatório ao criar um evento.
    Detalhes do objeto de alarme.

    Tipo de dados: objeto

    "alarmedObject":
    {
      "href": "String",
      "id": "String"
    }
    evento.alarm.alarmedObject.href Obrigatório ao criar um evento.
    Referência de URL para obter os detalhes do objeto de alarme.

    Tipo de dados: cadeia de caracteres

    event.alarm.alarmedObject.id Obrigatório quando eventType for AlarmCreateEvent.
    Identificador exclusivo do objeto de alarme. Este valor é mapeado para um IC no sistema.

    Tipo de dados: cadeia de caracteres

    evento.alarm.alarmType Obrigatório quando eventType for AlarmCreateEvent.

    Tipo de alarme. Usado para categorizar o alarme.

    Por exemplo: "QualityOfServiceAlarm"

    Tipo de dados: cadeia de caracteres

    event.alarm.crossedThresholdInfomation Detalhes sobre o limite ultrapassado.

    Tipo de dados: objeto

    "crossedThresholdInformation":
    {
      "thresholdId": "String"
    }
    event.alarm.crossedThresholdInfomation.thresholdId
    Identificador exclusivo do limite que causou o alarme.

    Tipo de dados: cadeia de caracteres

    evento.alarm.externalAlarmId Obrigatório quando eventType for AlarmCreateEvent. Obrigatório quando eventType for AlarmDeleteEvent ou AlarmChangeEvent se o parâmetro Id não for especificado.

    Identificador exclusivo do alarme do sistema de origem que publica o alarme.

    Tipo de dados: cadeia de caracteres

    evento.alarme.href Referência de URL para o alarme.

    Por exemplo: "http://api/alarm/ROUTER_IF@Cisco-0000-0-0-0-0-00-00-0-- Xz0/00@00"

    Tipo de dados: cadeia de caracteres

    event.alarm.id Obrigatório quando eventType for AlarmDeleteEvent ou AlarmChangeEvent se externalAlarmId não for especificado.

    Identificador exclusivo do alarme. Especificado pelo sistema responsável pelo alarme.

    Por exemplo: "8675399"

    Tipo de dados: cadeia de caracteres

    event.alarm.perceivedSeverity Obrigatório quando eventType for AlarmCreateEvent.

    Possíveis severidades associadas ao alarme. Os valores são consistentes com a recomendação X.733 do UIT-T. Depois que um alarme é limpo, sua severidade percebida é definida como “CLEAR” e não pode mais ser definida.

    Valores possíveis:
    • LIMPAR
    • CRÍTICO
    • PRINCIPAL
    • BAIXA
    • AVISO

    Tipo de dados: cadeia de caracteres

    evento.alarme.provávelCausa Obrigatório quando eventType for AlarmCreateEvent.

    Situação mais provável para acionar o alarme. Use com alarmType para qualificar o alarme.

    Os valores possíveis são consistentes com a recomendação UI-T X.733 ou 3GPP TS 32.111-2 Anexo B.

    Por exemplo: "Limite ultrapassado"

    Tipo de dados: cadeia de caracteres

    event.alarm.sourceSystemId Obrigatório quando eventType for AlarmCreateEvent.

    Identificador exclusivo do sistema de origem do alarme.

    Por exemplo: "SOURCE_SYSTEM_vManage_00000_000_00"

    Tipo de dados: cadeia de caracteres

    evento.alarme.problemaespecífico Problema específico que aciona o alarme. Use com probableCause para qualificar o alarme.

    Por exemplo: "Limite de tráfego de entrada ultrapassado"

    Tipo de dados: cadeia de caracteres

    eventType Obrigatório. Tipo de evento a ser processado.
    Valores válidos:
    • AlarmChangeNotification
    • AlarmeCriarNotificação
    • AlarmDeleteNotification

    Tipo de dados: cadeia de caracteres

    Cabeçalhos

    Os cabeçalhos de solicitação e resposta a seguir se aplicam somente a esta ação HTTP ou se aplicam a esta ação de maneira distinta. Para obter uma lista de cabeçalhos gerais usados na REST API, consulte Cabeçalhos de REST API compatíveis.

    Tabela 4. Cabeçalhos da solicitação
    Cabeçalho Descrição
    Aceitar Formato de dados do corpo da resposta. Oferece suporte somente a application/json.
    Tabela 5. Cabeçalhos de resposta
    Cabeçalho Descrição
    Nenhum

    Códigos de status

    Os códigos de status a seguir se aplicam a esta ação HTTP. Para obter uma lista de códigos de status possíveis usados na REST API, consulte Códigos de resposta HTTP da REST API.

    Tabela 6. Códigos de status
    Código de status Descrição
    200 Retornado para cada chamada, independentemente do status de processamento real da chamada. Somente indica que o endpoint recebeu a solicitação.

    Parâmetros do corpo da resposta

    Nome Descrição
    Nenhum Este endpoint é assíncrono e, portanto, não retorna dados de resposta.

    Solicitação de cURL

    A seguir, mostramos a carga possível para criar um evento de alarme. Este exemplo reflete os parâmetros que estão na implementação padrão (AlarmCreateEventSchema).

    
    --data "{
      "eventType": "AlarmCreateNotification",
      "event": {
        "alarm": {
          "id": "",
          "externalAlarmId": "ext123456",
          "alarmType": "QualityOfServiceAlarm",
          "perceivedSeverity": "MINOR",
          "alarmedObject": {
            "id": "vManage_000000",
            "href": " http://api/alarmedobject/000000"
          },
          "probableCause": "Threshold crossed",
          "sourceSystemId": "SOURCE_SYSTEM_vManage_00000_000_00",
          "href": "http://api/alarm/ROUTER_IF@Cisco-0000-0-0-0-0-00-00-0-- Xz0/00@00",
          "specificProblem": "Inbound Traffic threshold crossed",
          "crossedThresholdInformation": {
            "thresholdId": "12fasdfasdfasd"
          },
          "affectedService": [
            {
              "id": "SD WAN Enterprise Solutions",
              "href": "http://api/service/vlan_dot0_dot0"
            }
          ]
        }
      }
    }

    Nenhuma resposta retornada.

    Solicitação de cURL

    A seguir, mostramos a carga possível para um evento de alarme de mudança. Este exemplo reflete os parâmetros que estão na implementação padrão (AlarmChangeEventSchema).

    
    --data "{
      "eventType": "AlarmChangeEventSchema",
      "event": {
        "alarm": {
          "id": "",
          "externalAlarmId": "ext123456",
          "perceivedSeverity": "MAJOR",
          "probableCause": "Threshold crossed",
          "crossedThresholdInformation": {
            "thresholdId": "12fasdfasdfasd"
          },
          "affectedService": [
            {
              "id": "SD WAN Enterprise Solutions",
              "href": "http://api/service/vlan_dot0_dot0"
            }
          ]
        }
      }
    }
    

    Nenhuma resposta retornada.

    Solicitação de cURL

    A seguir, mostramos a carga possível para um evento de alarme de exclusão (limpeza). Este exemplo reflete os parâmetros que estão na implementação padrão (AlarmDeleteEventSchema).

    
    --data "{
      "eventType": "AlarmDeleteEventSchema",
      "event": {
        "alarm": {
          "id": "",
          "externalAlarmId": "ext123456",
          "perceivedSeverity": "MAJOR",
          "probableCause": "Threshold crossed",
          "crossedThresholdInformation": {
            "thresholdId": "12fasdfasdfasd"
          }
        }
      }
    }

    Nenhuma resposta retornada.