|
21 | 21 | import static org.assertj.core.api.Assertions.assertThat;
|
22 | 22 | import static org.mockito.Mockito.mock;
|
23 | 23 | import static org.mockito.Mockito.when;
|
| 24 | +import static software.amazon.opentelemetry.javaagent.providers.AwsAttributeKeys.AWS_AGENT_ID; |
24 | 25 | import static software.amazon.opentelemetry.javaagent.providers.AwsAttributeKeys.AWS_BUCKET_NAME;
|
| 26 | +import static software.amazon.opentelemetry.javaagent.providers.AwsAttributeKeys.AWS_DATA_SOURCE_ID; |
| 27 | +import static software.amazon.opentelemetry.javaagent.providers.AwsAttributeKeys.AWS_GUARDRAIL_ID; |
| 28 | +import static software.amazon.opentelemetry.javaagent.providers.AwsAttributeKeys.AWS_KNOWLEDGE_BASE_ID; |
25 | 29 | import static software.amazon.opentelemetry.javaagent.providers.AwsAttributeKeys.AWS_LOCAL_OPERATION;
|
26 | 30 | import static software.amazon.opentelemetry.javaagent.providers.AwsAttributeKeys.AWS_LOCAL_SERVICE;
|
27 | 31 | import static software.amazon.opentelemetry.javaagent.providers.AwsAttributeKeys.AWS_QUEUE_NAME;
|
|
34 | 38 | import static software.amazon.opentelemetry.javaagent.providers.AwsAttributeKeys.AWS_SPAN_KIND;
|
35 | 39 | import static software.amazon.opentelemetry.javaagent.providers.AwsAttributeKeys.AWS_STREAM_NAME;
|
36 | 40 | import static software.amazon.opentelemetry.javaagent.providers.AwsAttributeKeys.AWS_TABLE_NAME;
|
| 41 | +import static software.amazon.opentelemetry.javaagent.providers.AwsSpanProcessingUtil.GEN_AI_REQUEST_MODEL; |
37 | 42 | import static software.amazon.opentelemetry.javaagent.providers.MetricAttributeGenerator.DEPENDENCY_METRIC;
|
38 | 43 | import static software.amazon.opentelemetry.javaagent.providers.MetricAttributeGenerator.SERVICE_METRIC;
|
39 | 44 |
|
@@ -701,6 +706,57 @@ public void testSdkClientSpanWithRemoteResourceAttributes() {
|
701 | 706 | validateRemoteResourceAttributes("AWS::DynamoDB::Table", "aws_table^^name");
|
702 | 707 | mockAttribute(AWS_TABLE_NAME, null);
|
703 | 708 |
|
| 709 | + // Validate behaviour of AWS_BEDROCK_AGENT_ID attribute, then remove it. |
| 710 | + mockAttribute(AWS_AGENT_ID, "test_agent_id"); |
| 711 | + validateRemoteResourceAttributes("AWS::Bedrock::Agent", "test_agent_id"); |
| 712 | + mockAttribute(AWS_AGENT_ID, null); |
| 713 | + |
| 714 | + // Validate behaviour of AWS_BEDROCK_AGENT_ID attribute with special chars(^), then remove it. |
| 715 | + mockAttribute(AWS_AGENT_ID, "test_agent_^id"); |
| 716 | + validateRemoteResourceAttributes("AWS::Bedrock::Agent", "test_agent_^^id"); |
| 717 | + mockAttribute(AWS_AGENT_ID, null); |
| 718 | + |
| 719 | + // Validate behaviour of AWS_KNOWLEDGE_BASE_ID attribute, then remove it. |
| 720 | + mockAttribute(AWS_KNOWLEDGE_BASE_ID, "test_knowledgeBase_id"); |
| 721 | + validateRemoteResourceAttributes("AWS::Bedrock::KnowledgeBase", "test_knowledgeBase_id"); |
| 722 | + mockAttribute(AWS_KNOWLEDGE_BASE_ID, null); |
| 723 | + |
| 724 | + // Validate behaviour of AWS_KNOWLEDGE_BASE_ID attribute with special chars(^), then remove it. |
| 725 | + mockAttribute(AWS_KNOWLEDGE_BASE_ID, "test_knowledgeBase_^id"); |
| 726 | + validateRemoteResourceAttributes("AWS::Bedrock::KnowledgeBase", "test_knowledgeBase_^^id"); |
| 727 | + mockAttribute(AWS_KNOWLEDGE_BASE_ID, null); |
| 728 | + |
| 729 | + // Validate behaviour of AWS_DATA_SOURCE_ID attribute, then remove it. |
| 730 | + mockAttribute(AWS_DATA_SOURCE_ID, "test_datasource_id"); |
| 731 | + validateRemoteResourceAttributes("AWS::Bedrock::DataSource", "test_datasource_id"); |
| 732 | + mockAttribute(AWS_DATA_SOURCE_ID, null); |
| 733 | + |
| 734 | + // Validate behaviour of AWS_DATA_SOURCE_ID attribute with special chars(^), then remove |
| 735 | + // it. |
| 736 | + mockAttribute(AWS_DATA_SOURCE_ID, "test_datasource_^id"); |
| 737 | + validateRemoteResourceAttributes("AWS::Bedrock::DataSource", "test_datasource_^^id"); |
| 738 | + mockAttribute(AWS_DATA_SOURCE_ID, null); |
| 739 | + |
| 740 | + // Validate behaviour of AWS_GUARDRAIL_ID attribute, then remove it. |
| 741 | + mockAttribute(AWS_GUARDRAIL_ID, "test_guardrail_id"); |
| 742 | + validateRemoteResourceAttributes("AWS::Bedrock::Guardrail", "test_guardrail_id"); |
| 743 | + mockAttribute(AWS_GUARDRAIL_ID, null); |
| 744 | + |
| 745 | + // Validate behaviour of AWS_GUARDRAIL_ID attribute with special chars(^), then remove it. |
| 746 | + mockAttribute(AWS_GUARDRAIL_ID, "test_guardrail_^id"); |
| 747 | + validateRemoteResourceAttributes("AWS::Bedrock::Guardrail", "test_guardrail_^^id"); |
| 748 | + mockAttribute(AWS_GUARDRAIL_ID, null); |
| 749 | + |
| 750 | + // Validate behaviour of AWS_BEDROCK_RUNTIME_MODEL_ID attribute, then remove it. |
| 751 | + mockAttribute(GEN_AI_REQUEST_MODEL, "test.service_id"); |
| 752 | + validateRemoteResourceAttributes("AWS::Bedrock::Model", "test.service_id"); |
| 753 | + mockAttribute(GEN_AI_REQUEST_MODEL, null); |
| 754 | + |
| 755 | + // Validate behaviour of AWS_BEDROCK_RUNTIME_MODEL_ID attribute with special chars(^), then |
| 756 | + // remove it. |
| 757 | + mockAttribute(GEN_AI_REQUEST_MODEL, "test.service_^id"); |
| 758 | + validateRemoteResourceAttributes("AWS::Bedrock::Model", "test.service_^^id"); |
| 759 | + mockAttribute(GEN_AI_REQUEST_MODEL, null); |
704 | 760 | mockAttribute(RPC_SYSTEM, "null");
|
705 | 761 | }
|
706 | 762 |
|
@@ -1102,12 +1158,20 @@ public void testNormalizeRemoteServiceName_AwsSdk() {
|
1102 | 1158 | testAwsSdkServiceNormalization("AmazonKinesis", "AWS::Kinesis");
|
1103 | 1159 | testAwsSdkServiceNormalization("Amazon S3", "AWS::S3");
|
1104 | 1160 | testAwsSdkServiceNormalization("AmazonSQS", "AWS::SQS");
|
| 1161 | + testAwsSdkServiceNormalization("Bedrock", "AWS::Bedrock"); |
| 1162 | + testAwsSdkServiceNormalization("AWSBedrockAgentRuntime", "AWS::Bedrock"); |
| 1163 | + testAwsSdkServiceNormalization("AWSBedrockAgent", "AWS::Bedrock"); |
| 1164 | + testAwsSdkServiceNormalization("AmazonBedrockRuntime", "AWS::BedrockRuntime"); |
1105 | 1165 |
|
1106 | 1166 | // AWS SDK V2
|
1107 | 1167 | testAwsSdkServiceNormalization("DynamoDb", "AWS::DynamoDB");
|
1108 | 1168 | testAwsSdkServiceNormalization("Kinesis", "AWS::Kinesis");
|
1109 | 1169 | testAwsSdkServiceNormalization("S3", "AWS::S3");
|
1110 | 1170 | testAwsSdkServiceNormalization("Sqs", "AWS::SQS");
|
| 1171 | + testAwsSdkServiceNormalization("Bedrock", "AWS::Bedrock"); |
| 1172 | + testAwsSdkServiceNormalization("BedrockAgentRuntime", "AWS::Bedrock"); |
| 1173 | + testAwsSdkServiceNormalization("BedrockAgent", "AWS::Bedrock"); |
| 1174 | + testAwsSdkServiceNormalization("BedrockRuntime", "AWS::BedrockRuntime"); |
1111 | 1175 | }
|
1112 | 1176 |
|
1113 | 1177 | private void testAwsSdkServiceNormalization(String serviceName, String expectedRemoteService) {
|
|
0 commit comments