• EnglishEspañol日本語한국어Português
  • Inicia sesiónComenzar ahora

Te ofrecemos esta traducción automática para facilitar la lectura.

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

Crea una propuesta

Reportar traza a través de la traza API (formato New Relic)

Si desea crear su propia implementación de seguimiento, puede utilizar nuestra traza API. Este documento explica cómo enviar traza en nuestro formato general, también conocido como formato newrelic . (Para enviar datos en formato Zipkin, consulte Zipkin).

Empezar

Utilizar nuestra traza API es tan sencillo como:

  • Envío de datos de traza en el formato esperado (en este caso, nuestro formato newrelic .
  • Enviando esos datos al extremo apropiado.

Antes de utilizar la API de traza, debes decidir si quieres utilizar Infinite Tracing. Para obtener más información sobre esto, consulte Introducción a las consideraciones de seguimiento y muestreo infinitos.

Para comenzar a utilizar la API de traza, siga uno de estos caminos:

Enviar carga útil de traza de muestra (rastreo no infinito)

A continuación se explica cómo enviar una carga útil estándar (noInfinite Tracing) a la API de traza utilizando nuestro formato newrelic .

  1. Obtenga un para la cuenta a la que desea informar datos.

  2. Inserte esa clave en el siguiente JSON y luego envíe el JSON a nuestro extremo. Nota: si tiene una cuenta EU New Relic, utilice el extremo EU en su lugar.

    bash
    $
    curl -i -H 'Content-Type: application/json' \
    >
    -H 'Api-Key: YOUR_LICENSE_KEY' \
    >
    -H 'Data-Format: newrelic' \
    >
    -H 'Data-Format-Version: 1' \
    >
    -X POST \
    >
    -d '[
    $
    {
    $
    "common": {
    $
    "attributes": {
    $
    "service.name": "Test Service A",
    $
    "host": "host123.example.com"
    $
    }
    $
    },
    $
    "spans": [
    $
    {
    $
    "trace.id": "123456",
    $
    "id": "ABC",
    $
    "attributes": {
    $
    "duration.ms": 12.53,
    $
    "name": "/home"
    $
    }
    $
    },
    $
    {
    $
    "trace.id": "123456",
    $
    "id": "DEF",
    $
    "attributes": {
    $
    "error.message": "Invalid credentials",
    $
    "service.name": "Test Service A",
    $
    "host": "host456.example.com",
    $
    "duration.ms": 2.97,
    $
    "name": "/auth",
    $
    "parent.id": "ABC"
    $
    }
    $
    }
    $
    ]
    $
    }
    $
    ]' 'https://trace-api.newrelic.com/trace/v1'

    Sugerencia

    Si envía más de un POST, cambie el trace.id por un valor único. Enviar la misma carga útil o intervalo id varias veces para el mismo trace.id puede generar una traza fragmentada en la UI.

  3. Si su prueba arrojó HTTP/1.1 202 Accepted, vaya a nuestra UI para ver una consulta de los datos de su prueba utilizando el atributo de intervalo service.name = Test Service A.

    Sugerencia

    Traza puede tardar hasta un minuto en ser procesada tanto por el observador de traza como por la traza API.

Traza API carga (formato New Relic)

La carga útil de traza API JSON es una matriz de objetos, y cada objeto representa una única traza. Cada uno de estos objetos requiere una clave spans y también puede incluir una clave common . spans (obligatorio) contiene una matriz de objetos, y cada objeto representa un intervalo. common (opcional) comparte información en varios tramos.

El objeto Span en la matriz spans

campo

tipo

descripción

requerido

por defecto

id

cadena

Identificador único para este lapso.

N/A

trace.id

cadena

Identificador único compartido por todos los tramos dentro de una única traza.

N/A

timestamp

largo

Hora de inicio del intervalo en milisegundos desde la época de Unix.

No

Hora actual en la zona horaria UTC

attributes

objeto

Cualquier conjunto de pares de valores principales que agreguen más detalles sobre un lapso. Se recomienda encarecidamente agregar duration.ms, name y parent.id .

