Overview
AWS Distro for OpenTelemetry Collector (ADOT Collector) is an AWS supported version of the upstream OpenTelemetry Collector and is distributed by Amazon. It supports the selected components from the OpenTelemetry community. It is fully compatible with AWS computing platforms including EC2, ECS, and EKS. It enables users to send telemetry data to AWS CloudWatch Metrics, Traces, and Logs backends as well as the other supported backends.
See the AWS Distro for OpenTelemetry documentation for more information.
Getting Help
Use the community resources below for getting help with the ADOT Collector.
- Use GitHub issues to report bugs and request features.
- Join our GitHub Community for AWS Distro for OpenTelemetry to ask your questions, file issues, or request enhancements.
- Open a support ticket with AWS Support.
- If you think you may have found a bug, open a bug report.
- For contributing guidelines, refer to CONTRIBUTING.md.
ADOT Collector Built-in Components
This table represents the supported components of the ADOT Collector. The highlighted components below are developed by AWS in-house. The rest of the components in the table are the essential default components that the ADOT Collector will support.
Receiver | Processor | Exporter | Extensions |
---|---|---|---|
prometheusreceiver | attributesprocessor | awsxrayexporter |
healthcheckextension |
otlpreceiver | resourceprocessor | awsemfexporter |
pprofextension |
awsecscontainermetricsreceiver |
batchprocessor | awsprometheusremotewriteexporter |
zpagesextension |
awsxrayreceiver |
memorylimiterprocessor | loggingexporter | ecsobserver |
statsdreceiver |
probabilisticsamplerprocessor | otlpexporter | awsproxy |
zipkinreceiver | metricstransformprocessor | fileexporter | ballastextention |
jaegerreceiver | spanprocessor | otlphttpexporter | |
awscontainerinsightreceiver |
filterprocessor | prometheusexporter | |
resourcedetectionprocessor | datadogexporter | ||
metricsgenerationprocessor |
dynatraceexporter | ||
cumulativetodeltaprocessor | sapmexporter | ||
deltatorateprocessor | signalfxexporter | ||
logzioexporter |
ADOT Collector AWS Components
- OpenTelemetry Collector
- Trace X-Ray Exporter
- Metrics EMF Exporter
- ECS Container Metrics Receiver
- StatsD Receiver
- ECS Observer Extension
Getting Started
Prerequisites
To build the ADOT Collector locally, you will need to have Golang installed. You can download and install Golang here.
ADOT Collector Configuration
We built in a default configuration to our docker image and other format of release.
So, you can run the ADOT Collector out of the box with the default settings.
Also, the ADOT Collector configuration uses the same configuration syntax/design from OpenTelemetry Collector
so you can customize or port your OpenTelemetry Collector configuration files when running ADOT Collector. Please refer to the Try out ADOT Collector
section on configuring ADOT Collector.
Try out the ADOT Collector
The ADOT Collector supports all AWS computing platforms and Docker/Kubernetes. Here are some examples on how to run the ADOT Collector to send telemetry data:
- Run it with Docker
- Run it with ECS
- Run it with EKS
- Run it on EC2 (Amazon Linux 2)
- Run it on EC2 (Windows)
- Run it on EC2 (Debian)
Build Your Own Artifacts
Use the following instructions to build your own ADOT Collector artifacts:
Development
See docs/developers
Benchmark
The latest performance report is here, while the trends by testcase can be found here. Both are updated on each successful CI run. The charts use the github-action-benchmark action and uses a modified layout to group the testcases. The performance test can be conducted by following the instructions here.
Support
For each merged pull request, a corresponding image with the naming convention of [ADOT_COLLECTOR_VERSION]-[GITHUB_SHA]
is pushed to public.ecr.aws/aws-otel-test/adot-collector-integration-test.
This image is used for the integration tests. You can pull any of the images from there, however, we will not support any issues and pull requests for these test images.
License
ADOT Collector is licensed under an Apache 2.0 license.