Skip to content
This repository was archived by the owner on Apr 2, 2024. It is now read-only.

Commit d1912cb

Browse files
committed
Migrate OTEL libraries breaking changes
1 parent e434645 commit d1912cb

File tree

16 files changed

+114
-122
lines changed

16 files changed

+114
-122
lines changed

go.mod

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,12 @@ require (
3636
github.com/prometheus/prometheus v1.8.2-0.20220308163432-03831554a519
3737
github.com/sergi/go-diff v1.2.0
3838
github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546
39-
github.com/stretchr/testify v1.7.3
39+
github.com/stretchr/testify v1.7.4
4040
github.com/testcontainers/testcontainers-go v0.13.0
4141
github.com/thanos-io/thanos v0.26.0
4242
github.com/walle/targz v0.0.0-20140417120357-57fe4206da5a
43-
go.opentelemetry.io/collector/model v0.50.0
44-
go.opentelemetry.io/collector/pdata v0.53.0
45-
go.opentelemetry.io/collector/semconv v0.53.0
43+
go.opentelemetry.io/collector/pdata v0.54.0
44+
go.opentelemetry.io/collector/semconv v0.54.0
4645
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.32.0
4746
go.opentelemetry.io/otel v1.7.0
4847
go.opentelemetry.io/otel/exporters/jaeger v1.7.0

go.sum

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1944,6 +1944,8 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/
19441944
github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals=
19451945
github.com/stretchr/testify v1.7.3 h1:dAm0YRdRQlWojc3CrCRgPBzG5f941d0zvAKu7qY4e+I=
19461946
github.com/stretchr/testify v1.7.3/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
1947+
github.com/stretchr/testify v1.7.4 h1:wZRexSlwd7ZXfKINDLsO4r7WBt3gTKONc6K/VesHvHM=
1948+
github.com/stretchr/testify v1.7.4/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
19471949
github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s=
19481950
github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
19491951
github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww=
@@ -2115,6 +2117,7 @@ go.opencensus.io v0.23.0 h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M=
21152117
go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=
21162118
go.opentelemetry.io/collector v0.49.0 h1:brKMIUwlL1bt0Faxqqxvj7549KWm9FEN77Z4i4RAlDE=
21172119
go.opentelemetry.io/collector v0.49.0/go.mod h1:ErYGC1VzzrpK/uM134DJIbARX3jl9vtTqgIXsiWxjGE=
2120+
go.opentelemetry.io/collector v0.53.0 h1:p4XwnAltBnw/gCRTk+DHTJVGYLzD5cPHp+0XK/KKE/s=
21182121
go.opentelemetry.io/collector/model v0.46.0/go.mod h1:uyiyyq8lV45zrJ94MnLip26sorfNLP6J9XmOvaEmy7w=
21192122
go.opentelemetry.io/collector/model v0.48.0/go.mod h1:1QVYv8TqsTMt9wVC5BUF9fqMVtk2C5EclWDnuVqdKoU=
21202123
go.opentelemetry.io/collector/model v0.49.0 h1:mbUSNgpaBE3GWmzGsRb5t0xILpXIVYv7scPTTfoMt6c=
@@ -2125,10 +2128,14 @@ go.opentelemetry.io/collector/pdata v0.49.0 h1:aYj5rOlRC0x7lGXbc185LMsMMoY/pjOTX
21252128
go.opentelemetry.io/collector/pdata v0.49.0/go.mod h1:YwmKuiFhNgtmhRdpi8Q8FAWPa0AwJTCSlssSsAtuRcY=
21262129
go.opentelemetry.io/collector/pdata v0.53.0 h1:jezCyHu/LXs4P/GzKObCabU2/OUTivNBlQHGPAo/dZo=
21272130
go.opentelemetry.io/collector/pdata v0.53.0/go.mod h1:25b+xH0uJwp8H3f0a1V+OQfxbhYVds6Rf1Ul+HFCGo4=
2131+
go.opentelemetry.io/collector/pdata v0.54.0 h1:oo3HyHwdf4lJmDUN0yrOGKj2tiHIoXDutDd0HKR++/0=
2132+
go.opentelemetry.io/collector/pdata v0.54.0/go.mod h1:1nSelv/YqGwdHHaIKNW9ZOHSMqicDX7W4/7TjNCm6N8=
21282133
go.opentelemetry.io/collector/semconv v0.52.0 h1:ogYkQ6WL01xQ4GGSwWQejNTQwy/Pwcd6jCKFLSd7svA=
21292134
go.opentelemetry.io/collector/semconv v0.52.0/go.mod h1:SxK0rUnUP7YeDakexzbE/vhimTOHwE6m/4aKKd9e27Q=
21302135
go.opentelemetry.io/collector/semconv v0.53.0 h1:J1lVnFp1VyNKU63rc7csY9/54Tjm9BlLylXLjPimf7s=
21312136
go.opentelemetry.io/collector/semconv v0.53.0/go.mod h1:SxK0rUnUP7YeDakexzbE/vhimTOHwE6m/4aKKd9e27Q=
2137+
go.opentelemetry.io/collector/semconv v0.54.0 h1:MaC9XW5xCqyoGp45yuSE4MSH8Ec0vawwh+w9JPjNNgA=
2138+
go.opentelemetry.io/collector/semconv v0.54.0/go.mod h1:HAGkPKNMhc4kEHevEqVIEtUuvsRQMIbUWBb8yBrqEwk=
21322139
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.31.0/go.mod h1:SY9qHHUES6W3oZnO1H2W8NvsSovIoXRg/A1AH9px8+I=
21332140
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.31.0/go.mod h1:PFmBsWbldL1kiWZk9+0LBZz2brhByaGsvp6pRICMlPE=
21342141
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.32.0 h1:mac9BKRqwaX6zxHPDe3pvmWpwuuIM0vuXv2juCnQevE=

pkg/api/otlp.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ import (
88
"context"
99

1010
"github.com/timescale/promscale/pkg/pgmodel/ingestor"
11-
"go.opentelemetry.io/collector/model/otlpgrpc"
11+
"go.opentelemetry.io/collector/pdata/ptrace/ptraceotlp"
1212
)
1313

14-
func NewTraceServer(i ingestor.DBInserter) otlpgrpc.TracesServer {
14+
func NewTraceServer(i ingestor.DBInserter) ptraceotlp.Server {
1515
return &tracesServer{
1616
ingestor: i,
1717
}
@@ -21,6 +21,6 @@ type tracesServer struct {
2121
ingestor ingestor.DBInserter
2222
}
2323

24-
func (t *tracesServer) Export(ctx context.Context, tr otlpgrpc.TracesRequest) (otlpgrpc.TracesResponse, error) {
25-
return otlpgrpc.NewTracesResponse(), t.ingestor.IngestTraces(ctx, tr.Traces())
24+
func (t *tracesServer) Export(ctx context.Context, tr ptraceotlp.Request) (ptraceotlp.Response, error) {
25+
return ptraceotlp.NewResponse(), t.ingestor.IngestTraces(ctx, tr.Traces())
2626
}

pkg/api/write_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import (
1919
"github.com/prometheus/client_golang/prometheus"
2020
io_prometheus_client "github.com/prometheus/client_model/go"
2121
"github.com/stretchr/testify/require"
22-
"go.opentelemetry.io/collector/model/pdata"
22+
"go.opentelemetry.io/collector/pdata/ptrace"
2323

2424
"github.com/timescale/promscale/pkg/api/parser"
2525
"github.com/timescale/promscale/pkg/log"
@@ -277,7 +277,7 @@ type mockInserter struct {
277277
err error
278278
}
279279

280-
func (m *mockInserter) IngestTraces(_ context.Context, _ pdata.Traces) error {
280+
func (m *mockInserter) IngestTraces(_ context.Context, _ ptrace.Traces) error {
281281
panic("not implemented") // TODO: Implement
282282
}
283283

pkg/jaeger/query/find_traces.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import (
1212
"github.com/jaegertracing/jaeger/storage/spanstore"
1313
jaegertranslator "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger"
1414
"github.com/timescale/promscale/pkg/pgxconn"
15-
"go.opentelemetry.io/collector/model/pdata"
15+
"go.opentelemetry.io/collector/pdata/ptrace"
1616
)
1717

1818
func findTraces(ctx context.Context, builder *Builder, conn pgxconn.PgxConn, q *spanstore.TraceQueryParameters) ([]*model.Trace, error) {
@@ -27,7 +27,7 @@ func findTraces(ctx context.Context, builder *Builder, conn pgxconn.PgxConn, q *
2727
}
2828

2929
func scanTraces(rows pgxconn.PgxRows) ([]*model.Trace, error) {
30-
traces := pdata.NewTraces()
30+
traces := ptrace.NewTraces()
3131
for rows.Next() {
3232
if rows.Err() != nil {
3333
return nil, fmt.Errorf("trace row iterator: %w", rows.Err())

pkg/jaeger/query/trace_query.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import (
1212
"github.com/jackc/pgtype"
1313
"github.com/jaegertracing/jaeger/model"
1414
"github.com/jaegertracing/jaeger/storage/spanstore"
15-
"go.opentelemetry.io/collector/model/pdata"
1615
"go.opentelemetry.io/collector/pdata/ptrace"
1716
semconv "go.opentelemetry.io/collector/semconv/v1.6.1"
1817
)
@@ -207,7 +206,7 @@ func (b *Builder) buildTraceIDSubquery(q *spanstore.TraceQueryParameters) (strin
207206
for k, v := range q.Tags {
208207
switch k {
209208
case TagError:
210-
var sc pdata.StatusCode
209+
var sc ptrace.StatusCode
211210
switch v {
212211
case "true":
213212
sc = ptrace.StatusCodeError

pkg/jaeger/query/trace_scan.go

Lines changed: 24 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import (
88
"fmt"
99
"time"
1010

11-
"go.opentelemetry.io/collector/model/pdata"
1211
"go.opentelemetry.io/collector/pdata/pcommon"
1312
"go.opentelemetry.io/collector/pdata/ptrace"
1413

@@ -56,7 +55,7 @@ type spanDBResult struct {
5655
linksTags pgtype.JSONBArray
5756
}
5857

59-
func ScanRow(row pgxconn.PgxRows, traces *pdata.Traces) error {
58+
func ScanRow(row pgxconn.PgxRows, traces *ptrace.Traces) error {
6059
dbRes := spanDBResult{}
6160

6261
if err := row.Scan(
@@ -109,14 +108,14 @@ func ScanRow(row pgxconn.PgxRows, traces *pdata.Traces) error {
109108

110109
func populateSpan(
111110
// From span table.
112-
resourceSpan pdata.ResourceSpans,
111+
resourceSpan ptrace.ResourceSpans,
113112
dbResult *spanDBResult) error {
114113

115114
attr, err := makeAttributes(dbResult.resourceTags)
116115
if err != nil {
117116
return fmt.Errorf("making resource tags: %w", err)
118117
}
119-
pdata.NewAttributeMapFromMap(attr).CopyTo(resourceSpan.Resource().Attributes())
118+
pcommon.NewMapFromRaw(attr).CopyTo(resourceSpan.Resource().Attributes())
120119

121120
instrumentationLibSpan := resourceSpan.ScopeSpans().AppendEmpty()
122121
if dbResult.instLibSchemaUrl != nil {
@@ -153,7 +152,7 @@ func populateSpan(
153152
ref.SetParentSpanID(parentId)
154153

155154
if dbResult.traceState.Status == pgtype.Present {
156-
ref.SetTraceState(pdata.TraceState(dbResult.traceState.String))
155+
ref.SetTraceState(ptrace.TraceState(dbResult.traceState.String))
157156
}
158157

159158
if dbResult.schemaUrl.Status == pgtype.Present {
@@ -166,8 +165,8 @@ func populateSpan(
166165
ref.SetKind(internalToSpanKind(dbResult.kind.String))
167166
}
168167

169-
ref.SetStartTimestamp(pdata.NewTimestampFromTime(dbResult.startTime))
170-
ref.SetEndTimestamp(pdata.NewTimestampFromTime(dbResult.endTime))
168+
ref.SetStartTimestamp(pcommon.NewTimestampFromTime(dbResult.startTime))
169+
ref.SetEndTimestamp(pcommon.NewTimestampFromTime(dbResult.endTime))
171170

172171
ref.SetDroppedAttributesCount(uint32(dbResult.droppedTagsCounts))
173172
ref.SetDroppedEventsCount(uint32(dbResult.droppedEventsCounts))
@@ -181,7 +180,7 @@ func populateSpan(
181180
if err != nil {
182181
return fmt.Errorf("making span tags: %w", err)
183182
}
184-
pdata.NewAttributeMapFromMap(attr).CopyTo(ref.Attributes())
183+
pcommon.NewMapFromRaw(attr).CopyTo(ref.Attributes())
185184

186185
if dbResult.eventNames != nil {
187186
if err := populateEvents(ref.Events(), dbResult); err != nil {
@@ -208,26 +207,26 @@ func setStatus(ref ptrace.Span, dbRes *spanDBResult) error {
208207
}
209208

210209
func populateEvents(
211-
spanEventSlice pdata.SpanEventSlice,
210+
spanEventSlice ptrace.SpanEventSlice,
212211
dbResult *spanDBResult) error {
213212

214213
n := len(*dbResult.eventNames)
215214
for i := 0; i < n; i++ {
216215
event := spanEventSlice.AppendEmpty()
217216
event.SetName((*dbResult.eventNames)[i])
218-
event.SetTimestamp(pdata.NewTimestampFromTime((*dbResult.eventTimes)[i]))
217+
event.SetTimestamp(pcommon.NewTimestampFromTime((*dbResult.eventTimes)[i]))
219218
event.SetDroppedAttributesCount(uint32((*dbResult.eventDroppedTagsCount)[i]))
220219
attr, err := makeAttributes(dbResult.eventTags.Elements[i])
221220
if err != nil {
222221
return fmt.Errorf("making event tags: %w", err)
223222
}
224-
pdata.NewAttributeMapFromMap(attr).CopyTo(event.Attributes())
223+
pcommon.NewMapFromRaw(attr).CopyTo(event.Attributes())
225224
}
226225
return nil
227226
}
228227

229228
func populateLinks(
230-
spanEventSlice pdata.SpanLinkSlice,
229+
spanEventSlice ptrace.SpanLinkSlice,
231230
dbResult *spanDBResult) error {
232231

233232
n := len(*dbResult.linksLinkedSpanIds)
@@ -240,40 +239,33 @@ func populateLinks(
240239
for i := 0; i < n; i++ {
241240
link := spanEventSlice.AppendEmpty()
242241

243-
link.SetTraceID(pdata.NewTraceID(linkedTraceIds[i]))
242+
link.SetTraceID(pcommon.NewTraceID(linkedTraceIds[i]))
244243

245244
spanId := makeSpanId(&(*dbResult.linksLinkedSpanIds)[i])
246245
link.SetSpanID(spanId)
247246

248247
if (*dbResult.linksTraceStates)[i] != nil {
249248
traceState := *((*dbResult.linksTraceStates)[i])
250-
link.SetTraceState(pdata.TraceState(traceState))
249+
link.SetTraceState(ptrace.TraceState(traceState))
251250
}
252251
link.SetDroppedAttributesCount(uint32((*dbResult.linksDroppedTagsCount)[i]))
253252
attr, err := makeAttributes(dbResult.linksTags.Elements[i])
254253
if err != nil {
255254
return fmt.Errorf("making link tags: %w", err)
256255
}
257-
pdata.NewAttributeMapFromMap(attr).CopyTo(link.Attributes())
256+
pcommon.NewMapFromRaw(attr).CopyTo(link.Attributes())
258257
}
259258
return nil
260259
}
261260

262-
// makeAttributes makes attribute map using tags.
263-
func makeAttributes(tagsJson pgtype.JSONB) (map[string]pcommon.Value, error) {
261+
// makeAttributes makes raw attribute map using tags.
262+
func makeAttributes(tagsJson pgtype.JSONB) (map[string]interface{}, error) {
264263
var tags map[string]interface{}
265264
if err := tagsJson.AssignTo(&tags); err != nil {
266-
return nil, fmt.Errorf("tags assign to: %w", err)
265+
return map[string]interface{}{}, fmt.Errorf("tags assign to: %w", err)
267266
}
268267
tags = sanitizeInt(tags)
269-
otMap := pcommon.NewMapFromRaw(tags)
270-
m := make(map[string]pcommon.Value, len(tags))
271-
populateMap := func(k string, v pcommon.Value) bool {
272-
m[k] = v
273-
return true
274-
}
275-
otMap.Range(populateMap)
276-
return m, nil
268+
return tags, nil
277269
}
278270

279271
// Hotfix of potential bug: Postgres returns tags as a JSONB map. In this format,
@@ -293,20 +285,20 @@ func isIntegral(val float64) bool {
293285
return val == float64(int(val))
294286
}
295287

296-
func makeTraceId(s pgtype.UUID) (pdata.TraceID, error) {
288+
func makeTraceId(s pgtype.UUID) (pcommon.TraceID, error) {
297289
var bSlice [16]byte
298290
if err := s.AssignTo(&bSlice); err != nil {
299-
return pdata.TraceID{}, fmt.Errorf("trace id assign to: %w", err)
291+
return pcommon.TraceID{}, fmt.Errorf("trace id assign to: %w", err)
300292
}
301-
return pdata.NewTraceID(bSlice), nil
293+
return pcommon.NewTraceID(bSlice), nil
302294
}
303295

304-
func makeSpanId(s *int64) pdata.SpanID {
296+
func makeSpanId(s *int64) pcommon.SpanID {
305297
if s == nil {
306298
// Send an empty Span ID.
307-
return pdata.NewSpanID([8]byte{})
299+
return pcommon.NewSpanID([8]byte{})
308300
}
309301

310302
b8 := trace.Int64ToByteArray(*s)
311-
return pdata.NewSpanID(b8)
303+
return pcommon.NewSpanID(b8)
312304
}

pkg/jaeger/query/translation.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,18 @@ package query
66
import (
77
"fmt"
88

9-
"go.opentelemetry.io/collector/model/pdata"
109
"go.opentelemetry.io/collector/pdata/ptrace"
1110
)
1211

1312
var (
1413
// Map of status codes to internal DB values.
15-
statusCodeInternalValue = map[string]pdata.StatusCode{
14+
statusCodeInternalValue = map[string]ptrace.StatusCode{
1615
"ok": ptrace.StatusCodeOk,
1716
"error": ptrace.StatusCodeError,
1817
"unset": ptrace.StatusCodeUnset,
1918
}
2019
// Map of span kinds to internal DB values.
21-
spanKindInternalValue = map[string]pdata.SpanKind{
20+
spanKindInternalValue = map[string]ptrace.SpanKind{
2221
"client": ptrace.SpanKindClient,
2322
"server": ptrace.SpanKindServer,
2423
"internal": ptrace.SpanKindInternal,
@@ -37,15 +36,15 @@ var (
3736
}
3837
)
3938

40-
func internalToStatusCode(s string) pdata.StatusCode {
39+
func internalToStatusCode(s string) ptrace.StatusCode {
4140
v, ok := statusCodeInternalValue[s]
4241
if !ok {
4342
panic(fmt.Sprintf("status code %s does not have internal representation", s))
4443
}
4544
return v
4645
}
4746

48-
func statusCodeToInternal(sc pdata.StatusCode) string {
47+
func statusCodeToInternal(sc ptrace.StatusCode) string {
4948
for k, v := range statusCodeInternalValue {
5049
if sc == v {
5150
return k
@@ -54,7 +53,7 @@ func statusCodeToInternal(sc pdata.StatusCode) string {
5453
panic(fmt.Sprintf("status code %s does not have internal representation", sc.String()))
5554
}
5655

57-
func internalToSpanKind(s string) pdata.SpanKind {
56+
func internalToSpanKind(s string) ptrace.SpanKind {
5857
v, ok := spanKindInternalValue[s]
5958
if !ok {
6059
panic(fmt.Sprintf("span kind %s does not have internal representation", s))

pkg/pgclient/client.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import (
1111

1212
"github.com/jackc/pgx/v4"
1313
"github.com/jackc/pgx/v4/pgxpool"
14-
"go.opentelemetry.io/collector/model/pdata"
14+
"go.opentelemetry.io/collector/pdata/ptrace"
1515

1616
"github.com/timescale/promscale/pkg/ha"
1717
"github.com/timescale/promscale/pkg/log"
@@ -215,7 +215,7 @@ func (c *Client) Ingest(ctx context.Context, r *prompb.WriteRequest) (uint64, ui
215215
}
216216

217217
// IngestTraces writes the traces object into the DB.
218-
func (c *Client) IngestTraces(ctx context.Context, tr pdata.Traces) error {
218+
func (c *Client) IngestTraces(ctx context.Context, tr ptrace.Traces) error {
219219
return c.ingestor.IngestTraces(ctx, tr)
220220
}
221221

pkg/pgmodel/ingestor/ingestor.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import (
1010
"time"
1111

1212
"github.com/prometheus/client_golang/prometheus"
13-
"go.opentelemetry.io/collector/model/pdata"
13+
"go.opentelemetry.io/collector/pdata/ptrace"
1414
"go.uber.org/atomic"
1515

1616
"github.com/timescale/promscale/pkg/pgmodel/cache"
@@ -79,7 +79,7 @@ type result struct {
7979
err error
8080
}
8181

82-
func (ingestor *DBIngestor) IngestTraces(ctx context.Context, traces pdata.Traces) error {
82+
func (ingestor *DBIngestor) IngestTraces(ctx context.Context, traces ptrace.Traces) error {
8383
if ingestor.closed.Load() {
8484
return fmt.Errorf("ingestor is closed and can't ingest traces")
8585
}

0 commit comments

Comments
 (0)