Files
service-base/database/postgres.go

23 lines
519 B
Go

package database
import (
"database/sql"
"github.com/uptrace/opentelemetry-go-extra/otelsql"
"go.opentelemetry.io/otel/attribute"
)
// OpenPostgres establishes a connection to a Postgres database and enables OpenTelemetry tracing and stats reporting.
func OpenPostgres(dbURL string) (*sql.DB, error) {
db, err := otelsql.Open("postgres", dbURL)
if err != nil {
return nil, err
}
otelsql.ReportDBStatsMetrics(db, otelsql.WithAttributes(
attribute.String("db.system", "postgresql"),
))
return db, nil
}