Associer vos logs Go à vos traces
Rapport de recherche Datadog : Bilan sur l'adoption de l'informatique sans serveur Rapport : Bilan sur l'adoption de l'informatique sans serveur

Associer vos logs Go à vos traces

Injection automatique d’ID de trace

Prochainement disponible. Contactez l’assistance Datadog pour en savoir plus.

Injection manuelle d’ID de trace

Le traceur Go expose deux appels d’API afin d’autoriser l’affichage des identifiants de trace et de span avec les déclarations de log, à l’aide des méthodes exportées à partir du type SpanContext :

package main

import (
    "net/http"

    "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer"
)

func handler(w http.ResponseWriter, r *http.Request) {
    // Créer une span pour une requête Web au niveau de l'URL /posts.
    span := tracer.StartSpan("web.request", tracer.ResourceName("/posts"))
    defer span.Finish()

    // Récupérer l'ID de trace et l'ID de span.
    traceID := span.Context().TraceID()
    spanID := span.Context().SpanID()

    // Les ajouter aux messages de log en tant que champs :
    log.Printf("mon message de log dd.trace_id=%d dd.span_id=%d", traceID, spanID)
}

L’exemple ci-dessus explique comment utiliser le contexte de la span dans le paquet log de la bibliothèque standard. Cette même logique peut être appliquée aux paquets tiers.

Remarque : si vous n’utilisez pas une intégration de log de Datadog pour analyser vos logs, des règles de parsing de log personnalisées doivent s’assurer que dd.trace_id and dd.span_id sont analysés en tant que chaînes de caractères. Pour en savoir plus, consultez la FAQ à ce sujet.

Pour aller plus loin