From b95cd02837c0adc0d74fbe38e71812857e52fd3f Mon Sep 17 00:00:00 2001 From: Adam Horacek Date: Mon, 27 Sep 2021 12:47:55 +0200 Subject: [PATCH] sync with otel v1.0.0 --- appinsights/exporter.go | 2 +- appinsights/protocol.go | 42 ++++++++++++++++++++--------------------- go.mod | 6 +++--- go.sum | 9 +++++++++ 4 files changed, 34 insertions(+), 25 deletions(-) diff --git a/appinsights/exporter.go b/appinsights/exporter.go index e23bc47..f126a6e 100644 --- a/appinsights/exporter.go +++ b/appinsights/exporter.go @@ -18,7 +18,7 @@ type Exporter struct { } // ExportSpans exports span data to Azure Monitor -func (e *Exporter) ExportSpans(ctx context.Context, spans []*trace.SpanSnapshot) error { +func (e *Exporter) ExportSpans(ctx context.Context, spans []trace.ReadOnlySpan) error { envelopes := make([]*Envelope, len(spans)) for i, span := range spans { envelopes[i] = newEnvelopeFromSpan(span, &e.process) diff --git a/appinsights/protocol.go b/appinsights/protocol.go index 0d9db3e..a2ba57f 100644 --- a/appinsights/protocol.go +++ b/appinsights/protocol.go @@ -9,7 +9,7 @@ import ( "go.opentelemetry.io/otel/codes" sdktrace "go.opentelemetry.io/otel/sdk/trace" - "go.opentelemetry.io/otel/semconv" + semconv "go.opentelemetry.io/otel/semconv/v1.4.0" trace "go.opentelemetry.io/otel/trace" ) @@ -83,7 +83,7 @@ func fmtDuration(duration time.Duration) string { } // NewEnvelope creates new envelope -func newEnvelopeFromSpan(span *sdktrace.SpanSnapshot, process *Process) *Envelope { +func newEnvelopeFromSpan(span sdktrace.ReadOnlySpan, process *Process) *Envelope { envelope := &Envelope{ Ver: 1, Tags: map[string]string{ @@ -92,29 +92,29 @@ func newEnvelopeFromSpan(span *sdktrace.SpanSnapshot, process *Process) *Envelop "ai.device.id": hostname, "ai.device.osVersion": platform, }, - Time: span.StartTime.UTC().Format("2006-01-02T15:04:05.000000Z"), + Time: span.StartTime().UTC().Format("2006-01-02T15:04:05.000000Z"), } - envelope.Tags["ai.operation.id"] = span.SpanContext.TraceID().String() - if span.Parent.IsValid() { - envelope.Tags["ai.operation.parentId"] = span.Parent.SpanID().String() + envelope.Tags["ai.operation.id"] = span.SpanContext().TraceID().String() + if span.Parent().IsValid() { + envelope.Tags["ai.operation.parentId"] = span.Parent().SpanID().String() } - props := make(map[string]string, len(span.Attributes)) - for _, a := range span.Attributes { + props := make(map[string]string, len(span.Attributes())) + for _, a := range span.Attributes() { props[string(a.Key)] = a.Value.AsString() } - if span.SpanKind == trace.SpanKindConsumer || span.SpanKind == trace.SpanKindServer { + if span.SpanKind() == trace.SpanKindConsumer || span.SpanKind() == trace.SpanKindServer { envelope.Name = "Microsoft.Applicationappinsights.Request" data := &RequestData{ Ver: 2, - ID: span.SpanContext.SpanID().String(), - Duration: fmtDuration(span.EndTime.Sub(span.StartTime)), - ResponseCode: fmt.Sprintf("%d", span.StatusCode), - Success: span.StatusCode == codes.Ok, + ID: span.SpanContext().SpanID().String(), + Duration: fmtDuration(span.EndTime().Sub(span.StartTime())), + ResponseCode: fmt.Sprintf("%d", span.Status().Code), + Success: span.Status().Code == codes.Ok, } var method, route, url, host, path, scheme string status := -1 - for _, attr := range span.Attributes { + for _, attr := range span.Attributes() { switch attr.Key { case semconv.HTTPMethodKey: method = attr.Value.AsString() @@ -165,18 +165,18 @@ func newEnvelopeFromSpan(span *sdktrace.SpanSnapshot, process *Process) *Envelop envelope.Name = remoteDependency data := &RemoteDependencyData{ Ver: 2, - Name: span.Name, - ID: span.SpanContext.SpanID().String(), - ResultCode: fmt.Sprintf("%d", span.StatusCode), - Duration: fmtDuration(span.EndTime.Sub(span.StartTime)), + Name: span.Name(), + ID: span.SpanContext().SpanID().String(), + ResultCode: fmt.Sprintf("%d", span.Status().Code), + Duration: fmtDuration(span.EndTime().Sub(span.StartTime())), Type: "InProc", - Success: span.StatusCode == codes.Ok, + Success: span.Status().Code == codes.Ok, } - if span.SpanKind == trace.SpanKindClient || span.SpanKind == trace.SpanKindProducer { + if span.SpanKind() == trace.SpanKindClient || span.SpanKind() == trace.SpanKindProducer { var method string var url *url.URL status := -1 - for _, attr := range span.Attributes { + for _, attr := range span.Attributes() { switch attr.Key { case semconv.HTTPMethodKey: method = attr.Value.AsString() diff --git a/go.mod b/go.mod index 57005c8..384e6a9 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/adamko147/opentelemetry-azure-monitor go 1.15 require ( - go.opentelemetry.io/otel v0.20.0 - go.opentelemetry.io/otel/sdk v0.20.0 - go.opentelemetry.io/otel/trace v0.20.0 + go.opentelemetry.io/otel v1.0.0 + go.opentelemetry.io/otel/sdk v1.0.0 + go.opentelemetry.io/otel/trace v1.0.0 ) diff --git a/go.sum b/go.sum index 730e712..bc30701 100644 --- a/go.sum +++ b/go.sum @@ -2,6 +2,7 @@ github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8 github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -9,14 +10,22 @@ github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5Cc github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= go.opentelemetry.io/otel v0.20.0 h1:eaP0Fqu7SXHwvjiqDq83zImeehOHX8doTvU9AwXON8g= go.opentelemetry.io/otel v0.20.0/go.mod h1:Y3ugLH2oa81t5QO+Lty+zXf8zC9L26ax4Nzoxm/dooo= +go.opentelemetry.io/otel v1.0.0 h1:qTTn6x71GVBvoafHK/yaRUmFzI4LcONZD0/kXxl5PHI= +go.opentelemetry.io/otel v1.0.0/go.mod h1:AjRVh9A5/5DE7S+mZtTR6t8vpKKryam+0lREnfmS4cg= go.opentelemetry.io/otel/metric v0.20.0 h1:4kzhXFP+btKm4jwxpjIqjs41A7MakRFUS86bqLHTIw8= go.opentelemetry.io/otel/metric v0.20.0/go.mod h1:598I5tYlH1vzBjn+BTuhzTCSb/9debfNp6R3s7Pr1eU= go.opentelemetry.io/otel/oteltest v0.20.0 h1:HiITxCawalo5vQzdHfKeZurV8x7ljcqAgiWzF6Vaeaw= go.opentelemetry.io/otel/oteltest v0.20.0/go.mod h1:L7bgKf9ZB7qCwT9Up7i9/pn0PWIa9FqQ2IQ8LoxiGnw= go.opentelemetry.io/otel/sdk v0.20.0 h1:JsxtGXd06J8jrnya7fdI/U/MR6yXA5DtbZy+qoHQlr8= go.opentelemetry.io/otel/sdk v0.20.0/go.mod h1:g/IcepuwNsoiX5Byy2nNV0ySUF1em498m7hBWC279Yc= +go.opentelemetry.io/otel/sdk v1.0.0 h1:BNPMYUONPNbLneMttKSjQhOTlFLOD9U22HNG1KrIN2Y= +go.opentelemetry.io/otel/sdk v1.0.0/go.mod h1:PCrDHlSy5x1kjezSdL37PhbFUMjrsLRshJ2zCzeXwbM= go.opentelemetry.io/otel/trace v0.20.0 h1:1DL6EXUdcg95gukhuRRvLDO/4X5THh/5dIV52lqtnbw= go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= +go.opentelemetry.io/otel/trace v1.0.0 h1:TSBr8GTEtKevYMG/2d21M989r5WJYVimhTHBKVEZuh4= +go.opentelemetry.io/otel/trace v1.0.0/go.mod h1:PXTWqayeFUlJV1YDNhsJYB184+IvAH814St6o6ajzIs= +golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7 h1:iGu644GcxtEcrInvDsQRCwJjtCIOlT2V7IRt6ah2Whw= +golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=