opentelemetry-java/sdk-extensions/aws
Felix Scheinost b5ef538e5e
Improve detection of resource attributes on ECS (#4574)
* Improve detection of resource attributes on ECS

This improves the detection of resource attributes on ECS by fetching ECS metadata from `ECS_CONTAINER_METADATA_URI` or `ECS_CONTAINER_METADATA_URI_V4`.

Previously only `CONTAINER_NAME` and `CONTAINER_ID` id were set.

Now we set:

- CONTAINER_ID
- CONTAINER_NAME
- AWS_ECS_CONTAINER_ARN
- CONTAINER_IMAGE_NAME
- CONTAINER_IMAGE_TAG
- aws.ecs.container.image.id
- AWS_LOG_GROUP_ARNS
- AWS_LOG_GROUP_NAMES
- AWS_LOG_STREAM_NAMES
- AWS_ECS_TASK_ARN
- AWS_ECS_TASK_FAMILY
- AWS_ECS_TASK_REVISION

Especially AWS_LOG_GROUP_ARNS is important so that connection of traces to logs works OOTB on X-Ray.

* Change „24“ to „26“ in fixtures for consistency

`CONTAINER_NAME` and `AWS_ECS_TASK_REVISION` should match

* Implement a few more attributes, fix ARNs

This commit adds implementations for the `aws.ecs.launchtype`
and `aws.logs.stream.arns` attributes, as well as fixing
the generation of log group ARNs.

* EcsResource: Record log group without trailing :*

Both with and without trailing `:*` are valid formats but there is a bug in the OpenTelementry collector which can’t handle the trailing `:*` (for now) (see https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/13702)

So remove addition of the trailing `:*` for now.

Co-authored-by: Michele Mancioppi <michelem@lumigo.io>
2022-09-08 10:20:58 -05:00
..
src Improve detection of resource attributes on ECS (#4574) 2022-09-08 10:20:58 -05:00
README.md Copy in spotless-conventions from instrumentation repo (#3554) 2021-08-27 08:28:31 -07:00
build.gradle.kts Enable loggers in all tests via slf4j. (#4126) 2022-02-02 14:43:25 +09:00

README.md

OpenTelemetry AWS Utils

Javadocs


Running micro-benchmarks

From the root of the repo run ./gradlew clean :opentelemetry-sdk-extension-aws:jmh to run all the benchmarks or run ./gradlew clean :opentelemetry-sdk-extension-aws:jmh -PjmhIncludeSingleClass=<ClassNameHere> to run a specific benchmark class.