Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added new AWS Attributes for various services #1794

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

AsakerMohd
Copy link

@AsakerMohd AsakerMohd commented Jan 23, 2025

Changes

Added new AWS Attributes for various services including SQS, SNS, Step Functions, Bedrock as well as a new attribute for Lambda.

Note: if the PR is touching an area that is not listed in the existing areas, or the area does not have sufficient domain experts coverage, the PR might be tagged as experts needed and move slowly until experts are identified.

Merge requirement checklist

@AsakerMohd AsakerMohd requested review from a team as code owners January 23, 2025 06:26
@github-actions github-actions bot added the enhancement New feature or request label Jan 23, 2025
type: string
stability: experimental
brief: >
The UUID of the [AWS Lambda EvenSource Mapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo - should be Lambda EventSource Mapping

Copy link
Contributor

@lmolkova lmolkova left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please review existing semantic conventions:

  • there are several existing attributes that should be used instead of AAWS-specific ones
  • some attributes should be defined as generic ones

We avoid defining attributes alone without also defining spans, metrics, events, or resources that reference them, so please add corresponding signal definitions

The URL of the AWS SQS Queue. It's a unique identifier for a queue in Amazon Simple Queue Service (SQS)
and is used to access the queue and perform actions on it.
examples: ["https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue"]
- id: aws.sqs.queue.name
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we have generic messaging.destination.name attribute that records queue name for arbitrary messaging system.

We should not define aws-specific name

brief: >
This document defines attributes for AWS SNS.
attributes:
- id: aws.sns.topic.arn
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please consider using messaging.destination.name here too

brief: >
This document defines attributes for AWS Bedrock.
attributes:
- id: aws.bedrock.agent.id
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we're defining generic gen_ai.agent.id in #1739 which will be used for other agents, let's not add AWS-specific one

brief: >
The unique identifier of the AWS Bedrock Guardrail. A [guardrail](https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails.html) helps safeguard and prevent unwanted behavior from model responses or user messages.
examples: ["sgi5gkybzqak"]
- id: aws.bedrock.knowledge_base.id
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we'd need a generic attribute for this one, but it's not defined yet. I'd be fine with adding one, but it's likely to be deprecated in the future.

The name of the AWS Kinesis [stream](https://docs.aws.amazon.com/streams/latest/dev/introduction.html) the request refers to. Corresponds to the `--stream-name` parameter of the
Kinesis [describe-stream](https://docs.aws.amazon.com/cli/latest/reference/kinesis/describe-stream.html) operation.
examples: ["some-stream-name"]
- id: registry.aws.stepfunctions
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cc @open-telemetry/lambda-extension-approvers

brief: >
This document defines attributes for AWS SQS.
attributes:
- id: aws.sqs.queue.url
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we record server.address (host), server.port (port) and messaging.destination.name (queue name) in generic messaging semantic conventions, would url be still useful in this case?

@@ -481,3 +488,96 @@ groups:
and [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html) operations.
The `part_number` attribute corresponds to the `--part-number` parameter of the
[upload-part operation within the S3 API](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html).
- id: registry.aws.sqs
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if we need any aws.sqs attributes on top of generic messaging, please add a span definition for it and reference all applicable attributes, see kafka yaml and md conventions as an example.

examples: ["arn:aws:states:us-east-1:123456789012:stateMachine:myStateMachine:1"]
- id: registry.aws.bedrock
type: attribute_group
display_name: Amazon Bedrock Attributes
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please add a bedrock-specific section into gen_ai conventions. See openai as an example

brief: >
The unique identifier of the AWS Bedrock Agent. [Agents](https://docs.aws.amazon.com/bedrock/latest/userguide/agents.html) assist users in accomplishing complex tasks and are capable of interacting with various knowledge bases, data sources, and APIs.
examples: ["WM5GWNK1AI"]
- id: aws.bedrock.data_source.id
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

let's define a generic attribute for it, this is a shared concept across all genai systems

brief: >
The ARN of the AWS Step Functions State Machine.
examples: ["arn:aws:states:us-east-1:123456789012:stateMachine:myStateMachine:1"]
- id: registry.aws.bedrock
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cc @open-telemetry/semconv-genai-approvers and specifically @xrmx who's adding bedrock instrumentation in python

https://github.com/search?q=repo%3Aopen-telemetry%2Fopentelemetry-python-contrib+bedrock&type=pullrequests

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for pinging me, I think I won't need any of the proposed attributes in my work atm (and so have not much clue about them) but I'll keep an eye on this PR.

@@ -481,3 +488,96 @@ groups:
and [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html) operations.
The `part_number` attribute corresponds to the `--part-number` parameter of the
[upload-part operation within the S3 API](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html).
- id: registry.aws.sqs
type: attribute_group
display_name: Amazon SQS Attributes
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/cc @open-telemetry/semconv-messaging-approvers

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Development

Successfully merging this pull request may close these issues.

4 participants