Utilice la API de métrica para enviar métrica personalizada a la plataforma New Relic. Este documento incluye un inicio rápido para enviar su primera métrica personalizada, además de información detallada sobre cómo formatear y enviar sus datos de métrica.
Inicio rápido: Enviar datos métricos
Reportamos los tipos métricos count
, gauge
y summary
. Para más información sobre métrica consulte nuestra documentación.
Los datos métricos se envían a New Relic a través de una solicitud HTTP POST. Cada solicitud se compone de uno o más puntos de datos de métrica, que constan de un nombre de métrica, una timestamp y un valor.
Siga este ejemplo para enviar sus primeros puntos de datos métricos a New Relic:
Obtenga el para la cuenta a la que desea informar datos.
Inserte la clave de licencia en el siguiente JSON y luego envíe el JSON a nuestro extremo.
Actualice el
timestamp
con una timestamp epoch válida. Este ejemplo crea un único punto de datos métrico para una métrica llamadamemory.heap
, pero puede crear atributos o puntos de datos adicionales especificando tipos de métricas o agregando bloquescommon
opcionales.bash$curl -vvv -k -H "Content-Type: application/json" \>-H "Api-Key: NEW_RELIC_LICENSE_KEY" \>-X POST https://metric-api.newrelic.com/metric/v1 \>--data '[{$"metrics":[{$"name":"memory.heap",$"type":"gauge",$"value":2.3,$"timestamp":CURRENT_TIME,$"attributes":{"host.name":"dev.server.com"}$}]$}]'
La métrica debería estar disponible en New Relic en unos segundos. Puedes consultar los datos desde cualquier interfaz NRQL usando esta consulta:
FROM Metric SELECT max(memory.heap) TIMESERIES
Para obtener más información sobre dónde aparecen los datos, consulte Buscar datos de API métrica.
URL extrema
Utilice un HTTP POST al enviar datos métricos a los extremos métricos de API:
https://metric-api.newrelic.com/metric/v1
Sugerencia
Si su organización aloja datos en el centro de datos de la UE, asegúrese de utilizar el extremo de la región de la UE. Para esta API, el extremo de la UE es:
https://metric-api.eu.newrelic.com/metric/v1
Encabezados de solicitud HTTP
Incluya los siguientes encabezados de solicitud HTTP con la solicitud POST. Puede enviar algún parámetro como parámetro de consulta en lugar de encabezados de solicitud.
Encabezamiento | ¿Enviar como parámetro de consulta? | Detalles |
---|---|---|
| No | Required. Debe ser |
| No | Required (usually set automatically by the HTTP client). La longitud del cuerpo de la solicitud en octetos (bytes de 8 bits), a menos que se envíe con codificación fragmentada. Este encabezado generalmente lo establece de forma predeterminada el cliente HTTP subyacente que envía los datos y, en la mayoría de los casos, no debería requerir ningún esfuerzo adicional por parte del usuario final. |
| Sí | Required. Un para la cuenta a la que desea informar datos. Si esto se proporciona como encabezado y parámetro de consulta, los valores deben coincidir. |
| No | Required if GZIP. El valor debe ser |
| No | Optional - Reserved for future use. El valor debe ser un |
Cuerpo de solicitud HTTP
El cuerpo de la solicitud HTTP POST debe estar en formato JSON. A continuación se describen los requisitos y recomendaciones para la carga útil JSON.
La carga útil debe estar codificada como UTF-8.
Estructura
La carga útil JSON utiliza esta estructura:
- La carga útil JSON es una matriz de mapas.
- Cada mapa debe contener una clave
metrics
cuyo valor es una matriz que contiene uno o más puntos de datos métricos. - Un punto de datos métrico se identifica mediante
name
,value
ytimestamp
junto con un conjunto opcional de atributos.
Pares principales de valores requeridos
Cada mapa de puntos de datos métricos en la matriz metrics
utiliza la siguiente estructura principal de valor:
Llave | Descripción |
---|---|
cadena | Required. El nombre de la métrica. El valor debe tener menos de 255 caracteres. |
número o mapa | Required. El valor varía según el tipo de métrica. Para |
largo | Required. La hora de inicio de la métrica en tiempo Unix. El valor predeterminado utiliza la zona horaria UTC. Este campo también admite segundos, microsegundos y nanosegundos. Sin embargo, los datos se convertirán a milisegundos para su almacenamiento y consulta. métrica reportados con una timestamp anterior a 48 horas o posterior a 24 horas desde el momento en que se informan se eliminan. |
positivo largo | Required for |
| Recommended. Este debería ser uno de los tipos métricos admitidos. Si no especifica un tipo, el valor predeterminado será |
cadenas, números JSON o valores booleanos | Recommended. Un mapa de pares de valores principales asociados con esta métrica específica. Los valores pueden ser cadenas, números JSON o booleanos. Las claves distinguen entre mayúsculas y minúsculas y deben tener menos de 255 caracteres. |
Compartir atributo a través de métrica con common
Si desea incluir un conjunto de atributos en múltiples métricas (y no agregar el mismo atributo para cada métrica), puede usar el bloque common
. Este es un mapa opcional que especifica información que se aplica a todos los puntos de datos métricos asociados. Los valores de la sección común se anularán si existe la misma clave en un punto de datos métrico.
El bloque puede incluir:
Atributo | Descripción |
---|---|
largo | La hora de inicio de la métrica en tiempo Unix. El valor predeterminado es la hora actual en la zona horaria UTC. Este campo también admite segundos, microsegundos y nanosegundos. Sin embargo, los datos se convertirán a milisegundos para su almacenamiento y consulta posterior. |
positivo largo | Required for |
cadenas, números JSON o valores booleanos | Un mapa de pares de valores principales asociados con esta métrica específica. Los valores pueden ser cadenas, números JSON o booleanos. |
Validación de respuesta y códigos de estado.
La API de métrica devuelve un código de respuesta 202
para solicitudes exitosas. Cuando se aceptan sus datos, se devuelve un código de respuesta HTTP 202
con una estructura de respuesta como esta:
HTTP/1.1 202 AcceptedContent-Type: application/json; charset=UTF-8Content-Length: 52Access-Control-Allow-Methods: GET, POST, PUT, HEAD, OPTIONSAccess-Control-Allow-Credentials: trueAccess-Control-Allow-Origin: *Connection: keep-alive
{"requestId":"f0e7bfff-001a-b000-0000-01682bcf4565"}
Faltan datos con 202
respuesta
Un código 202
indica que la API recibió sus datos y que los datos pasaron las comprobaciones de validación básicas. Normalmente, sus datos estarán disponibles para su consulta en unos segundos. Sin embargo, New Relic ejecuta una validación adicional de forma asincrónica después de recibir sus datos. Si recibe una respuesta 202
pero no puede encontrar su métrica, esto indica que New Relic encontró un error durante esta validación asincrónica.
Puede encontrar estos errores consultando NrIntegrationError
evento en la cuenta asociada con Insertar clave de API que utilizó. El requestId
para cada solicitud será etiqueta en el evento NrIntegrationError
. Para obtener más información, consulte Solucionar problemas de un evento NRIntegrationError
.
Códigos de estado
La API métrica puede devolver los siguientes códigos de estado HTTP:
Código de estado | Definición |
---|---|
| Datos aceptados. |
| La estructura de la solicitud no es válida. |
| Fallo de autentificacion. |
| La ruta de la solicitud es incorrecta. |
| Se utilizó un método de solicitud distinto de POST. |
| La solicitud tardó demasiado en llegar al extremo. |
| El encabezado |
| La carga útil era demasiado grande. la carga debe tener menos de 1MB (10^6 bytes). |
| El URI de solicitud era demasiado largo. |
| El |
| Se ha superado la cuota de tasa de solicitud. |
| Los encabezados de la solicitud son demasiado largos. |
| Hubo un error en el servidor (vuelve a intentarlo). |