• EnglishEspañol日本語한국어Português
  • EntrarComeçar agora

Esta tradução de máquina é fornecida para sua comodidade.

Caso haja alguma divergência entre a versão em inglês e a traduzida, a versão em inglês prevalece. Acesse esta página para mais informações.

Criar um problema

API REST de evento de incidente

Você pode usar a APIde eventos para relatar um evento de gatilho de incidente de alerta personalizado para New Relic. Este evento não cria diretamente um incidente, mas aciona a criação do incidente.

A API é um endpoint assíncrono. Isso significa que você pode enviar um grande volume de POSTS, de forma confiável e com baixa latência de resposta.

Usando a API: uma visão geral

Este é o processo geral para enviar eventos de incidente personalizados para o New Relic por meio da API de evento de incidente:

  1. Gere um para a conta para a qual você deseja relatar dados.
  2. Antes de começar a criar um atributo personalizado, revise os limites e caracteres restritos da API do evento.
  3. Gere o JSON para o seu evento de incidente que segue nossas diretrizes de formato JSON.
  4. Envie uma carga JSON compactada (por exemplo, gzip ou deflate) para o endpoint HTTPS usando curl em uma solicitação POST.

Depois de começar a enviar dados de eventos de incidente para o New Relic, recomendamos que você configure a condição do alerta do NRQL para receber notificações sobre erros de análise.

Exemplo JSON

Sua carga JSON pode ser semelhante a este exemplo.

[
{
"eventType": "NrAiIncidentExternal",
"title": "Test",
"description": "The latency is above threshold of 500000 MS",
"state": "trigger",
"source": "luna",
"entityName": "testEntity",
"entity.guid": "testEntity123",
"aggregationTag.serviceId": 5,
"aggregationTag.environment": "testing",
"aggregationTag.errorId": 10543,
"tag.stackTrace": "some stack trace...",
"version": 1
}
]

O campo eventType deve usar NrAiIncidentExternal.

Envie seu evento de incidente pela linha de comando

Aqui está um exemplo de como usar curl para enviar sua carga JSON.

