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
Documentation, liens et articles supplémentaires utiles: