Skip to content

Commit 351bd63

Browse files
committed
Revert "Revert "added README.md for SigV4 Exporter""
This reverts commit d5f8ede.
1 parent d5f8ede commit 351bd63

File tree

5 files changed

+44
-14
lines changed

5 files changed

+44
-14
lines changed

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

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
import java.util.logging.Level;
5353
import java.util.logging.Logger;
5454
import java.util.regex.Pattern;
55+
import software.amazon.opentelemetry.javaagent.providers.exporter.OtlpAwsSpanExporterBuilder;
5556

5657
/**
5758
* This customizer performs the following customizations:
@@ -194,16 +195,18 @@ private boolean isApplicationSignalsRuntimeEnabled(ConfigProperties configProps)
194195
}
195196

196197
private Map<String, String> customizeProperties(ConfigProperties configProps) {
197-
boolean isLambdaEnvironment = isLambdaEnvironment();
198198
Map<String, String> propsOverride = new HashMap<>();
199+
boolean isLambdaEnvironment = isLambdaEnvironment();
199200

200201
// Enable AWS Resource Providers
201202
propsOverride.put(OTEL_RESOURCE_PROVIDERS_AWS_ENABLED, "true");
203+
202204
if (!isLambdaEnvironment) {
203-
this.disableAwsResourceProvider(
204-
propsOverride,
205-
configProps,
206-
List.of("io.opentelemetry.contrib.aws.resource.LambdaResourceProvider"));
205+
propsOverride.put(
206+
OTEL_DISABLED_RESOURCE_PROVIDERS_CONFIG,
207+
this.disableResourceProvider(
208+
configProps,
209+
List.of("io.opentelemetry.contrib.aws.resource.LambdaResourceProvider")));
207210
}
208211

209212
if (isApplicationSignalsEnabled(configProps)) {
@@ -261,7 +264,9 @@ private Map<String, String> customizeLambdaEnvProperties(ConfigProperties config
261264
"io.opentelemetry.contrib.aws.resource.EcsResourceProvider",
262265
"io.opentelemetry.contrib.aws.resource.EksResourceProvider");
263266

264-
this.disableAwsResourceProvider(propsOverride, configProperties, disabledResourceProviders);
267+
propsOverride.put(
268+
OTEL_DISABLED_RESOURCE_PROVIDERS_CONFIG,
269+
this.disableResourceProvider(configProperties, disabledResourceProviders));
265270

266271
// Set the max export batch size for BatchSpanProcessors
267272
propsOverride.put(
@@ -272,14 +277,12 @@ private Map<String, String> customizeLambdaEnvProperties(ConfigProperties config
272277
return Collections.emptyMap();
273278
}
274279

275-
private void disableAwsResourceProvider(
276-
Map<String, String> newProps, ConfigProperties oldProps, List<String> resourceProviders) {
277-
280+
private String disableResourceProvider(
281+
ConfigProperties oldProps, List<String> resourceProviders) {
278282
List<String> list = oldProps.getList(OTEL_DISABLED_RESOURCE_PROVIDERS_CONFIG);
279-
List<String> disabledResourceProviders = new ArrayList<>(list);
283+
Set<String> disabledResourceProviders = new HashSet<>(list);
280284
disabledResourceProviders.addAll(resourceProviders);
281-
newProps.put(
282-
OTEL_DISABLED_RESOURCE_PROVIDERS_CONFIG, String.join(",", disabledResourceProviders));
285+
return String.join(",", disabledResourceProviders);
283286
}
284287

285288
private Resource customizeResource(Resource resource, ConfigProperties configProps) {

awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/OtlpAwsSpanExporter.java renamed to awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/exporter/OtlpAwsSpanExporter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
* permissions and limitations under the License.
1414
*/
1515

16-
package software.amazon.opentelemetry.javaagent.providers;
16+
package software.amazon.opentelemetry.javaagent.providers.exporter;
1717

1818
import io.opentelemetry.exporter.internal.otlp.traces.TraceRequestMarshaler;
1919
import io.opentelemetry.exporter.otlp.http.trace.OtlpHttpSpanExporter;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
* permissions and limitations under the License.
1414
*/
1515

16-
package software.amazon.opentelemetry.javaagent.providers;
16+
package software.amazon.opentelemetry.javaagent.providers.exporter;
1717

1818
import io.opentelemetry.exporter.otlp.http.trace.OtlpHttpSpanExporter;
1919

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# ADOT X-Ray OTLP Trace Export Configuration
2+
3+
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)
4+
5+
## Pre-requisites:
6+
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.
7+
8+
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.
9+
10+
## Environment Variables
11+
12+
Set the following environment variables to **PROPERLY** configure trace export with SigV4 authentication:
13+
14+
```shell
15+
# Set X-Ray endpoint (replace AWS_REGION with your region)
16+
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://xray.<AWS_REGION>.amazonaws.com/v1/traces
17+
18+
# Configure OTLP export protocol
19+
OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
20+
21+
OTEL_METRICS_EXPORTER=none
22+
OTEL_LOGS_EXPORTER=none
23+
OTEL_RESOURCE_ATTRIBUTES="service.name=<YOUR_SERVICE_NAME>"
24+
25+
# Disable application signals (they will be generated in CloudWatch backend)
26+
OTEL_AWS_APPLICATION_SIGNALS_ENABLED=false

awsagentprovider/src/test/java/software/amazon/opentelemetry/javaagent/providers/OtlpAwsSpanExporterTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
import software.amazon.awssdk.http.auth.spi.signer.SignRequest.Builder;
4747
import software.amazon.awssdk.http.auth.spi.signer.SignedRequest;
4848
import software.amazon.awssdk.identity.spi.AwsCredentialsIdentity;
49+
import software.amazon.opentelemetry.javaagent.providers.exporter.OtlpAwsSpanExporterBuilder;
4950

5051
@ExtendWith(MockitoExtension.class)
5152
public class OtlpAwsSpanExporterTest {

0 commit comments

Comments
 (0)