Skip to content

Commit 298cbed

Browse files
MrAliaspellaredCopilot
authored
Upgrade semconv use to v1.39.0 (#7854)
Resolve #7806 - Replace use of `rpc.grpc.status_code` with `rpc.response.status_code` (open-telemetry/semantic-conventions#1504) - Pin zipkin semconv to use 1.38.0 for deprecated `PeerServiceKey` (https://github.com/open-telemetry/opentelemetry-specification/blob/343c2abbcb86a94292bd7cd55e96edcea5a96113/specification/trace/sdk_exporters/zipkin.md#otlp---zipkin) --------- Co-authored-by: Robert Pająk <pellared@hotmail.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
1 parent 3264bf1 commit 298cbed

File tree

9 files changed

+41
-41
lines changed

9 files changed

+41
-41
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
2727
- Improve performance of concurrent synchronous gauge measurements in `go.opentelemetry.io/otel/sdk/metric`. (#7478)
2828
- Improve performance of concurrent exponential histogram measurements in `go.opentelemetry.io/otel/sdk/metric`. (#7702)
2929
- Improve the concurrent performance of `FixedSizeReservoir` in `go.opentelemetry.io/otel/sdk/metric/exemplar`. (#7447)
30+
- The `rpc.grpc.status_code` attribute in the experimental metrics emitted from `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc` is replaced with the `rpc.response.status_code` attribute to align with the semantic conventions. (#7854)
31+
- The `rpc.grpc.status_code` attribute in the experimental metrics emitted from `go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc` is replaced with the `rpc.response.status_code` attribute to align with the semantic conventions. (#7854)
3032

3133
### Fixed
3234

exporters/otlp/otlplog/otlploggrpc/client_test.go

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ import (
3737
"go.opentelemetry.io/otel/sdk/metric"
3838
"go.opentelemetry.io/otel/sdk/metric/metricdata"
3939
"go.opentelemetry.io/otel/sdk/metric/metricdata/metricdatatest"
40-
semconv "go.opentelemetry.io/otel/semconv/v1.37.0"
41-
"go.opentelemetry.io/otel/semconv/v1.37.0/otelconv"
40+
semconv "go.opentelemetry.io/otel/semconv/v1.39.0"
41+
"go.opentelemetry.io/otel/semconv/v1.39.0/otelconv"
4242
)
4343

4444
var (
@@ -693,10 +693,8 @@ func TestClientObservability(t *testing.T) {
693693
otelconv.SDKExporterOperationDuration{}.AttrComponentType(
694694
otelconv.ComponentTypeOtlpGRPCLogExporter,
695695
),
696-
otelconv.SDKExporterOperationDuration{}.AttrRPCGRPCStatusCode(
697-
otelconv.RPCGRPCStatusCodeAttr(
698-
codes.OK,
699-
),
696+
otelconv.SDKExporterOperationDuration{}.AttrRPCResponseStatusCode(
697+
codes.OK.String(),
700698
),
701699
serverAddrAttrs[0],
702700
serverAddrAttrs[1],
@@ -833,10 +831,8 @@ func TestClientObservability(t *testing.T) {
833831
otelconv.SDKExporterOperationDuration{}.AttrComponentType(
834832
otelconv.ComponentTypeOtlpGRPCLogExporter,
835833
),
836-
otelconv.SDKExporterOperationDuration{}.AttrRPCGRPCStatusCode(
837-
otelconv.RPCGRPCStatusCodeAttr(
838-
status.Code(wantErr),
839-
),
834+
otelconv.SDKExporterOperationDuration{}.AttrRPCResponseStatusCode(
835+
status.Code(wantErr).String(),
840836
),
841837
serverAddrAttrs[0],
842838
serverAddrAttrs[1],
@@ -880,7 +876,7 @@ func TestClientObservability(t *testing.T) {
880876
wantErr = errors.Join(wantErr, err)
881877

882878
wantErrTypeAttr := semconv.ErrorType(wantErr)
883-
wantGRPCStatusCodeAttr := otelconv.RPCGRPCStatusCodeAttr(codes.InvalidArgument)
879+
wantGRPCStatus := codes.InvalidArgument
884880
rCh := make(chan exportResult, 1)
885881
rCh <- exportResult{
886882
Err: err,
@@ -968,8 +964,8 @@ func TestClientObservability(t *testing.T) {
968964
otelconv.SDKExporterOperationDuration{}.AttrComponentType(
969965
otelconv.ComponentTypeOtlpGRPCLogExporter,
970966
),
971-
otelconv.SDKExporterOperationDuration{}.AttrRPCGRPCStatusCode(
972-
wantGRPCStatusCodeAttr,
967+
otelconv.SDKExporterOperationDuration{}.AttrRPCResponseStatusCode(
968+
wantGRPCStatus.String(),
973969
),
974970
serverAddrAttrs[0],
975971
serverAddrAttrs[1],
@@ -1148,10 +1144,8 @@ func TestClientObservabilityWithRetry(t *testing.T) {
11481144
otelconv.SDKExporterOperationDuration{}.AttrComponentType(
11491145
otelconv.ComponentTypeOtlpGRPCLogExporter,
11501146
),
1151-
otelconv.SDKExporterOperationDuration{}.AttrRPCGRPCStatusCode(
1152-
otelconv.RPCGRPCStatusCodeAttr(
1153-
status.Code(wantErr),
1154-
),
1147+
otelconv.SDKExporterOperationDuration{}.AttrRPCResponseStatusCode(
1148+
status.Code(wantErr).String(),
11551149
),
11561150
serverAddrAttrs[0],
11571151
serverAddrAttrs[1],

exporters/otlp/otlplog/otlploggrpc/internal/observ/instrumentation.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
"sync"
1313
"time"
1414

15+
"google.golang.org/grpc/codes"
1516
"google.golang.org/grpc/status"
1617

1718
"go.opentelemetry.io/otel"
@@ -20,8 +21,8 @@ import (
2021
"go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc/internal/x"
2122
"go.opentelemetry.io/otel/internal/global"
2223
"go.opentelemetry.io/otel/metric"
23-
semconv "go.opentelemetry.io/otel/semconv/v1.37.0"
24-
"go.opentelemetry.io/otel/semconv/v1.37.0/otelconv"
24+
semconv "go.opentelemetry.io/otel/semconv/v1.39.0"
25+
"go.opentelemetry.io/otel/semconv/v1.39.0/otelconv"
2526
)
2627

2728
const (
@@ -149,7 +150,7 @@ func NewInstrumentation(id int64, target string) (*Instrumentation, error) {
149150
i.addOpt = metric.WithAttributeSet(attribute.NewSet(i.presetAttrs...))
150151
i.recOpt = metric.WithAttributeSet(attribute.NewSet(append(
151152
// Default to OK status code.
152-
[]attribute.KeyValue{semconv.RPCGRPCStatusCodeOk},
153+
[]attribute.KeyValue{semconv.RPCResponseStatusCode(codes.OK.String())},
153154
i.presetAttrs...,
154155
)...))
155156
return i, nil
@@ -230,10 +231,10 @@ func (i *Instrumentation) recordOption(err error) metric.RecordOption {
230231
defer put(attrsPool, attrs)
231232

232233
*attrs = append(*attrs, i.presetAttrs...)
233-
code := int64(status.Code(err))
234+
code := status.Code(err)
234235
*attrs = append(
235236
*attrs,
236-
semconv.RPCGRPCStatusCodeKey.Int64(code),
237+
semconv.RPCResponseStatusCode(code.String()),
237238
semconv.ErrorType(err),
238239
)
239240

exporters/otlp/otlplog/otlploggrpc/internal/observ/instrumentation_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ import (
1919
"go.opentelemetry.io/otel/sdk/metric"
2020
"go.opentelemetry.io/otel/sdk/metric/metricdata"
2121
"go.opentelemetry.io/otel/sdk/metric/metricdata/metricdatatest"
22-
semconv "go.opentelemetry.io/otel/semconv/v1.37.0"
23-
"go.opentelemetry.io/otel/semconv/v1.37.0/otelconv"
22+
semconv "go.opentelemetry.io/otel/semconv/v1.39.0"
23+
"go.opentelemetry.io/otel/semconv/v1.39.0/otelconv"
2424
)
2525

2626
const (
@@ -175,7 +175,7 @@ func logOperationDurationMetrics(err error, code codes.Code) metricdata.Metrics
175175
attrs := []attribute.KeyValue{
176176
semconv.OTelComponentName(GetComponentName(ID)),
177177
semconv.OTelComponentTypeKey.String(string(otelconv.ComponentTypeOtlpGRPCLogExporter)),
178-
semconv.RPCGRPCStatusCodeKey.Int64(int64(code)),
178+
semconv.RPCResponseStatusCode(code.String()),
179179
}
180180
attrs = append(attrs, ServerAddrAttrs(TARGET)...)
181181
if err != nil {

exporters/otlp/otlptrace/otlptracegrpc/client_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ import (
3939
"go.opentelemetry.io/otel/sdk/metric/metricdata/metricdatatest"
4040
sdktrace "go.opentelemetry.io/otel/sdk/trace"
4141
"go.opentelemetry.io/otel/sdk/trace/tracetest"
42-
"go.opentelemetry.io/otel/semconv/v1.37.0/otelconv"
42+
"go.opentelemetry.io/otel/semconv/v1.39.0/otelconv"
4343
)
4444

4545
func TestMain(m *testing.M) {
@@ -519,8 +519,8 @@ func TestClientInstrumentation(t *testing.T) {
519519
{Attributes: attribute.NewSet(append(
520520
attrs,
521521
otelconv.SDKExporterOperationDuration{}.AttrErrorType("*errors.joinError"),
522-
otelconv.SDKExporterOperationDuration{}.AttrRPCGRPCStatusCode(
523-
otelconv.RPCGRPCStatusCodeOk,
522+
otelconv.SDKExporterOperationDuration{}.AttrRPCResponseStatusCode(
523+
codes.OK.String(),
524524
),
525525
)...)},
526526
},

exporters/otlp/otlptrace/otlptracegrpc/internal/observ/instrumentation.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ import (
1818
"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc/internal/x"
1919
"go.opentelemetry.io/otel/internal/global"
2020
"go.opentelemetry.io/otel/metric"
21-
semconv "go.opentelemetry.io/otel/semconv/v1.37.0"
22-
"go.opentelemetry.io/otel/semconv/v1.37.0/otelconv"
21+
semconv "go.opentelemetry.io/otel/semconv/v1.39.0"
22+
"go.opentelemetry.io/otel/semconv/v1.39.0/otelconv"
2323
)
2424

2525
const (
@@ -116,7 +116,9 @@ func NewInstrumentation(id int64, target string) (*Instrumentation, error) {
116116
// Do not modify attrs (NewSet sorts in-place), make a new slice.
117117
recOpt: metric.WithAttributeSet(attribute.NewSet(append(
118118
// Default to OK status code.
119-
[]attribute.KeyValue{semconv.RPCGRPCStatusCodeOk},
119+
[]attribute.KeyValue{
120+
semconv.RPCResponseStatusCode(codes.OK.String()),
121+
},
120122
attrs...,
121123
)...)),
122124
}
@@ -291,8 +293,7 @@ func (i *Instrumentation) recordOption(err error, code codes.Code) metric.Record
291293
defer put(measureAttrsPool, attrs)
292294
*attrs = append(*attrs, i.attrs...)
293295

294-
c := int64(code) // uint32 -> int64.
295-
*attrs = append(*attrs, semconv.RPCGRPCStatusCodeKey.Int64(c))
296+
*attrs = append(*attrs, semconv.RPCResponseStatusCode(code.String()))
296297
if err != nil {
297298
*attrs = append(*attrs, semconv.ErrorType(err))
298299
}

exporters/otlp/otlptrace/otlptracegrpc/internal/observ/instrumentation_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ import (
2222
"go.opentelemetry.io/otel/sdk/metric"
2323
"go.opentelemetry.io/otel/sdk/metric/metricdata"
2424
"go.opentelemetry.io/otel/sdk/metric/metricdata/metricdatatest"
25-
semconv "go.opentelemetry.io/otel/semconv/v1.37.0"
26-
"go.opentelemetry.io/otel/semconv/v1.37.0/otelconv"
25+
semconv "go.opentelemetry.io/otel/semconv/v1.39.0"
26+
"go.opentelemetry.io/otel/semconv/v1.39.0/otelconv"
2727
)
2828

2929
const (
@@ -171,10 +171,10 @@ func spanExported(success, total int64, err error) metricdata.Metrics {
171171

172172
func operationDuration(err error) metricdata.Metrics {
173173
rpcSet := func(err error) attribute.Set {
174-
c := int64(status.Code(err))
174+
c := status.Code(err)
175175
return attribute.NewSet(append(
176176
[]attribute.KeyValue{
177-
semconv.RPCGRPCStatusCodeKey.Int64(c),
177+
semconv.RPCResponseStatusCode(c.String()),
178178
},
179179
baseAttrs(err)...,
180180
)...)

exporters/zipkin/model.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ import (
2020
semconv120 "go.opentelemetry.io/otel/semconv/v1.20.0"
2121
semconv121 "go.opentelemetry.io/otel/semconv/v1.21.0"
2222
semconv125 "go.opentelemetry.io/otel/semconv/v1.25.0"
23-
semconv "go.opentelemetry.io/otel/semconv/v1.37.0"
23+
semconv138 "go.opentelemetry.io/otel/semconv/v1.38.0"
24+
semconv "go.opentelemetry.io/otel/semconv/v1.39.0"
2425
"go.opentelemetry.io/otel/trace"
2526
)
2627

@@ -227,7 +228,7 @@ func toZipkinTags(data tracesdk.ReadOnlySpan) map[string]string {
227228
// Rank determines selection order for remote endpoint. See the specification
228229
// https://github.com/open-telemetry/opentelemetry-specification/blob/v1.28.0/specification/trace/sdk_exporters/zipkin.md#otlp---zipkin
229230
var remoteEndpointKeyRank = map[attribute.Key]int{
230-
semconv.PeerServiceKey: 1,
231+
semconv138.PeerServiceKey: 1,
231232
semconv.ServerAddressKey: 2,
232233
semconv120.NetPeerNameKey: 3,
233234
semconv.NetworkPeerAddressKey: 4,

exporters/zipkin/model_test.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ import (
2222
tracesdk "go.opentelemetry.io/otel/sdk/trace"
2323
"go.opentelemetry.io/otel/sdk/trace/tracetest"
2424
semconv125 "go.opentelemetry.io/otel/semconv/v1.25.0"
25-
semconv "go.opentelemetry.io/otel/semconv/v1.37.0"
25+
semconv138 "go.opentelemetry.io/otel/semconv/v1.38.0"
26+
semconv "go.opentelemetry.io/otel/semconv/v1.39.0"
2627
"go.opentelemetry.io/otel/trace"
2728
)
2829

@@ -1154,7 +1155,7 @@ func TestRemoteEndpointTransformation(t *testing.T) {
11541155
data: tracetest.SpanStub{
11551156
SpanKind: trace.SpanKindProducer,
11561157
Attributes: []attribute.KeyValue{
1157-
semconv.PeerService("peer-service-test"),
1158+
semconv138.PeerService("peer-service-test"),
11581159
semconv.ServerAddress("server-address-test"),
11591160
semconv.NetworkPeerAddress("10.1.2.80"),
11601161
},

0 commit comments

Comments
 (0)