diff options
| author | 2025-03-09 17:47:56 +0100 | |
|---|---|---|
| committer | 2025-12-01 22:08:04 +0100 | |
| commit | b1af8fd87760b34e3ff2fd3bda38f211815a0473 (patch) | |
| tree | 9317fad1a7ec298d7a8d2678e4e422953bbc6f33 /vendor/github.com/uptrace/opentelemetry-go-extra/otelsql/README.md | |
| parent | [chore] update URLs to forked source (diff) | |
| download | gotosocial-b1af8fd87760b34e3ff2fd3bda38f211815a0473.tar.xz | |
[chore] remove vendor
Diffstat (limited to 'vendor/github.com/uptrace/opentelemetry-go-extra/otelsql/README.md')
| -rw-r--r-- | vendor/github.com/uptrace/opentelemetry-go-extra/otelsql/README.md | 119 |
1 files changed, 0 insertions, 119 deletions
diff --git a/vendor/github.com/uptrace/opentelemetry-go-extra/otelsql/README.md b/vendor/github.com/uptrace/opentelemetry-go-extra/otelsql/README.md deleted file mode 100644 index c8886453f..000000000 --- a/vendor/github.com/uptrace/opentelemetry-go-extra/otelsql/README.md +++ /dev/null @@ -1,119 +0,0 @@ -[](https://pkg.go.dev/github.com/uptrace/opentelemetry-go-extra/otelsql) - -# database/sql instrumentation for OpenTelemetry Go - -[OpenTelemetry database/sql](https://uptrace.dev/get/instrument/opentelemetry-database-sql.html) -instrumentation records database queries (including `Tx` and `Stmt` queries) and reports `DBStats` -metrics. - -## Installation - -```shell -go get github.com/uptrace/opentelemetry-go-extra/otelsql -``` - -## Usage - -To instrument database/sql, you need to connect to a database using the API provided by otelsql: - -| sql | otelsql | -| --------------------------- | ------------------------------- | -| `sql.Open(driverName, dsn)` | `otelsql.Open(driverName, dsn)` | -| `sql.OpenDB(connector)` | `otelsql.OpenDB(connector)` | - -```go -import ( - "github.com/uptrace/opentelemetry-go-extra/otelsql" - semconv "go.opentelemetry.io/otel/semconv/v1.10.0" -) - -db, err := otelsql.Open("sqlite", "file::memory:?cache=shared", - otelsql.WithAttributes(semconv.DBSystemSqlite), - otelsql.WithDBName("mydb")) -if err != nil { - panic(err) -} - -// db is *sql.DB -``` - -And then use context-aware API to propagate the active span via -[context](https://uptrace.dev/opentelemetry/go-tracing.html#context): - -```go -var num int -if err := db.QueryRowContext(ctx, "SELECT 42").Scan(&num); err != nil { - panic(err) -} -``` - -See [example](/example/) for details. - -## Options - -Both [otelsql.Open](https://pkg.go.dev/github.com/uptrace/opentelemetry-go-extra/otelsql#Open) and -[otelsql.OpenDB](https://pkg.go.dev/github.com/uptrace/opentelemetry-go-extra/otelsql#OpenDB) accept -the same [options](https://pkg.go.dev/github.com/uptrace/opentelemetry-go-extra/otelsql#Option): - -- [WithAttributes](https://pkg.go.dev/github.com/uptrace/opentelemetry-go-extra/otelsql#WithAttributes) - configures attributes that are used to create a span. -- [WithDBName](https://pkg.go.dev/github.com/uptrace/opentelemetry-go-extra/otelsql#WithDBName) - configures a `db.name` attribute. -- [WithDBSystem](https://pkg.go.dev/github.com/uptrace/opentelemetry-go-extra/otelsql#WithDBSystem) - configures a `db.system` attribute. When possible, you should prefer using WithAttributes and - [semconv](https://pkg.go.dev/go.opentelemetry.io/otel/semconv/v1.10.0), for example, - `otelsql.WithAttributes(semconv.DBSystemSqlite)`. - -## sqlboiler - -You can use otelsql to instrument [sqlboiler](https://github.com/volatiletech/sqlboiler) ORM: - -```go -import ( - "github.com/uptrace/opentelemetry-go-extra/otelsql" - semconv "go.opentelemetry.io/otel/semconv/v1.10.0" -) - -db, err := otelsql.Open("postgres", "dbname=fun user=abc", - otelsql.WithAttributes(semconv.DBSystemPostgreSQL)) -if err != nil { - return err -} - -boil.SetDB(db) -``` - -## GORM 1 - -You can use otelsql to instrument [GORM 1](https://v1.gorm.io/): - -```go -import ( - "github.com/jinzhu/gorm" - "github.com/uptrace/opentelemetry-go-extra/otelsql" - semconv "go.opentelemetry.io/otel/semconv/v1.10.0" -) - -// gormOpen is like gorm.Open, but it uses otelsql to instrument the database. -func gormOpen(driverName, dataSourceName string, opts ...otelsql.Option) (*gorm.DB, error) { - db, err := otelsql.Open(driverName, dataSourceName, opts...) - if err != nil { - return nil, err - } - return gorm.Open(driverName, db) -} - -db, err := gormOpen("mysql", "user:password@/dbname", - otelsql.WithAttributes(semconv.DBSystemMySQL)) -if err != nil { - panic(err) -} -``` - -To instrument GORM 2, use -[otelgorm](https://github.com/uptrace/opentelemetry-go-extra/tree/main/otelgorm). - -## Alternatives - -- https://github.com/XSAM/otelsql - different driver registration and no metrics. -- https://github.com/j2gg0s/otsql - like XSAM/otelsql but with Prometheus metrics. |
