Naar hoofdinhoud gaan

Setup

Om uw gebruik van SQL te instrumenteren, importeert u de officiële OpenTelemetry-instrumentatiepakketten:
import(
  "github.com/XSAM/otelsql"
  semconv "go.opentelemetry.io/otel/semconv/v1.4.0"
)
Uw DB-verbinding moet worden geopend met het otelsql-pakket. Het is ook belangrijk om de database te bevragen met de functie QueryContext om de huidige context door te geven; op die manier worden de spans goed genest en gestructureerd. In het onderstaande voorbeeld wordt getoond hoe u queries op een MySQL-database in een webrequest-context kunt instrumenteren. Voor meer informatie over gebruik en de ondersteunde SQL-drivers, raadpleeg de repository van het pakket.
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()
}