Passer au contenu principal

Configuration

Pour instrumenter votre utilisation de SQL, vous devrez importer les paquets d’instrumentation officiels OpenTelemetry :
import(
  "github.com/XSAM/otelsql"
  semconv "go.opentelemetry.io/otel/semconv/v1.4.0"
)
Votre connexion à la base de données doit être ouverte à l’aide du paquet otelsql, il est également important d’interroger la base de données à l’aide de la fonction QueryContext pour passer le contexte actuel, de cette façon, les spans seront correctement imbriqués et structurés. L’exemple ci-dessous montre comment instrumenter les requêtes vers une base de données MySQL dans un contexte de requête web. Pour plus d’informations sur l’utilisation et la prise en charge des pilotes SQL, consultez le dépôt du paquet.
func mysqlQuery(w http.ResponseWriter, r *http.Request) {
	ctx := r.Context()

	db, err := otelsql.Open(
		"mysql",
		"root:password@tcp(0.0.0.0:3306)/mydb",
		otelsql.WithAttributes(semconv.DBSystemMySQL),
	)
	if err != nil {
		panic(err)
	}
	defer db.Close()

	rows, err := db.QueryContext(ctx, "select * from mysql.user")
	if err != nil {
		panic(err)
	}
	defer rows.Close()
}