opentelemetry-java-instrume.../instrumentation/aws-sdk/aws-sdk-2.2/library
jason plumb c5c0a2bcdf
NetClientAttributesAdapter - favor composition over inheritance (#5030)
* first pass at separating NetAttributesAdapter interface and make NetClientAttributesExtractor concrete

* rename the implementations extractor -> adapter

* hide constructor and make factory method

* rename to client and add javadoc

* spotless

* finish javadoc thought

* rebase

* renamed NetClientAttributesAdapter to NetClientAttributesGetter

* fix lettuce

* code review comments

* code review comments -- renaming for consistency

* adapter -> getter

* fix ratpack

* adapter -> getter
2022-01-20 10:51:13 -08:00
..
src NetClientAttributesAdapter - favor composition over inheritance (#5030) 2022-01-20 10:51:13 -08:00
README.md Automatic AWS library instrumentor (#4607) 2021-11-22 11:15:44 -08:00
build.gradle.kts Simplify gradle files (#4292) 2021-10-04 21:53:35 -07:00

README.md

AWS Java SDK v2 Instrumentation

Instrumentation for AWS Java SDK v2.

Usage

To instrument all AWS SDK clients include the opentelemetry-aws-sdk-2.2-autoconfigure submodule in your classpath.

To register instrumentation only on a specific SDK client, register the interceptor when creating it.

DynamoDbClient client = DynamoDbClient.builder()
  .overrideConfiguration(ClientOverrideConfiguration.builder()
    .addExecutionInterceptor(AwsSdk.newInterceptor()))
    .build())
  .build();

Trace propagation

The AWS SDK instrumentation currently only supports injecting the trace header into the request using the AWS Trace Header format. This format is the only format recognized by AWS managed services, and populating will allow propagating the trace through them. If this does not fulfill your use case, perhaps because you are using the same SDK with a different non-AWS managed service, let us know so we can provide configuration for this behavior.