Skip to content

Commit 9289a08

Browse files
committed
fix
1 parent 23032a0 commit 9289a08

File tree

3 files changed

+20
-15
lines changed

3 files changed

+20
-15
lines changed

otel/config.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ type (
1414
Span interface {
1515
TraceID() string
1616

17+
Relation(span Span)
18+
1719
Msg(msg string, attributes ...KeyValue)
1820

1921
End(attributes ...KeyValue)

otel/noop.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ type (
1616
noopSpan struct{}
1717
)
1818

19+
func (noopSpan) Relation(Span) {}
20+
1921
func (noopSpan) TraceID() string {
2022
return ""
2123
}

otel/sql.go

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@ package otel
33
import (
44
"context"
55

6-
otelTrace "go.opentelemetry.io/otel/trace"
7-
86
"github.com/ydb-platform/ydb-go-sdk/v3/internal/kv"
97
"github.com/ydb-platform/ydb-go-sdk/v3/trace"
108
)
@@ -206,16 +204,17 @@ func databaseSQL(cfg Config) (t trace.DatabaseSQL) {
206204
}
207205
t.OnTxExec = func(info trace.DatabaseSQLTxExecStartInfo) func(trace.DatabaseSQLTxExecDoneInfo) {
208206
if cfg.Details()&trace.DatabaseSQLTxEvents != 0 {
209-
if !isStmtCall(*info.Context) {
210-
*info.Context = otelTrace.ContextWithSpan(*info.Context, otelTrace.SpanFromContext(info.TxContext))
211-
}
212207
start := childSpanWithReplaceCtx(
213208
info.Context,
214209
info.Call.FunctionID(),
215210
kv.String("query", info.Query),
216211
kv.String("transaction_id", safeID(info.Tx)),
217212
)
218213

214+
if !isStmtCall(*info.Context) {
215+
start.Relation(cfg.SpanFromContext(info.TxContext))
216+
}
217+
219218
return func(info trace.DatabaseSQLTxExecDoneInfo) {
220219
finish(
221220
start,
@@ -228,16 +227,17 @@ func databaseSQL(cfg Config) (t trace.DatabaseSQL) {
228227
}
229228
t.OnTxQuery = func(info trace.DatabaseSQLTxQueryStartInfo) func(trace.DatabaseSQLTxQueryDoneInfo) {
230229
if cfg.Details()&trace.DatabaseSQLTxEvents != 0 {
231-
if !isStmtCall(*info.Context) {
232-
*info.Context = otelTrace.ContextWithSpan(*info.Context, otelTrace.SpanFromContext(info.TxContext))
233-
}
234230
start := childSpanWithReplaceCtx(
235231
info.Context,
236232
info.Call.FunctionID(),
237233
kv.String("query", info.Query),
238234
kv.String("transaction_id", safeID(info.Tx)),
239235
)
240236

237+
if !isStmtCall(*info.Context) {
238+
start.Relation(cfg.SpanFromContext(info.TxContext))
239+
}
240+
241241
return func(info trace.DatabaseSQLTxQueryDoneInfo) {
242242
finish(
243243
start,
@@ -250,7 +250,6 @@ func databaseSQL(cfg Config) (t trace.DatabaseSQL) {
250250
}
251251
t.OnTxPrepare = func(info trace.DatabaseSQLTxPrepareStartInfo) func(trace.DatabaseSQLTxPrepareDoneInfo) {
252252
if cfg.Details()&trace.DatabaseSQLTxEvents != 0 {
253-
*info.Context = otelTrace.ContextWithSpan(*info.Context, otelTrace.SpanFromContext(info.TxContext))
254253
start := childSpanWithReplaceCtx(
255254
info.Context,
256255
info.Call.FunctionID(),
@@ -270,15 +269,16 @@ func databaseSQL(cfg Config) (t trace.DatabaseSQL) {
270269
}
271270
t.OnStmtExec = func(info trace.DatabaseSQLStmtExecStartInfo) func(trace.DatabaseSQLStmtExecDoneInfo) {
272271
if cfg.Details()&trace.DatabaseSQLStmtEvents != 0 {
273-
*info.Context = markStmtCall(
274-
otelTrace.ContextWithSpan(*info.Context, otelTrace.SpanFromContext(info.StmtContext)),
275-
)
276272
start := childSpanWithReplaceCtx(
277273
info.Context,
278274
info.Call.FunctionID(),
279275
kv.String("query", info.Query),
280276
)
281277

278+
start.Relation(cfg.SpanFromContext(info.StmtContext))
279+
280+
*info.Context = markStmtCall(*info.Context)
281+
282282
return func(info trace.DatabaseSQLStmtExecDoneInfo) {
283283
finish(
284284
start,
@@ -291,15 +291,16 @@ func databaseSQL(cfg Config) (t trace.DatabaseSQL) {
291291
}
292292
t.OnStmtQuery = func(info trace.DatabaseSQLStmtQueryStartInfo) func(trace.DatabaseSQLStmtQueryDoneInfo) {
293293
if cfg.Details()&trace.DatabaseSQLStmtEvents != 0 {
294-
*info.Context = markStmtCall(
295-
otelTrace.ContextWithSpan(*info.Context, otelTrace.SpanFromContext(info.StmtContext)),
296-
)
297294
start := childSpanWithReplaceCtx(
298295
info.Context,
299296
info.Call.FunctionID(),
300297
kv.String("query", info.Query),
301298
)
302299

300+
start.Relation(cfg.SpanFromContext(info.StmtContext))
301+
302+
*info.Context = markStmtCall(*info.Context)
303+
303304
return func(info trace.DatabaseSQLStmtQueryDoneInfo) {
304305
finish(
305306
start,

0 commit comments

Comments
 (0)