Postgres driver will register a new tracing sql driver and return the driver name.
(tp trace.TracerProvider, service string)
| 13 | |
| 14 | // Postgres driver will register a new tracing sql driver and return the driver name. |
| 15 | func PostgresDriver(tp trace.TracerProvider, service string) (string, error) { |
| 16 | // Register the otelsql wrapper for the provided postgres driver. |
| 17 | driverName, err := otelsql.Register("postgres", |
| 18 | otelsql.WithDefaultAttributes( |
| 19 | semconv.ServiceNameKey.String(service), |
| 20 | ), |
| 21 | otelsql.TraceQueryWithoutArgs(), |
| 22 | otelsql.WithSystem(semconv.DBSystemPostgreSQL), |
| 23 | otelsql.WithTracerProvider(tp), |
| 24 | otelsql.WithSpanNameFormatter(formatPostgresSpan), |
| 25 | ) |
| 26 | if err != nil { |
| 27 | return "", xerrors.Errorf("registering postgres tracing driver: %w", err) |
| 28 | } |
| 29 | |
| 30 | return driverName, nil |
| 31 | } |
| 32 | |
| 33 | func formatPostgresSpan(ctx context.Context, op string) string { |
| 34 | const qPrefix = "-- name: " |
no test coverage detected