Associer vos logs Go à vos traces

Associer vos logs Go à vos traces

Injection manuelle

L’API du traceur Go vous permet d’ajouter des informations sur les spans aux messages de log, à l’aide du spécificateur de format %v :

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()

    // Ajouter les informations sur les spans aux messages de log :
    log.Printf("mon message de log %v", span)
}

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 parser vos logs, des règles de parsing de log personnalisées doivent s’assurer que dd.trace_id, dd.span_id, dd.service, dd.env et dd.version sont parsés en tant que chaînes. Pour en savoir plus, consultez la FAQ à ce sujet.

Pour aller plus loin