-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathquery.go
28 lines (24 loc) · 760 Bytes
/
query.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package pgxxray
import (
"context"
"github.com/aws/aws-xray-sdk-go/xray"
"github.com/jackc/pgx/v5"
)
func (t *PGXTracer) TraceQueryStart(ctx context.Context, conn *pgx.Conn, data pgx.TraceQueryStartData) context.Context {
if t.traceEnabled[QueryTraceType] {
var seg *xray.Segment
ctx, seg = t.beginSubsegment(ctx, conn.Config(), "QUERY")
addSegmentMetadataString(seg, "sql", data.SQL)
addSegmentMetadataArray(seg, "sql_args", data.Args)
}
return ctx
}
func (t *PGXTracer) TraceQueryEnd(ctx context.Context, conn *pgx.Conn, data pgx.TraceQueryEndData) {
if t.traceEnabled[QueryTraceType] {
seg := t.tryGetSegment(ctx)
if seg != nil {
seg.AddMetadata("sql_rows_affected", data.CommandTag.RowsAffected())
seg.Close(data.Err)
}
}
}