From 864ede1d32eb1bab91b384b639d72e05964b7c6c Mon Sep 17 00:00:00 2001 From: Steve Liu Date: Wed, 26 Mar 2025 13:30:54 -0700 Subject: [PATCH 1/7] enable aws resource detector for non app signals environments --- ...sApplicationSignalsCustomizerProvider.java | 49 +++++++++++++------ 1 file changed, 33 insertions(+), 16 deletions(-) diff --git a/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsApplicationSignalsCustomizerProvider.java b/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsApplicationSignalsCustomizerProvider.java index a4f9d2cd5e..3e5c1dc1c5 100644 --- a/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsApplicationSignalsCustomizerProvider.java +++ b/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsApplicationSignalsCustomizerProvider.java @@ -194,12 +194,20 @@ private boolean isApplicationSignalsRuntimeEnabled(ConfigProperties configProps) } private Map customizeProperties(ConfigProperties configProps) { - if (isApplicationSignalsEnabled(configProps)) { - Map propsOverride = new HashMap<>(); - // Enable AWS Resource Providers - propsOverride.put(OTEL_RESOURCE_PROVIDERS_AWS_ENABLED, "true"); + boolean isLambdaEnvironment = isLambdaEnvironment(); + Map propsOverride = new HashMap<>(); + + // Enable AWS Resource Providers + propsOverride.put(OTEL_RESOURCE_PROVIDERS_AWS_ENABLED, "true"); + if (!isLambdaEnvironment) { + this.disableAwsResourceProvider( + propsOverride, + configProps, + List.of("io.opentelemetry.contrib.aws.resource.LambdaResourceProvider")); + } - if (!isLambdaEnvironment()) { + if (isApplicationSignalsEnabled(configProps)) { + if (!isLambdaEnvironment) { // Check if properties exist in `configProps`, and only set if missing if (configProps.getString(OTEL_METRICS_EXPORTER) == null) { propsOverride.put(OTEL_METRICS_EXPORTER, "none"); @@ -236,9 +244,9 @@ private Map customizeProperties(ConfigProperties configProps) { propsOverride.put(OTEL_JMX_TARGET_SYSTEM_CONFIG, String.join(",", jmxTargets)); } } - return propsOverride; } - return Collections.emptyMap(); + + return propsOverride; } private Map customizeLambdaEnvProperties(ConfigProperties configProperties) { @@ -246,15 +254,14 @@ private Map customizeLambdaEnvProperties(ConfigProperties config Map propsOverride = new HashMap<>(2); // Disable other AWS Resource Providers - List list = configProperties.getList(OTEL_DISABLED_RESOURCE_PROVIDERS_CONFIG); - List disabledResourceProviders = new ArrayList<>(list); - disabledResourceProviders.add( - "io.opentelemetry.contrib.aws.resource.BeanstalkResourceProvider"); - disabledResourceProviders.add("io.opentelemetry.contrib.aws.resource.Ec2ResourceProvider"); - disabledResourceProviders.add("io.opentelemetry.contrib.aws.resource.EcsResourceProvider"); - disabledResourceProviders.add("io.opentelemetry.contrib.aws.resource.EksResourceProvider"); - propsOverride.put( - OTEL_DISABLED_RESOURCE_PROVIDERS_CONFIG, String.join(",", disabledResourceProviders)); + List disabledResourceProviders = + List.of( + "io.opentelemetry.contrib.aws.resource.BeanstalkResourceProvider", + "io.opentelemetry.contrib.aws.resource.Ec2ResourceProvider", + "io.opentelemetry.contrib.aws.resource.EcsResourceProvider", + "io.opentelemetry.contrib.aws.resource.EksResourceProvider"); + + this.disableAwsResourceProvider(propsOverride, configProperties, disabledResourceProviders); // Set the max export batch size for BatchSpanProcessors propsOverride.put( @@ -265,6 +272,16 @@ private Map customizeLambdaEnvProperties(ConfigProperties config return Collections.emptyMap(); } + private void disableAwsResourceProvider( + Map newProps, ConfigProperties oldProps, List resourceProviders) { + + List list = oldProps.getList(OTEL_DISABLED_RESOURCE_PROVIDERS_CONFIG); + List disabledResourceProviders = new ArrayList<>(list); + disabledResourceProviders.addAll(resourceProviders); + newProps.put( + OTEL_DISABLED_RESOURCE_PROVIDERS_CONFIG, String.join(",", disabledResourceProviders)); + } + private Resource customizeResource(Resource resource, ConfigProperties configProps) { if (isApplicationSignalsEnabled(configProps)) { AttributesBuilder builder = Attributes.builder(); From 1239478d182eeacea946b854fbd02eb564480d34 Mon Sep 17 00:00:00 2001 From: Steve Liu Date: Wed, 26 Mar 2025 15:42:19 -0700 Subject: [PATCH 2/7] added README.md for SigV4 Exporter --- ...sApplicationSignalsCustomizerProvider.java | 27 ++++++++++--------- .../{ => exporter}/OtlpAwsSpanExporter.java | 2 +- .../OtlpAwsSpanExporterBuilder.java | 2 +- .../javaagent/providers/exporter/README.md | 26 ++++++++++++++++++ .../providers/OtlpAwsSpanExporterTest.java | 1 + 5 files changed, 44 insertions(+), 14 deletions(-) rename awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/{ => exporter}/OtlpAwsSpanExporter.java (99%) rename awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/{ => exporter}/OtlpAwsSpanExporterBuilder.java (95%) create mode 100644 awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/exporter/README.md diff --git a/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsApplicationSignalsCustomizerProvider.java b/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsApplicationSignalsCustomizerProvider.java index 3e5c1dc1c5..050fa985fc 100644 --- a/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsApplicationSignalsCustomizerProvider.java +++ b/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsApplicationSignalsCustomizerProvider.java @@ -52,6 +52,7 @@ import java.util.logging.Level; import java.util.logging.Logger; import java.util.regex.Pattern; +import software.amazon.opentelemetry.javaagent.providers.exporter.OtlpAwsSpanExporterBuilder; /** * This customizer performs the following customizations: @@ -194,16 +195,18 @@ private boolean isApplicationSignalsRuntimeEnabled(ConfigProperties configProps) } private Map customizeProperties(ConfigProperties configProps) { - boolean isLambdaEnvironment = isLambdaEnvironment(); Map propsOverride = new HashMap<>(); + boolean isLambdaEnvironment = isLambdaEnvironment(); // Enable AWS Resource Providers propsOverride.put(OTEL_RESOURCE_PROVIDERS_AWS_ENABLED, "true"); + if (!isLambdaEnvironment) { - this.disableAwsResourceProvider( - propsOverride, - configProps, - List.of("io.opentelemetry.contrib.aws.resource.LambdaResourceProvider")); + propsOverride.put( + OTEL_DISABLED_RESOURCE_PROVIDERS_CONFIG, + this.disableResourceProvider( + configProps, + List.of("io.opentelemetry.contrib.aws.resource.LambdaResourceProvider"))); } if (isApplicationSignalsEnabled(configProps)) { @@ -261,7 +264,9 @@ private Map customizeLambdaEnvProperties(ConfigProperties config "io.opentelemetry.contrib.aws.resource.EcsResourceProvider", "io.opentelemetry.contrib.aws.resource.EksResourceProvider"); - this.disableAwsResourceProvider(propsOverride, configProperties, disabledResourceProviders); + propsOverride.put( + OTEL_DISABLED_RESOURCE_PROVIDERS_CONFIG, + this.disableResourceProvider(configProperties, disabledResourceProviders)); // Set the max export batch size for BatchSpanProcessors propsOverride.put( @@ -272,14 +277,12 @@ private Map customizeLambdaEnvProperties(ConfigProperties config return Collections.emptyMap(); } - private void disableAwsResourceProvider( - Map newProps, ConfigProperties oldProps, List resourceProviders) { - + private String disableResourceProvider( + ConfigProperties oldProps, List resourceProviders) { List list = oldProps.getList(OTEL_DISABLED_RESOURCE_PROVIDERS_CONFIG); - List disabledResourceProviders = new ArrayList<>(list); + Set disabledResourceProviders = new HashSet<>(list); disabledResourceProviders.addAll(resourceProviders); - newProps.put( - OTEL_DISABLED_RESOURCE_PROVIDERS_CONFIG, String.join(",", disabledResourceProviders)); + return String.join(",", disabledResourceProviders); } private Resource customizeResource(Resource resource, ConfigProperties configProps) { diff --git a/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/OtlpAwsSpanExporter.java b/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/exporter/OtlpAwsSpanExporter.java similarity index 99% rename from awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/OtlpAwsSpanExporter.java rename to awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/exporter/OtlpAwsSpanExporter.java index 180bd89209..968748a9b0 100644 --- a/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/OtlpAwsSpanExporter.java +++ b/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/exporter/OtlpAwsSpanExporter.java @@ -13,7 +13,7 @@ * permissions and limitations under the License. */ -package software.amazon.opentelemetry.javaagent.providers; +package software.amazon.opentelemetry.javaagent.providers.exporter; import io.opentelemetry.exporter.internal.otlp.traces.TraceRequestMarshaler; import io.opentelemetry.exporter.otlp.http.trace.OtlpHttpSpanExporter; diff --git a/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/OtlpAwsSpanExporterBuilder.java b/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/exporter/OtlpAwsSpanExporterBuilder.java similarity index 95% rename from awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/OtlpAwsSpanExporterBuilder.java rename to awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/exporter/OtlpAwsSpanExporterBuilder.java index a92a6a8128..4ea7dea4e6 100644 --- a/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/OtlpAwsSpanExporterBuilder.java +++ b/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/exporter/OtlpAwsSpanExporterBuilder.java @@ -13,7 +13,7 @@ * permissions and limitations under the License. */ -package software.amazon.opentelemetry.javaagent.providers; +package software.amazon.opentelemetry.javaagent.providers.exporter; import io.opentelemetry.exporter.otlp.http.trace.OtlpHttpSpanExporter; diff --git a/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/exporter/README.md b/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/exporter/README.md new file mode 100644 index 0000000000..7a26a6a0f1 --- /dev/null +++ b/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/exporter/README.md @@ -0,0 +1,26 @@ +# ADOT X-Ray OTLP Trace Export Configuration + +This guide explains how to automatically configure ADOT environment variables for exporting traces to [AWS X-Ray OTLP endpoint](https://docs.aws.amazon.com/xray/latest/devguide/xray-opentelemetry.html) + +## Pre-requisites: +1. Transaction Search must be enabled in order to send spans to the Xray OTLP endpoint. See [this doc](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Transaction-Search-getting-started.html) on how to enable Transaction Search. + +2. Ensure the AWS IAM role used for credentials in your application environment has [AWSXRayWriteOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSXrayWriteOnlyAccess.html) managed policy attached to it. + +## Environment Variables + +Set the following environment variables to **PROPERLY** configure trace export with SigV4 authentication: + +```shell +# Set X-Ray endpoint (replace AWS_REGION with your region) +OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://xray..amazonaws.com/v1/traces + +# Configure OTLP export protocol +OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf + +OTEL_METRICS_EXPORTER=none +OTEL_LOGS_EXPORTER=none +OTEL_RESOURCE_ATTRIBUTES="service.name=" + +# Disable application signals (they will be generated in CloudWatch backend) +OTEL_AWS_APPLICATION_SIGNALS_ENABLED=false diff --git a/awsagentprovider/src/test/java/software/amazon/opentelemetry/javaagent/providers/OtlpAwsSpanExporterTest.java b/awsagentprovider/src/test/java/software/amazon/opentelemetry/javaagent/providers/OtlpAwsSpanExporterTest.java index 9ef5f9786d..ae77d6fdc3 100644 --- a/awsagentprovider/src/test/java/software/amazon/opentelemetry/javaagent/providers/OtlpAwsSpanExporterTest.java +++ b/awsagentprovider/src/test/java/software/amazon/opentelemetry/javaagent/providers/OtlpAwsSpanExporterTest.java @@ -46,6 +46,7 @@ import software.amazon.awssdk.http.auth.spi.signer.SignRequest.Builder; import software.amazon.awssdk.http.auth.spi.signer.SignedRequest; import software.amazon.awssdk.identity.spi.AwsCredentialsIdentity; +import software.amazon.opentelemetry.javaagent.providers.exporter.OtlpAwsSpanExporterBuilder; @ExtendWith(MockitoExtension.class) public class OtlpAwsSpanExporterTest { From 917ac597dfaa0a7a6a031b38ca44fae7eeab4267 Mon Sep 17 00:00:00 2001 From: Steve Liu Date: Mon, 31 Mar 2025 17:44:30 -0700 Subject: [PATCH 3/7] renamed sigv4 exporter directory --- .../{exporter => AwsSpanExporter}/OtlpAwsSpanExporter.java | 0 .../{exporter => AwsSpanExporter}/OtlpAwsSpanExporterBuilder.java | 0 .../javaagent/providers/{exporter => AwsSpanExporter}/README.md | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/{exporter => AwsSpanExporter}/OtlpAwsSpanExporter.java (100%) rename awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/{exporter => AwsSpanExporter}/OtlpAwsSpanExporterBuilder.java (100%) rename awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/{exporter => AwsSpanExporter}/README.md (100%) diff --git a/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/exporter/OtlpAwsSpanExporter.java b/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsSpanExporter/OtlpAwsSpanExporter.java similarity index 100% rename from awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/exporter/OtlpAwsSpanExporter.java rename to awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsSpanExporter/OtlpAwsSpanExporter.java diff --git a/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/exporter/OtlpAwsSpanExporterBuilder.java b/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsSpanExporter/OtlpAwsSpanExporterBuilder.java similarity index 100% rename from awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/exporter/OtlpAwsSpanExporterBuilder.java rename to awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsSpanExporter/OtlpAwsSpanExporterBuilder.java diff --git a/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/exporter/README.md b/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsSpanExporter/README.md similarity index 100% rename from awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/exporter/README.md rename to awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsSpanExporter/README.md From 75f96e76aacd050164064156ca30e0456f2aacad Mon Sep 17 00:00:00 2001 From: Steve Liu Date: Mon, 31 Mar 2025 17:45:14 -0700 Subject: [PATCH 4/7] renamed sigv4 exporter directory --- .../providers/AwsApplicationSignalsCustomizerProvider.java | 2 +- .../providers/AwsSpanExporter/OtlpAwsSpanExporter.java | 2 +- .../providers/AwsSpanExporter/OtlpAwsSpanExporterBuilder.java | 2 +- .../javaagent/providers/OtlpAwsSpanExporterTest.java | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsApplicationSignalsCustomizerProvider.java b/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsApplicationSignalsCustomizerProvider.java index 050fa985fc..96eb736713 100644 --- a/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsApplicationSignalsCustomizerProvider.java +++ b/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsApplicationSignalsCustomizerProvider.java @@ -52,7 +52,7 @@ import java.util.logging.Level; import java.util.logging.Logger; import java.util.regex.Pattern; -import software.amazon.opentelemetry.javaagent.providers.exporter.OtlpAwsSpanExporterBuilder; +import software.amazon.opentelemetry.javaagent.providers.AwsSpanExporter.OtlpAwsSpanExporterBuilder; /** * This customizer performs the following customizations: diff --git a/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsSpanExporter/OtlpAwsSpanExporter.java b/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsSpanExporter/OtlpAwsSpanExporter.java index 968748a9b0..6b0ecf17e2 100644 --- a/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsSpanExporter/OtlpAwsSpanExporter.java +++ b/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsSpanExporter/OtlpAwsSpanExporter.java @@ -13,7 +13,7 @@ * permissions and limitations under the License. */ -package software.amazon.opentelemetry.javaagent.providers.exporter; +package software.amazon.opentelemetry.javaagent.providers.AwsSpanExporter; import io.opentelemetry.exporter.internal.otlp.traces.TraceRequestMarshaler; import io.opentelemetry.exporter.otlp.http.trace.OtlpHttpSpanExporter; diff --git a/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsSpanExporter/OtlpAwsSpanExporterBuilder.java b/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsSpanExporter/OtlpAwsSpanExporterBuilder.java index 4ea7dea4e6..45f0b7d66d 100644 --- a/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsSpanExporter/OtlpAwsSpanExporterBuilder.java +++ b/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsSpanExporter/OtlpAwsSpanExporterBuilder.java @@ -13,7 +13,7 @@ * permissions and limitations under the License. */ -package software.amazon.opentelemetry.javaagent.providers.exporter; +package software.amazon.opentelemetry.javaagent.providers.AwsSpanExporter; import io.opentelemetry.exporter.otlp.http.trace.OtlpHttpSpanExporter; diff --git a/awsagentprovider/src/test/java/software/amazon/opentelemetry/javaagent/providers/OtlpAwsSpanExporterTest.java b/awsagentprovider/src/test/java/software/amazon/opentelemetry/javaagent/providers/OtlpAwsSpanExporterTest.java index ae77d6fdc3..34af1512d4 100644 --- a/awsagentprovider/src/test/java/software/amazon/opentelemetry/javaagent/providers/OtlpAwsSpanExporterTest.java +++ b/awsagentprovider/src/test/java/software/amazon/opentelemetry/javaagent/providers/OtlpAwsSpanExporterTest.java @@ -46,7 +46,7 @@ import software.amazon.awssdk.http.auth.spi.signer.SignRequest.Builder; import software.amazon.awssdk.http.auth.spi.signer.SignedRequest; import software.amazon.awssdk.identity.spi.AwsCredentialsIdentity; -import software.amazon.opentelemetry.javaagent.providers.exporter.OtlpAwsSpanExporterBuilder; +import software.amazon.opentelemetry.javaagent.providers.AwsSpanExporter.OtlpAwsSpanExporterBuilder; @ExtendWith(MockitoExtension.class) public class OtlpAwsSpanExporterTest { From 6214e7859fb83847d35482a0510e63d3f2453b1d Mon Sep 17 00:00:00 2001 From: Steve Liu Date: Mon, 31 Mar 2025 17:48:06 -0700 Subject: [PATCH 5/7] linting fix --- .../AwsApplicationSignalsCustomizerProvider.java | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsApplicationSignalsCustomizerProvider.java b/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsApplicationSignalsCustomizerProvider.java index 96eb736713..6a99ff6edb 100644 --- a/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsApplicationSignalsCustomizerProvider.java +++ b/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsApplicationSignalsCustomizerProvider.java @@ -41,14 +41,7 @@ import io.opentelemetry.sdk.trace.export.SpanExporter; import io.opentelemetry.sdk.trace.samplers.Sampler; import java.time.Duration; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.Set; +import java.util.*; import java.util.logging.Level; import java.util.logging.Logger; import java.util.regex.Pattern; @@ -206,7 +199,8 @@ private Map customizeProperties(ConfigProperties configProps) { OTEL_DISABLED_RESOURCE_PROVIDERS_CONFIG, this.disableResourceProvider( configProps, - List.of("io.opentelemetry.contrib.aws.resource.LambdaResourceProvider"))); + Collections.singletonList( + "io.opentelemetry.contrib.aws.resource.LambdaResourceProvider"))); } if (isApplicationSignalsEnabled(configProps)) { @@ -258,7 +252,7 @@ private Map customizeLambdaEnvProperties(ConfigProperties config // Disable other AWS Resource Providers List disabledResourceProviders = - List.of( + Arrays.asList( "io.opentelemetry.contrib.aws.resource.BeanstalkResourceProvider", "io.opentelemetry.contrib.aws.resource.Ec2ResourceProvider", "io.opentelemetry.contrib.aws.resource.EcsResourceProvider", From e7acde059c6e83adfaf9c0b69d7f3d0034e949dd Mon Sep 17 00:00:00 2001 From: Steve Liu Date: Mon, 31 Mar 2025 17:48:58 -0700 Subject: [PATCH 6/7] merge conflict fix --- .../AwsApplicationSignalsCustomizerProvider.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsApplicationSignalsCustomizerProvider.java b/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsApplicationSignalsCustomizerProvider.java index 6a99ff6edb..60f0b7cd7f 100644 --- a/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsApplicationSignalsCustomizerProvider.java +++ b/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsApplicationSignalsCustomizerProvider.java @@ -41,7 +41,15 @@ import io.opentelemetry.sdk.trace.export.SpanExporter; import io.opentelemetry.sdk.trace.samplers.Sampler; import java.time.Duration; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.Set; import java.util.logging.Level; import java.util.logging.Logger; import java.util.regex.Pattern; From cb1fc9fa95eaefebf8518693a3fecb5dcb501559 Mon Sep 17 00:00:00 2001 From: Steve Liu Date: Tue, 1 Apr 2025 16:58:09 -0700 Subject: [PATCH 7/7] README formatting fix --- .../javaagent/providers/AwsSpanExporter/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsSpanExporter/README.md b/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsSpanExporter/README.md index 7a26a6a0f1..88faf4ccfa 100644 --- a/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsSpanExporter/README.md +++ b/awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsSpanExporter/README.md @@ -2,7 +2,8 @@ This guide explains how to automatically configure ADOT environment variables for exporting traces to [AWS X-Ray OTLP endpoint](https://docs.aws.amazon.com/xray/latest/devguide/xray-opentelemetry.html) -## Pre-requisites: +## Prerequisites + 1. Transaction Search must be enabled in order to send spans to the Xray OTLP endpoint. See [this doc](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Transaction-Search-getting-started.html) on how to enable Transaction Search. 2. Ensure the AWS IAM role used for credentials in your application environment has [AWSXRayWriteOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSXrayWriteOnlyAccess.html) managed policy attached to it.