> ## Documentation Index
> Fetch the complete documentation index at: https://docs.appsignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SQL-instrumentatie

## Setup

Om uw gebruik van SQL te instrumenteren, importeert u de officiële OpenTelemetry-instrumentatiepakketten:

<CodeGroup>
  ```go Go theme={null}
  import(
    "github.com/XSAM/otelsql"
    semconv "go.opentelemetry.io/otel/semconv/v1.4.0"
  )
  ```
</CodeGroup>

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](https://github.com/XSAM/otelsql).

<CodeGroup>
  ```go Go theme={null}
  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()
  }
  ```
</CodeGroup>
