Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,12 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
- The semantic conventions have been upgraded from `v1.27.0` to `v1.32.0` in `go.opentelemetry.io/contrib/bridges/otellogr`. (#7387)
- The semantic conventions have been upgraded from `v1.26.0` to `v1.32.0` in `go.opentelemetry.io/contrib/bridges/otelzap`. (#7389)
- The semantic conventions have been upgraded from `v1.26.0` to `v1.32.0` in `go.opentelemetry.io/contrib/detectors/gcp`. (#7378)
- The semantic conventions have been upgraded in `go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws` to `v1.32.0`. (#7394)
- The `messaging.system=AmazonSQS` attribute has been corrected to `messaging.system=aws.sqs`.
- The `net.peer.addr` attribute key has been upgraded to `server.address`.
- The `http.status_code` attribute key has been upgraded to `http.response.status_code`.
- The `db.system=dynamodb` attribute has been corrected to `db.system.name=aws.dynamodb`.
- The deprecated `messaging.operation.type=publish` attribute has been corrected to `messaging.operation.type=send`.
- The semantic conventions have been upgraded from `v1.21.0` to `v1.32.0` in `go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-lambda-go/otellambda`. (#7400)
- The semantic conventions in `go.opentelemetry.io/contrib/instrumentation/host` have been upgraded to `v1.32.0`. (#7390)
- The description of `process.cpu.time` is updated to comply with semantic conventions.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import (
"github.com/aws/smithy-go/middleware"

"go.opentelemetry.io/otel/attribute"
semconv "go.opentelemetry.io/otel/semconv/v1.21.0"
semconv "go.opentelemetry.io/otel/semconv/v1.32.0"
)

// AWS attributes.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import (
"github.com/stretchr/testify/assert"

"go.opentelemetry.io/otel/attribute"
semconv "go.opentelemetry.io/otel/semconv/v1.21.0"
semconv "go.opentelemetry.io/otel/semconv/v1.32.0"
)

func TestOperationAttr(t *testing.T) {
Expand Down Expand Up @@ -62,7 +62,7 @@ func TestDefaultAttributeBuilderOnSupportedService(t *testing.T) {
},
}, middleware.InitializeOutput{})
assert.ElementsMatch(t, []attribute.KeyValue{
semconv.MessagingSystem("AmazonSQS"),
semconv.NetPeerName(testQueueURL),
semconv.MessagingSystemAWSSQS,
semconv.ServerAddress(testQueueURL),
}, attr)
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import (
"go.opentelemetry.io/otel/attribute"
"go.opentelemetry.io/otel/codes"
"go.opentelemetry.io/otel/propagation"
semconv "go.opentelemetry.io/otel/semconv/v1.21.0"
semconv "go.opentelemetry.io/otel/semconv/v1.32.0"
"go.opentelemetry.io/otel/trace"
)

Expand Down Expand Up @@ -112,7 +112,7 @@ func (m otelMiddlewares) deserializeMiddleware(stack *middleware.Stack) error {
}

span := trace.SpanFromContext(ctx)
span.SetAttributes(semconv.HTTPStatusCode(resp.StatusCode))
span.SetAttributes(semconv.HTTPResponseStatusCode(resp.StatusCode))

requestID, ok := v2Middleware.GetRequestIDMetadata(metadata)
if ok {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@ import (
"github.com/aws/smithy-go/middleware"

"go.opentelemetry.io/otel/attribute"
semconv "go.opentelemetry.io/otel/semconv/v1.21.0"
semconv "go.opentelemetry.io/otel/semconv/v1.32.0"
)

// DynamoDBAttributeBuilder sets DynamoDB specific attributes depending on the DynamoDB operation being performed.
func DynamoDBAttributeBuilder(ctx context.Context, in middleware.InitializeInput, out middleware.InitializeOutput) []attribute.KeyValue {
dynamodbAttributes := []attribute.KeyValue{semconv.DBSystemDynamoDB}
dynamodbAttributes := []attribute.KeyValue{semconv.DBSystemNameAWSDynamoDB}

switch v := in.Parameters.(type) {
case *dynamodb.GetItemInput:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import (
"github.com/aws/smithy-go/middleware"

"go.opentelemetry.io/otel/attribute"
semconv "go.opentelemetry.io/otel/semconv/v1.27.0"
semconv "go.opentelemetry.io/otel/semconv/v1.32.0"
)

// SNSAttributeBuilder sets SNS specific attributes depending on the SNS operation is being performed.
Expand All @@ -22,14 +22,14 @@ func SNSAttributeBuilder(ctx context.Context, in middleware.InitializeInput, out
case *sns.PublishBatchInput:
snsAttributes = append(snsAttributes,
semconv.MessagingDestinationName(extractDestinationName(v.TopicArn, nil)),
semconv.MessagingOperationTypePublish,
semconv.MessagingOperationTypeSend,
semconv.MessagingOperationName("publish_batch_input"),
semconv.MessagingBatchMessageCount(len(v.PublishBatchRequestEntries)),
)
case *sns.PublishInput:
snsAttributes = append(snsAttributes,
semconv.MessagingDestinationName(extractDestinationName(v.TopicArn, v.TargetArn)),
semconv.MessagingOperationTypePublish,
semconv.MessagingOperationTypeSend,
semconv.MessagingOperationName("publish_input"),
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import (
"github.com/aws/smithy-go/middleware"
"github.com/stretchr/testify/assert"

semconv "go.opentelemetry.io/otel/semconv/v1.27.0"
semconv "go.opentelemetry.io/otel/semconv/v1.32.0"
)

func TestPublishInput(t *testing.T) {
Expand All @@ -28,7 +28,7 @@ func TestPublishInput(t *testing.T) {
assert.Contains(t, attributes, semconv.MessagingSystemKey.String("aws_sns"))
assert.Contains(t, attributes, semconv.MessagingDestinationName("my-topic"))
assert.Contains(t, attributes, semconv.MessagingOperationName("publish_input"))
assert.Contains(t, attributes, semconv.MessagingOperationTypePublish)
assert.Contains(t, attributes, semconv.MessagingOperationTypeSend)
}

func TestPublishInputWithNoDestination(t *testing.T) {
Expand All @@ -41,7 +41,7 @@ func TestPublishInputWithNoDestination(t *testing.T) {
assert.Contains(t, attributes, semconv.MessagingSystemKey.String("aws_sns"))
assert.Contains(t, attributes, semconv.MessagingDestinationName(""))
assert.Contains(t, attributes, semconv.MessagingOperationName("publish_input"))
assert.Contains(t, attributes, semconv.MessagingOperationTypePublish)
assert.Contains(t, attributes, semconv.MessagingOperationTypeSend)
}

func TestPublishBatchInput(t *testing.T) {
Expand All @@ -57,6 +57,6 @@ func TestPublishBatchInput(t *testing.T) {
assert.Contains(t, attributes, semconv.MessagingSystemKey.String("aws_sns"))
assert.Contains(t, attributes, semconv.MessagingDestinationName("my-topic-batch"))
assert.Contains(t, attributes, semconv.MessagingOperationName("publish_batch_input"))
assert.Contains(t, attributes, semconv.MessagingOperationTypePublish)
assert.Contains(t, attributes, semconv.MessagingOperationTypeSend)
assert.Contains(t, attributes, semconv.MessagingBatchMessageCount(0))
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,43 +10,42 @@ import (
"github.com/aws/smithy-go/middleware"

"go.opentelemetry.io/otel/attribute"
semconv "go.opentelemetry.io/otel/semconv/v1.21.0"
semconv "go.opentelemetry.io/otel/semconv/v1.32.0"
)

// SQSAttributeBuilder sets SQS specific attributes depending on the SQS operation being performed.
func SQSAttributeBuilder(ctx context.Context, in middleware.InitializeInput, out middleware.InitializeOutput) []attribute.KeyValue {
sqsAttributes := []attribute.KeyValue{semconv.MessagingSystem("AmazonSQS")}
sqsAttributes := []attribute.KeyValue{semconv.MessagingSystemAWSSQS}

key := semconv.NetPeerNameKey
switch v := in.Parameters.(type) {
case *sqs.DeleteMessageBatchInput:
sqsAttributes = append(sqsAttributes, key.String(*v.QueueUrl))
sqsAttributes = append(sqsAttributes, semconv.ServerAddress(*v.QueueUrl))
case *sqs.DeleteMessageInput:
sqsAttributes = append(sqsAttributes, key.String(*v.QueueUrl))
sqsAttributes = append(sqsAttributes, semconv.ServerAddress(*v.QueueUrl))
case *sqs.DeleteQueueInput:
sqsAttributes = append(sqsAttributes, key.String(*v.QueueUrl))
sqsAttributes = append(sqsAttributes, semconv.ServerAddress(*v.QueueUrl))
case *sqs.GetQueueAttributesInput:
sqsAttributes = append(sqsAttributes, key.String(*v.QueueUrl))
sqsAttributes = append(sqsAttributes, semconv.ServerAddress(*v.QueueUrl))
case *sqs.ListDeadLetterSourceQueuesInput:
sqsAttributes = append(sqsAttributes, key.String(*v.QueueUrl))
sqsAttributes = append(sqsAttributes, semconv.ServerAddress(*v.QueueUrl))
case *sqs.ListQueueTagsInput:
sqsAttributes = append(sqsAttributes, key.String(*v.QueueUrl))
sqsAttributes = append(sqsAttributes, semconv.ServerAddress(*v.QueueUrl))
case *sqs.PurgeQueueInput:
sqsAttributes = append(sqsAttributes, key.String(*v.QueueUrl))
sqsAttributes = append(sqsAttributes, semconv.ServerAddress(*v.QueueUrl))
case *sqs.ReceiveMessageInput:
sqsAttributes = append(sqsAttributes, key.String(*v.QueueUrl))
sqsAttributes = append(sqsAttributes, semconv.ServerAddress(*v.QueueUrl))
case *sqs.RemovePermissionInput:
sqsAttributes = append(sqsAttributes, key.String(*v.QueueUrl))
sqsAttributes = append(sqsAttributes, semconv.ServerAddress(*v.QueueUrl))
case *sqs.SendMessageBatchInput:
sqsAttributes = append(sqsAttributes, key.String(*v.QueueUrl))
sqsAttributes = append(sqsAttributes, semconv.ServerAddress(*v.QueueUrl))
case *sqs.SendMessageInput:
sqsAttributes = append(sqsAttributes, key.String(*v.QueueUrl))
sqsAttributes = append(sqsAttributes, semconv.ServerAddress(*v.QueueUrl))
case *sqs.SetQueueAttributesInput:
sqsAttributes = append(sqsAttributes, key.String(*v.QueueUrl))
sqsAttributes = append(sqsAttributes, semconv.ServerAddress(*v.QueueUrl))
case *sqs.TagQueueInput:
sqsAttributes = append(sqsAttributes, key.String(*v.QueueUrl))
sqsAttributes = append(sqsAttributes, semconv.ServerAddress(*v.QueueUrl))
case *sqs.UntagQueueInput:
sqsAttributes = append(sqsAttributes, key.String(*v.QueueUrl))
sqsAttributes = append(sqsAttributes, semconv.ServerAddress(*v.QueueUrl))
}

return sqsAttributes
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import (
"github.com/aws/smithy-go/middleware"
"github.com/stretchr/testify/assert"

semconv "go.opentelemetry.io/otel/semconv/v1.21.0"
semconv "go.opentelemetry.io/otel/semconv/v1.32.0"
)

func TestSQSDeleteMessageBatchInput(t *testing.T) {
Expand All @@ -24,7 +24,7 @@ func TestSQSDeleteMessageBatchInput(t *testing.T) {

attributes := SQSAttributeBuilder(context.TODO(), input, middleware.InitializeOutput{})

assert.Contains(t, attributes, semconv.NetPeerName("test-queue-url"))
assert.Contains(t, attributes, semconv.ServerAddress("test-queue-url"))
}

func TestSQSDeleteMessageInput(t *testing.T) {
Expand All @@ -36,7 +36,7 @@ func TestSQSDeleteMessageInput(t *testing.T) {

attributes := SQSAttributeBuilder(context.TODO(), input, middleware.InitializeOutput{})

assert.Contains(t, attributes, semconv.NetPeerName("test-queue-url"))
assert.Contains(t, attributes, semconv.ServerAddress("test-queue-url"))
}

func TestSQSDeleteQueueInput(t *testing.T) {
Expand All @@ -48,7 +48,7 @@ func TestSQSDeleteQueueInput(t *testing.T) {

attributes := SQSAttributeBuilder(context.TODO(), input, middleware.InitializeOutput{})

assert.Contains(t, attributes, semconv.NetPeerName("test-queue-url"))
assert.Contains(t, attributes, semconv.ServerAddress("test-queue-url"))
}

func TestSQSGetQueueAttributesInput(t *testing.T) {
Expand All @@ -60,7 +60,7 @@ func TestSQSGetQueueAttributesInput(t *testing.T) {

attributes := SQSAttributeBuilder(context.TODO(), input, middleware.InitializeOutput{})

assert.Contains(t, attributes, semconv.NetPeerName("test-queue-url"))
assert.Contains(t, attributes, semconv.ServerAddress("test-queue-url"))
}

func TestSQSListDeadLetterSourceQueuesInput(t *testing.T) {
Expand All @@ -72,7 +72,7 @@ func TestSQSListDeadLetterSourceQueuesInput(t *testing.T) {

attributes := SQSAttributeBuilder(context.TODO(), input, middleware.InitializeOutput{})

assert.Contains(t, attributes, semconv.NetPeerName("test-queue-url"))
assert.Contains(t, attributes, semconv.ServerAddress("test-queue-url"))
}

func TestSQSListQueueTagsInput(t *testing.T) {
Expand All @@ -84,7 +84,7 @@ func TestSQSListQueueTagsInput(t *testing.T) {

attributes := SQSAttributeBuilder(context.TODO(), input, middleware.InitializeOutput{})

assert.Contains(t, attributes, semconv.NetPeerName("test-queue-url"))
assert.Contains(t, attributes, semconv.ServerAddress("test-queue-url"))
}

func TestSQSPurgeQueueInput(t *testing.T) {
Expand All @@ -96,7 +96,7 @@ func TestSQSPurgeQueueInput(t *testing.T) {

attributes := SQSAttributeBuilder(context.TODO(), input, middleware.InitializeOutput{})

assert.Contains(t, attributes, semconv.NetPeerName("test-queue-url"))
assert.Contains(t, attributes, semconv.ServerAddress("test-queue-url"))
}

func TestSQSReceiveMessageInput(t *testing.T) {
Expand All @@ -108,7 +108,7 @@ func TestSQSReceiveMessageInput(t *testing.T) {

attributes := SQSAttributeBuilder(context.TODO(), input, middleware.InitializeOutput{})

assert.Contains(t, attributes, semconv.NetPeerName("test-queue-url"))
assert.Contains(t, attributes, semconv.ServerAddress("test-queue-url"))
}

func TestSQSRemovePermissionInput(t *testing.T) {
Expand All @@ -120,7 +120,7 @@ func TestSQSRemovePermissionInput(t *testing.T) {

attributes := SQSAttributeBuilder(context.TODO(), input, middleware.InitializeOutput{})

assert.Contains(t, attributes, semconv.NetPeerName("test-queue-url"))
assert.Contains(t, attributes, semconv.ServerAddress("test-queue-url"))
}

func TestSQSSendMessageBatchInput(t *testing.T) {
Expand All @@ -132,7 +132,7 @@ func TestSQSSendMessageBatchInput(t *testing.T) {

attributes := SQSAttributeBuilder(context.TODO(), input, middleware.InitializeOutput{})

assert.Contains(t, attributes, semconv.NetPeerName("test-queue-url"))
assert.Contains(t, attributes, semconv.ServerAddress("test-queue-url"))
}

func TestSQSSendMessageInput(t *testing.T) {
Expand All @@ -144,7 +144,7 @@ func TestSQSSendMessageInput(t *testing.T) {

attributes := SQSAttributeBuilder(context.TODO(), input, middleware.InitializeOutput{})

assert.Contains(t, attributes, semconv.NetPeerName("test-queue-url"))
assert.Contains(t, attributes, semconv.ServerAddress("test-queue-url"))
}

func TestSQSSetQueueAttributesInput(t *testing.T) {
Expand All @@ -156,7 +156,7 @@ func TestSQSSetQueueAttributesInput(t *testing.T) {

attributes := SQSAttributeBuilder(context.TODO(), input, middleware.InitializeOutput{})

assert.Contains(t, attributes, semconv.NetPeerName("test-queue-url"))
assert.Contains(t, attributes, semconv.ServerAddress("test-queue-url"))
}

func TestSQSTagQueueInput(t *testing.T) {
Expand All @@ -168,7 +168,7 @@ func TestSQSTagQueueInput(t *testing.T) {

attributes := SQSAttributeBuilder(context.TODO(), input, middleware.InitializeOutput{})

assert.Contains(t, attributes, semconv.NetPeerName("test-queue-url"))
assert.Contains(t, attributes, semconv.ServerAddress("test-queue-url"))
}

func TestSQSUntagQueueInput(t *testing.T) {
Expand All @@ -180,5 +180,5 @@ func TestSQSUntagQueueInput(t *testing.T) {

attributes := SQSAttributeBuilder(context.TODO(), input, middleware.InitializeOutput{})

assert.Contains(t, attributes, semconv.NetPeerName("test-queue-url"))
assert.Contains(t, attributes, semconv.ServerAddress("test-queue-url"))
}
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ func TestAppendMiddlewares(t *testing.T) {
assert.Equal(t, trace.SpanKindClient, span.SpanKind())
assert.Equal(t, c.expectedError, span.Status().Code)
attrs := span.Attributes()
assert.Contains(t, attrs, attribute.Int("http.status_code", c.expectedStatusCode))
assert.Contains(t, attrs, attribute.Int("http.response.status_code", c.expectedStatusCode))
if c.expectedRequestID != "" {
assert.Contains(t, attrs, attribute.String("aws.request_id", c.expectedRequestID))
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ func TestDynamodbTags(t *testing.T) {
assert.Equal(t, "DynamoDB.GetItem", span.Name())
assert.Equal(t, trace.SpanKindClient, span.SpanKind())
attrs := span.Attributes()
assert.Contains(t, attrs, attribute.Int("http.status_code", cases.expectedStatusCode))
assert.Contains(t, attrs, attribute.Int("http.response.status_code", cases.expectedStatusCode))
assert.Contains(t, attrs, attribute.String("rpc.service", "DynamoDB"))
assert.Contains(t, attrs, attribute.String("aws.region", cases.expectedRegion))
assert.Contains(t, attrs, attribute.String("rpc.method", "GetItem"))
Expand Down Expand Up @@ -174,7 +174,7 @@ func TestDynamodbTagsCustomBuilder(t *testing.T) {
assert.Equal(t, "DynamoDB.GetItem", span.Name())
assert.Equal(t, trace.SpanKindClient, span.SpanKind())
attrs := span.Attributes()
assert.Contains(t, attrs, attribute.Int("http.status_code", cases.expectedStatusCode))
assert.Contains(t, attrs, attribute.Int("http.response.status_code", cases.expectedStatusCode))
assert.Contains(t, attrs, attribute.String("rpc.service", "DynamoDB"))
assert.Contains(t, attrs, attribute.String("aws.region", cases.expectedRegion))
assert.Contains(t, attrs, attribute.String("rpc.method", "GetItem"))
Expand Down
Loading