No

N/A

Las solicitudes que no contengan las claves requeridas anteriormente se rechazarán y se generará un NrIntegrationError .

El objeto common (opcional)

campo

tipo

descripción

requerido

por defecto

attributes

objeto

Cualquier conjunto de pares de valores principales que agreguen detalles comunes sobre tramos en la carga útil. Si un intervalo contiene un atributo que se ha establecido en common, la clave en el objeto de atributos de intervalo tendrá prioridad. Se recomienda encarecidamente agregar duration.ms, name y parent.id .

No

N/A

Si bien no son obligatorios, estos atributos deben incluirse para obtener la mejor experiencia con sus datos en el objeto attributes para cada intervalo.

atributo

por defecto

descripción

duration.ms

Flotante

ninguno

Duración de este lapso en milisegundos.

name

cadena

ninguno

El nombre de este lapso.

parent.id

cadena

ninguno

La identificación de la persona que llama de este lapso. El valor es null si este es el intervalo raíz. La traza sin un tramo de raíz no se mostrará.

service.name

cadena

ninguno

El nombre de la entidad que creó este intervalo. Si no se proporciona ningún valor o se proporciona una cadena vacía, el intervalo se asigna a una entidad "DESCONOCIDA" y se mostrará como tal en la UI. Este valor debe proporcionarse para obtener una experiencia completa en la UI.

Atributo reservado

Estos atributos están actualmente reservados para uso interno de New Relic. Si bien no están bloqueados explícitamente, recomendamos no utilizarlos.

atributo

por defecto

descripción

entity.name

cadena

service.name

Esto se deriva del atributo service.name .

entity.type

cadena

service

Se supone que el tipo de entidad es un servicio.

entity.guid

cadena

Ninguno

El entity.guid es un valor derivado que identifica de forma única la entidad en el backend de New Relic.

Otro atributo

Puede agregar cualquier atributo arbitrario que desee en el objeto attributes en common o en cada objeto span, con la excepción del atributo restringido. Por ejemplo, es posible que desees agregar atributos como customer.id o user.id para ayudarte a analizar los datos de tu traza.

Requisitos y lineamientos para traza JSON usando el formato newrelic :

  • Cada carga útil JSON es una matriz de objetos.
  • Cada objeto debe contener una clave spans obligatoria.
  • Cada objeto puede contener una clave common opcional. Utilícelo si desea compartir información en varios tramos de un objeto.
  • Cualquier clave en un intervalo tiene prioridad sobre la misma clave en el bloque common .
  • El valor de una clave spans es una lista de span objetos.
  • Ciertos atributos son obligatorios y deben incluirse en el bloque opcional common o en cada tramo.
  • Recomendado y el atributo personalizado se pueden incluir opcionalmente en una lista de pares de valores principales bajo una clave denominada attributes, en el bloque opcional common y/o en cada intervalo.

En el siguiente ejemplo POST, hay dos tramos, los cuales tienen el traza.id 12345 y el atributo personalizado host: host123.example.com. El primer tramo no tiene parent.id, por lo que esa es la raíz de la traza; El parent.id del segundo tramo apunta al ID del primero.

[
{
"common": {
"attributes": {
"host": "host123.example.com"
}
},
"spans": [
{
"trace.id": "12345",
"id": "abc",
"timestamp": 1603336834823,
"attributes": {
"user.email": "bob@newr.com",
"service.name": "my-service",
"duration.ms": 750,
"name": "my-span"
}
},
{
"trace.id": "12345",
"id": "def",
"timestamp": 1603336834899,
"attributes": {
"parent.id": "abc",
"service.name": "second-service",
"duration.ms": 750,
"name": "second-span"
}
}
]
}
]

Para aprender a controlar cómo aparecen los intervalos en New Relic (por ejemplo, agregar errores o configurar un intervalo como intervalo de almacenamiento de datos), consulte Decorar intervalos.

Explore más sobre el rastreo distribuido:

Copyright © 2024 New Relic Inc.

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