AWS Distro for OpenTelemetry

OTLP Ingest Collector Configuration

OTLP Ingest Collector Configuration

The OpenTelemetry Protocol (OTLP) Ingest collector configuration launches a preconfigured OpenTelemetry Collector custom resource to ingest trace export calls with the otlp receiver. By opting into the available pipeline you can control where the collected traces are sent.

Prerequisites

Setup an IAM role to associate with the service account

An IAM Role with the following policies must be created for the following Kubernetes service account and namespace.

Service Account NameNamespaceIAM Policies
adot-col-otlp-ingestopentelemetry-operator-systemAWSXrayWriteOnlyAccess

Note: Only attach the minimum set of policies necessary for your advanced configuration.

The IAM Roles for Service Accounts documentation (IRSA) contains instructions for creating the IAM role. The following examples will use eksctl to achieve this.

To create this IAM role, run the following command:

eksctl create iamserviceaccount \
--name adot-col-otlp-ingest \
--namespace opentelemetry-operator-system \
--cluster <your_cluster_name> \
--attach-policy-arn arn:aws:iam::aws:policy/AWSXrayWriteOnlyAccess \
--approve \
--role-only

This IAM role generated by the above command needs to be inserted into the annotations field of the advanced configuration as seen below:

collector:
otlpIngest:
serviceAccount:
annotations:
eks.amazonaws.com/role-arn: <iam_role_arn>

OTLP Ingest pipelines

The following pipelines are available for the OTLP Ingest preconfigured custom resource. Pipelines can be enabled by setting their enabled field to true.

Traces

  • xray

    Traces collected by OTLP receiver are sent to AWS X-Ray.

OTLP Ingest Advanced Configuration pipeline

collector:
otlpIngest:
serviceAccount:
annotations:
eks.amazonaws.com/role-arn: <iam_role_arn>
pipelines:
traces:
xray:
enabled: true

OTLP Ingest configurable values

Shown below is the complete list of configurable fields, along with their default values, for the otlpIngest resource.

collector:
otlpIngest:
resources:
limits:
cpu: 1000m
memory: 750Mi
requests:
cpu: 300m
memory: 512Mi
serviceAccount:
annotations:
pipelines:
traces:
xray:
enabled: false

*Note that in Fargate, resource requests and limits must be equal, see this troubleshooting guide for more information.

Previous Topic: Add-on Advanced Configuration: Collector Deployment

Collector Configuration for Prometheus Metrics

Collector Configuration for Container Logs

Next Topic: Updating and Cleanup