AWS Distro for OpenTelemetry

Adding ARM64 support to AWS Distro for OpenTelemetry (ADOT) Docker containers

Adding ARM64 support to AWS Distro for OpenTelemetry (ADOT) Docker containers

By Seth Levine, ADOT Team




AWS Distro for OpenTelemetry (ADOT) ARM64 images are now available. You can download the latest ADOT Collector image from the Amazon Elastic Container Registry (Amazon ECR) Public Gallery.




Starting with the release of the AWS Distro for OpenTelemetry (ADOT) Collector agent 0.16.0, customers will be able to also run the Collector agent on ARM64 container hosts.

You can Locate ARM64 images here. Since container registries allow multiple manifests per tag based on the architecture, you will not need to change your docker-compose/Kubernetes deployment files when transitioning to ARM64 instances (more information later in the blog post).

What was already supported, and what needed to change?

We already supported the AMD64 and ARM64 binary for Linux, but we used docker build to create containers.

Docker's build command will only create containers for the default architecture of the host system. For our case that build system is AMD64. We needed a solution that supported ARM64 images. We decided to go with docker buildx, which allows multi-architecture builds. See docs here.

We are changing the docker file.

When running the Dockerfile via the docker build command, the access is only limited to AMD64 binaries. We have added the ability to access the ARM64 binary inside the docker build container. The docker build command provides an argument for the platform that translates to TARGETARCH in the Dockerfile. Using this knowledge about docker target platform architecture, we are able to choose the binary for copying into the docker build container. See Dockerfile here

About the author

Diagram

I have worked at AWS Cloudwatch for a little under one year. I work to help bring value through scalable cloud based solutions to AWS customers. With a focus on open-source projects.