• /
  • 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

Tracing distribué pour vos services C

Le traçage distribué vous permet de voir l'intégralité du parcours de vos requests à travers un systèmes distribués. Le C SDK prend en charge le traçage standard distribué avec échantillonnage en début de workflow. Il ne prend pas en charge la fonctionnalité appelée Infinite Tracing ou W3C Trace Context.

Le C SDK nécessite que vous instrumentez manuellement vos services C, contrairement à l'auto-instrumentation d'autres agents New Relic . Cela signifie que vous devez ajouter quelques lignes à votre code pour utiliser le C SDK, puis ajouter une configuration supplémentaire pour activer le traçage distribué.

Voici comment commencer :

Conseil

Si vous souhaitez en savoir plus avant de commencer, consultez ces sujets :

  • Le fonctionnement de l'échantillonnage de portée explique le traçage distribué des options.
  • Impacts sur APM vous indique à quoi vous attendre si vous êtes un utilisateur actuel mais que vous n'avez pas configuré le traçage distribué.

Instrumenter un exemple de programme (recommandé) :

Il s'agit d'un moyen rapide de voir comment installer le C SDK et instrumenter un service avec un traçage standard distribué.

Avant de commencer les étapes principales :

  • Vous aurez besoin d'un compte New Relic pour configurer le traçage distribué. Si vous n'en avez pas encore, vous pouvez rapidement créer un compte gratuit. Notez que ce lien vous mènera vers un autre site pour terminer l'inscription, mais vous pouvez revenir ici et suivre les étapes de configuration ci-dessous.
  • Assurez-vous de répondre aux exigences.

Étape 1. Identifier les services

Déterminez quels services touchent à votre demande afin de pouvoir instrumenter chacun d'eux pour envoyer des données trace à New Relic.

Étape 2. Instrumenter chaque service avec un agent APM

Nous avons un exemple de la façon d'installer le C SDK et instrumenter un exemple d'application afin qu'il commence à signaler la télémétrie à New Relic. Une fois que vous avez compris comment cela fonctionne, vous pouvez appliquer les principes à chacun de vos services C impliqués dans vos requests. Si certains de vos services utilisent d’autres langues, suivez simplement les étapes d’installation pour ces langues.

Avant d'accéder à l'exemple de service ci-dessous, notez qu'il vous demandera de créer un newrelic_app_config_t par défaut, mais vous devrez également ajouter distributed_tracing.enabled et le définir sur true:

#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
/*
* A standalone example that demonstrates to users how to
* configure logging, configure an app, connect an app,
* start a transaction and a segment, and cleanly destroy
* everything.
*/
#include "libnewrelic.h"
int main(void) {
newrelic_app_t* app;
newrelic_txn_t* txn;
newrelic_app_config_t* config;
newrelic_segment_t* seg;
config = newrelic_create_app_config("<YOUR_APP_NAME>", "9931ae06b54780ab846c16fc602b5778ead3907f");
config->distributed_tracing.enabled = true;
...

Pour tester le programme d'exemple, cliquez ici.

Étape 3. Afficher la trace

Après avoir instrumenté chacun de vos services avec l'agent APM, générez du trafic dans votre application afin que nous puissions capturer une trace. Voici quelques façons d'afficher votre trace dans l'UI:

Pour plus d'aide pour trouver votre trace dans l'UI:

Instrumenter les transactions et requêtes HTTP

Pour les transactions qui se produisent dans plusieurs services, les traces distribuées contiennent des informations qui permettent New Relic de les assembler dans une trace de transaction complète. Cependant, si les services monitorés par New Relic n'envoient pas de contexte de trace, cela entraînera des détails de trace incomplets. Pour plus d'informations, consultez la documentation sur la transmission de l'en-tête API de traçage distribué et la documentation de traçage distribué du C SDK sur GitHub.

Si vous voulez...

Utilisez ceci

Créer et renvoyer une charge utile à envoyer au service appelé

newrelic_create_distributed_trace_payload()

Accepter une charge utile envoyée depuis le premier service

Cela liera ces services ensemble dans une trace.

Renvoyer une représentation de chaîne JSON codée en base64 de la charge utile

Cela offre le même comportement que newrelic_create_distributed_trace_payload().

Accepter une chaîne codée en base64 pour la charge utile

Cela offre le même comportement que newrelic_accept_distributed_trace_payload().

Droits d'auteur © 2025 New Relic Inc.

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