Pular para o conteúdo principal

Configuração

Para instrumentar o uso de SQL, você precisará importar os pacotes oficiais de instrumentação do OpenTelemetry:
import(
  "github.com/XSAM/otelsql"
  semconv "go.opentelemetry.io/otel/semconv/v1.4.0"
)
Sua conexão com o banco de dados precisa ser aberta usando o pacote otelsql. Também é importante consultar o banco usando a função QueryContext para passar o contexto atual, de forma que os spans sejam corretamente aninhados e estruturados. O exemplo abaixo mostra como instrumentar queries em um banco MySQL no contexto de uma requisição web. Para mais informações sobre uso e suporte a drivers SQL, dê uma olhada no repositório do pacote.
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()
}