Overview
AWS Distro for OpenTelemetry Collector(AWS OTel Collector) is a 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.
Getting Help
Use the community resources below for getting help with AWS OTel Collector.
- Use GitHub issues for reporting bugs and requesting features.
- Join our GitHub Community for AWS Distro for OpenTelemetry to ask your questions, file issues, request enhancements.
- Open a support ticket with AWS Support.
- If you think you may have found a bug, open an issue.
- For contributing guidelines refer CONTRIBUTING.md.
AWS OTel Collector Built-in Components (in 2020)
This table represents the supported components of AWS OTel Collector in 2020. The highlighted components below are developed by AWS in-house. The rest of the components in the table are the essential default components that AWS OTel Collector will support.
Receiver | Processor | Exporter | Extensions |
---|---|---|---|
prometheusreceiver | attributesprocessor | awsxrayexporter |
healthcheckextension |
otlpreceiver | resourceprocessor | awsemfexporter |
pprofextension |
awsecscontainermetricsreceiver |
queuedprocessor | prometheusexporter | zpagesextension |
batchprocessor | loggingexporter | ||
memorylimite | otlpexporter | ||
tailsamplingprocessor | fileexporter | ||
probabilisticsamplerprocessor | otlphttpexporter | ||
spanprocessor | datadogexporter | ||
filterprocessor | dynatraceexporter | ||
metricstransformprocessor | newrelicexporter | ||
sapmexporter |
AWS OTel Collector AWS Components
Getting Started
Prerequisites
To build AWS OTel Collector locally, you will need to have Golang installed. You can download and install Golang here.
AWS OTel Collector Configuration
We built in a default configuration to our docker image and other format of release.
So you can run AWS OTel Collector out of box with the default settings.
Also, AWS OTel Collector configuration uses the same configuration syntax/design from OpenTelemetry Collector
so you can customize or porting your OpenTelemetry Collector configuration files when running AWS OTel Collector. please refer Try out AWS OTel Collector
section on configuring AWS OTel Collector.
Try out AWS OTel Collector
AWS OTel Collector supports all AWS computing platforms and docker/kubernetes. Here are some examples on how to run AWS OTel Collector to send telemetry data:
- Run it with Docker
- Run it with ECS
- Run it with EKS
- Run it on AWS Linux EC2
- Run it on AWS Windows EC2
- Run it on AWS Debian EC2
Build Your Own Artifacts
Use the following instruction to build your own AWS OTel Collector artifacts:
Release Process
Benchmark
AWS OTel Collector is based on the upstream open-telemetry-collector. Here is the benchmark of AWSXRay trace exporter and AWSEMF metrics exporter.
This table shows the performance of AWSEMF exporter against 1kData/sec, 5kData/sec, and 10kData/sec metrics:
Test | Result | Duration | CPU Avg% | CPU Max% | RAM Avg MiB | RAM Max MiB | Sent Items | Received Items |
---|---|---|---|---|---|---|---|---|
Metric1kDPS/AWSEmf | PASS | 16s | 6.1 | 8.6 | 31 | 38 | 105000 | 105000 |
Metric5kDPS/AWSEmf | PASS | 15s | 14.3 | 17.1 | 38 | 42 | 256110 | 256110 |
Metric10kDPS/AWSEmf | PASS | 16s | 25.8 | 27.0 | 43 | 58 | 491100 | 491100 |
This table shows the performance of AWSXray exporter against 1kData/sec,5kData/sec and 10kData/sec spans(traces).
Test | Result | Duration | CPU Avg% | CPU Max% | RAM Avg MiB | RAM Max MiB | Sent Items | Received Items |
---|---|---|---|---|---|---|---|---|
Trace1kSPS/AwsXray | PASS | 15s | 8.5 | 11.6 | 32 | 36 | 15000 | 15000 |
Trace5kSPS/AwsXray | PASS | 15s | 26.12 | 27.8 | 33 | 38 | 74400 | 74400 |
Trace10kSPS/AwsXray | PASS | 15s | 43.8 | 45.3 | 37 | 43 | 132500 | 132500 |
License
AWS OTel Collector is licensed under an Apache 2.0 license.