Skip to content

Commit 77ce771

Browse files
yiyuan-hemxiamxia
andauthored
feat: update bedrock guardrail cfn primary id (#905)
### *Summary of Changes:* - Updating the CFN Primary Id for Guardrail to be the ARN. (Verified this in the AWS Cloudformation Console) ![Screenshot 2024-10-09 at 12 44 12 PM](https://github.com/user-attachments/assets/1a7437f1-4269-42f0-b4d9-db9f5f37b3a7) - Updated `BEDROCKAGENTOPERATION` enum. - Our Bedrock Agent Runtime should support both Agent Operation and KnowledgeBased Operation [like in Java SDK v1](https://github.com/mxiamxia/opentelemetry-java-instrumentation/blob/965f7878c79c2be5851f23cf272edd39585f42af/instrumentation/aws-sdk/aws-sdk-1.11/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v1_11/AwsSdkExperimentalAttributesExtractor.java#L133). Related changes in upstream package: mxiamxia/opentelemetry-java-instrumentation#13 ### *Testing Plan:* Set up sample apps and manually verified correct span attributes were generated via auto-instrumentation. `Java SDK v1` ![bedrock-guardrail-span-data-verification-v1](https://github.com/user-attachments/assets/70b2c126-cf73-4a70-b63f-e4cd78101604) `Java SDK v2` ![bedrock-guardrail-span-data-verification-v2](https://github.com/user-attachments/assets/d4857400-3f78-4e5d-aa1a-bb0d26b6213e) By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license. Co-authored-by: Min Xia <[email protected]>
1 parent e6d5f69 commit 77ce771

File tree

2 files changed

+5
-0
lines changed

2 files changed

+5
-0
lines changed

awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsAttributeKeys.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,4 +89,6 @@ private AwsAttributeKeys() {}
8989
AttributeKey.stringKey("aws.bedrock.data_source.id");
9090
static final AttributeKey<String> AWS_GUARDRAIL_ID =
9191
AttributeKey.stringKey("aws.bedrock.guardrail.id");
92+
static final AttributeKey<String> AWS_GUARDRAIL_ARN =
93+
AttributeKey.stringKey("aws.bedrock.guardrail.arn");
9294
}

awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsMetricAttributeGenerator.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
import static software.amazon.opentelemetry.javaagent.providers.AwsAttributeKeys.AWS_BUCKET_NAME;
4545
import static software.amazon.opentelemetry.javaagent.providers.AwsAttributeKeys.AWS_CLOUDFORMATION_PRIMARY_IDENTIFIER;
4646
import static software.amazon.opentelemetry.javaagent.providers.AwsAttributeKeys.AWS_DATA_SOURCE_ID;
47+
import static software.amazon.opentelemetry.javaagent.providers.AwsAttributeKeys.AWS_GUARDRAIL_ARN;
4748
import static software.amazon.opentelemetry.javaagent.providers.AwsAttributeKeys.AWS_GUARDRAIL_ID;
4849
import static software.amazon.opentelemetry.javaagent.providers.AwsAttributeKeys.AWS_KNOWLEDGE_BASE_ID;
4950
import static software.amazon.opentelemetry.javaagent.providers.AwsAttributeKeys.AWS_LAMBDA_NAME;
@@ -455,6 +456,8 @@ private static void setRemoteResourceTypeAndIdentifier(SpanData span, Attributes
455456
remoteResourceType = Optional.of(NORMALIZED_BEDROCK_SERVICE_NAME + "::Guardrail");
456457
remoteResourceIdentifier =
457458
Optional.ofNullable(escapeDelimiters(span.getAttributes().get(AWS_GUARDRAIL_ID)));
459+
cloudformationPrimaryIdentifier =
460+
Optional.ofNullable(escapeDelimiters(span.getAttributes().get(AWS_GUARDRAIL_ARN)));
458461
} else if (isKeyPresent(span, GEN_AI_REQUEST_MODEL)) {
459462
remoteResourceType = Optional.of(NORMALIZED_BEDROCK_SERVICE_NAME + "::Model");
460463
remoteResourceIdentifier =

0 commit comments

Comments
 (0)