AWS Open Distro for OpenTelemetry

Setting up AWS Distro for OpenTelemetry Collector in Amazon Elastic Kubernetes Service

Setting up AWS Distro for OpenTelemetry Collector in Amazon Elastic Kubernetes Service

In this tutorial, we will demonstrate how to run the AWS Distro for OpenTelemetry(ADOT Collector) Collector as sidecar on the Amazon Elastic Kubernetes Service (Amazon EKS).




Create IAM policy

For the required permissions and setup, see the Permissions section.




Attach the EKS-AWSObservability IAM Policy to worker node

  1. Open the Amazon EC2 console.
  2. Select one of the worker node instances and choose the IAM role in the description.
  3. On the IAM role page, choose Attach policies.
  4. In the list of policies, select the check box next to AWSDistroOpenTelemetryPolicy. You can use the search box to find this policy.
  5. Choose Attach policies.



Deploy ADOT Collector on Amazon EKS as sidecar

Sidecar is a microservice design pattern where a companion service runs next to your primary microservice, augmenting its abilities or intercepting resources it is utilizing. We recommend deploying ADOT Collector on Amazon EKS as a sidecar, defining it in the same task definition as your application. This allows the ADOT Collector to collect the metric and trace data for the application.

  1. Create a Kubernetes namespace.
kubectl create namespace aws-otel-eks
  1. An example configuration template can be found under examples in the AWS Distro for OpenTelemetry Collector GitHub. Replace {{aws-otelImage}} with the name of the ADOT Collector Docker image you built (For example, aottestbed/awscollector:v0.1.12), and {{region}} with the name of the Region where the logs are published (For example, us-west-2).
  2. Deploy the application.
kubectl apply -f https://raw.githubusercontent.com/aws-observability/aws-otel-collector/main/examples/eks/aws-cloudwatch/otel-sidecar.yaml
  1. View the resources in the aws-otel-eks namespace.
kubectl get all -n aws-otel-eks
Diagram5. View the details of the deployed deployment. ``` kubectl -n aws-otel-eks describe deployment aws-otel-eks-sidecar ```DiagramThe example template runs the AWS-OTel-Collector as a sidecar to send application metrics and traces on Amazon EKS. We run two applications: the main application (`aws-otel-emitter`) and the ADOT Collector (`aws-otel-collector`). After the setup is finished, we should see the following sample metrics in Amazon CloudWatch console.Diagram

Notes After you’ve finished the tutorial, remember to shut down the new EKS cluster created in the tutorial in order to avoid additional charges.