Zum Hauptinhalt springen

Einrichtung

Um Ihre SQL-Nutzung zu instrumentieren, müssen Sie die offiziellen OpenTelemetry-Instrumentierungspakete importieren:
import(
  "github.com/XSAM/otelsql"
  semconv "go.opentelemetry.io/otel/semconv/v1.4.0"
)
Ihre DB-Verbindung muss mit dem Paket otelsql geöffnet werden. Außerdem ist es wichtig, die Datenbank mit der Funktion QueryContext abzufragen, um den aktuellen Kontext zu übergeben; auf diese Weise werden die Spans korrekt verschachtelt und strukturiert. Das folgende Beispiel zeigt, wie Sie Queries an eine MySQL-Datenbank im Kontext eines Web-Requests instrumentieren. Weitere Informationen zur Verwendung und zur Unterstützung von SQL-Treibern finden Sie im Paket-Repository.
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()
}