diff options
| author | 2023-05-09 19:19:48 +0200 | |
|---|---|---|
| committer | 2023-05-09 18:19:48 +0100 | |
| commit | 6392e00653d3b81062ef60d8ae2fa2621873533f (patch) | |
| tree | 761d0ff445c2c6a85020cecdc58f92ae1cf78513 /vendor/github.com/uptrace/opentelemetry-go-extra/otelsql/tx.go | |
| parent | [bugfix] Don't try to get user when serializing local instance account (#1757) (diff) | |
| download | gotosocial-6392e00653d3b81062ef60d8ae2fa2621873533f.tar.xz | |
feat: initial tracing support (#1623)
Diffstat (limited to 'vendor/github.com/uptrace/opentelemetry-go-extra/otelsql/tx.go')
| -rw-r--r-- | vendor/github.com/uptrace/opentelemetry-go-extra/otelsql/tx.go | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/vendor/github.com/uptrace/opentelemetry-go-extra/otelsql/tx.go b/vendor/github.com/uptrace/opentelemetry-go-extra/otelsql/tx.go new file mode 100644 index 000000000..c4bd55e13 --- /dev/null +++ b/vendor/github.com/uptrace/opentelemetry-go-extra/otelsql/tx.go @@ -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() + }) +} |
