• /
  • EnglishEspañolFrançais日本語한국어Português
  • Se connecterDémarrer

Cette traduction automatique est fournie pour votre commodité.

En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.

Créer un problème

Signaler une trace via l'API de trace (format New Relic)

Si vous souhaitez créer votre propre implémentation de tracing, vous pouvez utiliser notre API Trace. Ce document explique comment envoyer une trace dans notre format général, également connu sous le nom de format newrelic . (Pour envoyer des données au format Zipkin, voir Zipkin.)

Démarrer

Utiliser notre API de trace est aussi simple que :

  • Envoi des données de trace au format attendu (dans ce cas, notre format newrelic ).
  • Envoi de ces données au point de terminaison approprié.

Avant d’utiliser l’API de trace, vous devez décider si vous souhaitez utiliser Infinite Tracing. Pour en savoir plus, consultez Introduction à Infinite Tracing et Considérations relatives à l'échantillonnage.

Pour commencer à utiliser l’API de trace, suivez l’un de ces chemins :

Envoyer un échantillon de charge utile de trace (non-Infinite Tracing)

Ce qui suit explique comment envoyer une charge utile standard (nonInfinite Tracing) à l'API Trace à l'aide de notre format newrelic .

  1. Obtenez un pour le compte auquel vous souhaitez signaler des données.

  2. Insérez cette clé dans le JSON suivant, puis envoyez le JSON à notre point de terminaison. Remarque : si vous disposez d'un compte New Relic UE, utilisez plutôt le point de terminaison UE .

    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'

    Conseil

    Si vous envoyez plusieurs POST, remplacez le trace.id par une valeur unique. L'envoi de la même charge ou de la même portée id plusieurs fois pour le même trace.id peut entraîner une trace fragmentée dans l'UI.

  3. Si votre test a renvoyé HTTP/1.1 202 Accepted, accédez à notre UI pour voir une requête de vos données de test à l'aide de l'attribut span service.name = Test Service A.

    Conseil

    Le traitement de la trace par l'observateur de trace et l'API de trace peut prendre jusqu'à une minute.

trace des frais d'API (format New Relic)

L'API de trace JSON charge est un ensemble d'objets, chaque objet représentant une seule trace. Chacun de ces objets nécessite une clé spans et peut également inclure une clé common . spans (obligatoire) contient un éventail d'objets, chaque objet représentant une étendue. common (facultatif) partage des informations sur plusieurs étendues.

L'objet Span dans l'éventail spans

champ

type

description

requis

défaut

id

chaîne

Identifiant unique pour cette période.

Oui

N/A

trace.id

chaîne

Identifiant unique partagé par tous les spans au sein d'une même trace.

Oui

N/A

timestamp

long

Heure de début de l'intervalle en millisecondes depuis l'époque Unix.

Non

Heure actuelle dans le fuseau horaire UTC

attributes

objet

Tout ensemble de paires valeur-clé qui ajoutent plus de détails sur une plage. duration.ms est obligatoire, et il est fortement recommandé d'ajouter les attributs name et parent.id .

Oui

N/A

Les demandes sans les clés requises ci-dessus seront rejetées et un NrIntegrationError sera généré.

L'objet common (facultatif)

champ

type

description

requis

défaut

attributes

objet

Tout ensemble de paires valeur-clé qui ajoutent des détails communs sur les portées de la charge. Si une étendue contient un attribut qui a été défini dans common, la clé de l'objet d'attribut étendue aura la priorité. Il est fortement recommandé d'ajouter duration.ms, name et parent.id .

Non

N/A

Bien que cela ne soit pas obligatoire, ces attributs doivent être inclus pour une expérience optimale avec vos données dans l'objet attributes pour chaque plage.

attribut

défaut

description

duration.ms

virgule flottante

aucun

Durée de cette période en millisecondes.

name

chaîne

aucun

Le nom de cette travée.

parent.id

chaîne

aucun

L'identifiant de l'appelant de ce span. La valeur est null s'il s'agit de la racine span. la trace sans étendue racine ne sera pas affichée.

service.name

chaîne

aucun

Le nom de l'entité qui a créé cette plage. Si aucune valeur ou une chaîne vide n'est fournie, l'étendue est attribuée à une entité « INCONNUE » et s'affichera comme telle dans l'UI. Cette valeur doit être fournie pour obtenir une expérience complète dans l'UI.

Attribut réservé

Ces attributs sont actuellement réservés à l'utilisation interne de New Relic. Bien qu'ils ne soient pas explicitement bloqués, nous vous recommandons de ne pas les utiliser.

attribut

défaut

description

entity.name

chaîne

service.name

Ceci est dérivé de l'attribut service.name .

entity.type

chaîne

service

Le type d’entité est supposé être un service.

entity.guid

chaîne

Aucun

entity.guid est une valeur dérivée qui identifie de manière unique l'entité dans le backend de New Relic.

Autre attribut

Vous pouvez ajouter n'importe quel attribut arbitraire que vous souhaitez dans l'objet attributes dans common ou dans chaque objet span, à l'exception de l' attribut restreint. Par exemple, vous souhaiterez peut-être ajouter un attribut tel que customer.id ou user.id pour vous aider à analyser vos données trace .

Exigences et directives pour trace JSON à l'aide du format newrelic :

  • Chaque charge JSON est un ensemble d'objets.
  • Chaque objet doit contenir une clé spans obligatoire.
  • Chaque objet peut contenir une clé common facultative. Utilisez ceci si vous souhaitez partager des informations sur plusieurs zones d’un objet.
  • Toutes les clés d’un segment ont la priorité sur la même clé dans le bloc common .
  • La valeur d'une clé spans est une liste d'objets span .
  • Certains attributs sont obligatoires et doivent être inclus soit dans le bloc facultatif common, soit dans chaque étendue.
  • Les attributs recommandés et personnalisés peuvent être éventuellement inclus dans une liste de paires valeur-clé sous une clé nommée attributes, dans le bloc facultatif common et/ou dans chaque étendue.

Dans l'exemple suivant POST, il y a deux étendues, toutes deux dotées du trace.id 12345 et de l'attribut personnalisé host: host123.example.com. Le premier span n'a pas parent.id, il s'agit donc de la racine de la trace ; le parent.id du deuxième span pointe vers l'ID du premier.

[
{
"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"
}
}
]
}
]

Pour savoir comment contrôler la manière dont les étendues s'affichent dans New Relic (par exemple, en ajoutant des erreurs ou en définissant une étendue comme étendue de datastore ), consultez Décorer les étendues.

En savoir plus sur le tracing distribué :

Droits d'auteur © 2025 New Relic Inc.

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