Puede utilizar la API de eventos para informar eventos de incidentes de inteligencia aplicada personalizados a New Relic.
La API es un extremo asíncrono. Esto significa que puede enviar un gran volumen de POSTS, de manera confiable, con baja latencia de respuesta.
Uso de la API: descripción general
Este es el proceso general para enviar eventos de incidentes personalizados a New Relic a través de la API de eventos de incidentes:
Genere un
para la cuenta a la que desea informar datos.
Antes de comenzar a crear un atributo personalizado, revise los límites y los caracteres restringidos de la API del evento.
Genere el JSON para su evento de incidente que siga nuestras pautas de formato JSON.
Envíe una carga útil JSON comprimida (por ejemplo, gzip o deflate) al extremo HTTPS usando curl en una solicitud POST.
Una vez que haya comenzado a enviar datos de eventos de incidentes a New Relic, le recomendamos que configure la condición de alerta NRQL para recibir notificaciones sobre errores de análisis.
Ejemplo JSON
Su carga útil JSON puede parecerse a este ejemplo.
[ { "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 }]
El campo eventType
debe utilizar NrAiIncidentExternal
.
Envíe su evento de incidente desde la línea de comando
Aquí hay un ejemplo de cómo usar curl para enviar su carga útil JSON.
$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"}%
Una vez que haya enviado correctamente los datos del evento de incidente, podrá verlos en la UI de inteligencia aplicada o consultando esos datos.
Ejemplo de consulta para evento incidente
Puedes consultar tus datos con Nerdgraph API.
A continuación se muestra un ejemplo de una consulta NerdGraph y su 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" }]
Especificación de API de evento de incidente
La API de eventos incidente utiliza los tipos de valores de la API de eventos. Para obtener descripciones de estos tipos de valores y pautas sobre su uso, consulte nuestras pautas de evento API JSON.
Campo | Descripción |
---|---|
cadena, número o timestamp | REQUIRED Cualquier atributo con el prefijo En otras palabras, dos eventos desencadenantes con la misma etiqueta de agregación se agregan al mismo incidente. (Esto supone que no hay ningún evento de resolución entre ellos). Al resolver un incidente, es importante que el evento de resolución incluya la misma etiqueta de agregación. Se filtran las etiquetas de agregaciones con palabras clave reservadas. Por ejemplo, en una carga útil JSON con
|
enumeración: ( | REQUIRED Si el evento debería desencadenar un nuevo incidente o resolver uno existente. Las actualizaciones del incidente también se pueden enviar mediante un disparador. |
enumeración: ( | La prioridad del incidente. Predeterminado: Se utilizará la prioridad más alta cuando se envíen prioridades diferentes. |
cadena | REQUIRED, when El título del evento desencadenante. |
cadena | REQUIRED, when El origen del incidente, o el sistema de monitoreo que lo desencadenó (no la entidad que falló). |
cadena | La descripción del evento desencadenante. |
cadena | Un enlace profundo a una página relacionada con el incidente. |
cadena | Una URL del runbook. |
cadena | Una identificación externa que puedes adjuntar al evento. Por ejemplo, se puede utilizar para consultar errores relacionados con la ingesta de este evento. |
cadena | El nombre de la entidad que generó el incidente. |
cadena | El ID de la entidad que generó el incidente. |
Flotante | La versión del formato actual. |