bash
$
gzip -c example_incidents.json | curl --data-binary @- \
>
-X POST -H "Content-Type: application/json" \
>
-H "Api-Key: YOUR_LICENSE_KEY" -H "Content-Encoding: gzip" \
>
https://insights-collector.newrelic.com/v1/accounts/YOUR_ACCOUNT/events
Response
{"success":true, "uuid":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"}%

Depois de enviar com sucesso os dados do evento incidente, você poderá vê-los na interface de alertas ou consultando esses dados.

Exemplo de consulta para evento de incidente

Você pode consultar seus dados com a API Nerdgraph.

Aqui está um exemplo de consulta NerdGraph e seu resultado.

{
actor {
account(id: YOUR_ACCOUNT_ID) {
nrql(query: "SELECT * FROM NrAiInternalIncident since 3 days ago") {
results
}
}
}
}
"results": [
{
"timestamp": 1641910123824,
"totalViolations": 3,
"violationIds": "[416e2e55069764086ad83e97a1160be0cb4c545b7950522f7c86baaa2a11b9b6]",
"triggeredAt": 1641909163980,
"entitiesData.ids": "testEntity123",
"entitiesData.types": "unknown",
"labelsHash": "91f938318e899dcd62965e2724548f4844f2898f3cf1c5411397ecc0eec87fc1",
"annotations.description": "[\"The latency is above threshold of 500000 MS\"]",
"labels.originalAccountIds": "YOUR_ACCOUNT_ID",
"entitiesData.names": "testEntity",
"entitiesData.entities": "{\"id\":\"testEntity123\",\"name\":\"testEntity\",\"type\":\"unknown\"}",
"priority": "HIGH",
"labels.serviceId": "5",
"labels.environment": "testing",
"closedAt": "",
"updatedAt": 1641910123824,
"annotations.title": "[\"Test\",\"Test2222\",\"Test3\"]",
"nrAccountId": YOUR_ACCOUNT_ID,
"accumulations": "{\"source\":[\"rest\"],\"origin\":[\"luna\"],\"entity_guid\":[\"testEntity123\"],\"tag.stackTrace\":[\"some stack trace...\"]}",
"labels.accountIds": "YOUR_ACCOUNT_ID",
"createdAt": 1641909163997,
"priority.order": 2,
"labels.aggregationKeys": "416e2e55069764086ad83e97a1160be0cb4c545b7950522f7c86baaa2a11b9b6",
"accumulations.origins": "[\"luna\"]",
"accumulations.entity_guid": "[\"testEntity123\"]",
"incidentId": "a06ffb92-2f7e-473b-953f-151ff4777cb0",
"labels.errorId": "10543",
"dataMLModules": "{}",
"triggerEvent": "VIOLATION_ADDED",
"accumulations.tag.stackTrace": "[\"some stack trace...\"]",
"isIint": false,
"accumulations.sources": "[\"rest\"]",
"entitiesData": "{\"name\":\"testEntity\",\"id\":\"testEntity123\",\"type\":\"unknown\",\"entities\":\"{\\\"id\\\":\\\"testEntity123\\\",\\\"name\\\":\\\"testEntity\\\",\\\"type\\\":\\\"unknown\\\"}\"}",
"annotations": "{\"title\":[\"Test\",\"Test2222\",\"Test3\"],\"description\":[\"The latency is above threshold of 500000 MS\"]}",
"labels": "{\"accountId\":\"XXXXXXX\",\"originalAccountId\":\"XXXXXXX\",\"entityId\":\"testEntity123\",\"entityName\":\"testEntity\",\"entityType\":\"unknown\",\"aggregationKey\":\"416e2e55069764086ad83e97a1160be0cb4c545b7950522f7c86baaa2a11b9b6\",\"serviceId\":\"5\",\"errorId\":\"10543\",\"environment\":\"testing\"}",
"state": "CREATED"
}
]

Especificação da API de evento de incidente

A API de evento de incidente usa os tipos de valor da API de evento. Para obter descrições desses tipos de valor e diretrizes sobre como usá-los, consulte nossas diretrizes JSON da API de eventos.

Cuidado

Se você criar dois eventos de gatilho com exatamente o mesmo aggregationTag, eles serão agregados ao mesmo incidente. Ou seja, apenas um incidente é criado a partir de múltiplos gatilhos.

Campo

Descrição

aggregationTag.*

string, número ou timestamp

REQUIRED

Qualquer atributo prefixado com aggregationTag será usado para agregar o evento acionador.

Em outras palavras, dois eventos de gatilho com a mesma tag de agregação são agregados ao mesmo incidente. (Assumindo que nenhum dos eventos de gatilho são eventos de resolução).

Ao resolver um incidente, é importante que o evento de resolução inclua a mesma tag de agregação.

A tag de agregação com palavras-chave reservadas é filtrada. Por exemplo, em uma carga JSON com aggregationTag.priority: 2 esse par de valores principais será omitido no evento de incidente com estas palavras-chave reservadas:

reserved_key: {"priority", "accountId", "originalAccountId", "policyId", "conditionId", "aggregationKey", "entityType", "entityName", "entityId", "violationUuid", "violationId", "nrIncidentId" }

state

enumeração: (trigger, resolve)

REQUIRED

Se o evento deve desencadear um novo incidente ou resolver um existente. As atualizações do incidente também podem ser enviadas usando o gatilho.

priority

enumeração: (low, medium, high, critical)

A prioridade do incidente. Padrão: high.

A prioridade mais alta será usada quando prioridades diferentes forem enviadas.

title

corda

REQUIRED, when state is trigger

O título do evento acionador.

source

corda

REQUIRED, when state is trigger

A origem do incidente, ou o sistema de monitoramento que o desencadeou (não a entidade que causou a falha).

description

corda

A descrição do evento desencadeador.

deepLinkUrl

corda

Um link direto para uma página relacionada ao incidente.

runbookUrl

corda

Uma URL de runbook.

externalId

corda

Um ID externo que você pode anexar ao evento.

Por exemplo, pode ser usado para consultar erros relacionados à ingestão deste evento.

entityName

corda

O nome da entidade que gerou o incidente.

entity.guid

corda

O ID da entidade que gerou o incidente.

version

float

A versão do formato atual.

Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.