feat: initial tracing support (#1623)

This commit is contained in:
Dominik Süß 2023-05-09 19:19:48 +02:00 committed by GitHub
commit 6392e00653
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
472 changed files with 102600 additions and 12 deletions

View file

@ -0,0 +1,38 @@
package otelsql
import (
"context"
"database/sql/driver"
"go.opentelemetry.io/otel/trace"
)
type otelTx struct {
ctx context.Context
tx driver.Tx
instrum *dbInstrum
}
var _ driver.Tx = (*otelTx)(nil)
func newTx(ctx context.Context, tx driver.Tx, instrum *dbInstrum) *otelTx {
return &otelTx{
ctx: ctx,
tx: tx,
instrum: instrum,
}
}
func (tx *otelTx) Commit() error {
return tx.instrum.withSpan(tx.ctx, "tx.Commit", "",
func(ctx context.Context, span trace.Span) error {
return tx.tx.Commit()
})
}
func (tx *otelTx) Rollback() error {
return tx.instrum.withSpan(tx.ctx, "tx.Rollback", "",
func(ctx context.Context, span trace.Span) error {
return tx.tx.Rollback()
})
}