AWS Distro for OpenTelemetry
EKS add-ons Advanced Configuration for ADOT (<v0.88.0-eksbuild.1)
EKS add-ons Advanced Configuration for ADOT (<v0.88.0-eksbuild.1)
IMPORTANT: The following documentation is for ADOT EKS add-on versions less than
v0.88.0-eksbuild.1
. If you are using a version greater than or equal tov0.88.0-eksbuild.1
, then please refer to this updated Add-on Advanced Configuration documentation. Utilize the v0.88.0 Advanced configuration migration guide if you are upgrading from a pre v0.88.0 version.
EKS add-ons provides the ability to configure the installation of ADOT, during installation time. During add-on creation, or add-on updates, configurable values can be used to modify the add-on to your liking. Some examples include modifying resource requests or limits or adding tolerations to the deployed pod.
These configuration values are passed in as a JSON string to a --configuration-values
option when creating or updating ADOT using EKS add-ons. you can either pass in a JSON string directly, or you can pass a file path to a JSON file as a parameter, see these docs for more information. For example, to set the cpu resource limit to 200m during add-on creation, the command would look like
aws eks create-addon \ --cluster-name <YOUR-EKS-CLUSTER-NAME> \ --addon-name adot \ --configuration-values "{\"manager\":{\"resources\":{\"limits\":{\"cpu\":\"200m\"}}}}" \ --resolve-conflicts=OVERWRITE
Note that, when passing in JSON directly, you must escape special characters, such as double quotes. This is reflected in the example above. Alternatively, you can pass in a file path as an argument to --configuration-values
, reducing the need for special formatting. For example, the same command above using a file named configuration-values.json
as a file path would look like
aws eks create-addon \ --cluster-name <YOUR-EKS-CLUSTER-NAME> \ --addon-name adot \ --configuration-values file://configuration-values.json \ --resolve-conflicts=OVERWRITE
// configuration-values.json{ "manager": { "resource": { "limits": { "cpu": "200m" } } }}
Each EKS add-on version of ADOT will have it’s own definition of what values are configurable. They are very similar, if not identical, between most add-on versions. To see what configurable values are available for an add-on version, use the command
aws eks describe-addon-configuration --addon-name adot --addon-version <DESIRED-ADDON-VERSION>
An example list of all configurable values, along with descriptions and examples, for the add-on version v0.66.0-eksbuild.1
can be found below. Additionally, with the addition of configurable values for ADOT using EKS add-ons, it is possible to pass in configuration values to allow an ADOT Collector to be deployed during add-on creation or add-on updates. This will be discussed in an upcoming section.
Value | Description | Example |
---|---|---|
replicaCount | Number of replicated pods to create. | "{"replicaCount": 1}" |
manager.resources.limits.cpu | Modifies the cpu resource limit for the ADOT Operator pod.* | "{"manager":{"resource":{"limits":{"cpu":"100m"}}}}" |
manager.resources.limits.memory | Modifies the memory resource limit for the ADOT Operator pod.* | "{"manager":{"resource":{"limits":{"memory":"128Mi"}}}}" |
manager.resources.requests.cpu | Modifies the cpu resource request for the ADOT Operator pod.* | "{"manager":{"resource":{"requests":{"cpu":"100m"}}}}" |
manager.resources.requests.memory | Modifies the memory resource request for the ADOT Operator pod.* | "{"manager":{"resource":{"requests":{"memory":"64Mi"}}}}" |
manager.env | Set environment variables for the ADOT Operator pod. | "{"manager":{"env":{}}}" |
kubeRBACProxy.resources.limits.cpu | Modifies the cpu resource limit for the kubeRBACProxy container.* | "{"kubeRBACProxy":{"resource":{"limits":{"cpu":"500m"}}}}" |
kubeRBACProxy.resources.limits.memory | Modifies the memory resource limit for the kubeRBACProxy container.* | "{"kubeRBACProxy":{"resource":{"limits":{"memory":"128Mi"}}}}" |
kubeRBACProxy.resources.requests.cpu | Modifies the cpu resource request for the kubeRBACProxy container.* | "{"kubeRBACProxy":{"resource":{"requests":{"cpu":"5m"}}}}" |
kubeRBACProxy.resources.requests.memory | Modifies the memory resource request for the kubeRBACProxy container.* | "{"kubeRBACProxy":{"resource":{"requests":{"memory":"64Mi"}}}}" |
admissionWebhooks.namespaceSelector | Add a namespaceSelector for admission webhooks. | "{"admissionWebhooks":{"namespaceSelector":{}}}" |
admissionWebhooks.objectSelector | Add a objectSelector for admission webhooks. | "{"admissionWebhooks":{"objectSelector":{}}}" |
affinity | Specify node affinity for the ADOT Operator pod. | "{"affinity":{}}" |
tolerations | Specify tolerations to apply to the ADOT Operator pod. | "{"tolerations":[]}" |
nodeSelector | Specify nodeSelector for the ADOT Operator pod. | "{"nodeSelector":{}}" |
collector.mode | Specifies what mode to deploy the Collector in. Modes are deployment , daemonset , statefulset , and sidecar . | "{"collector":{"mode":"deployment"}}" |
collector.replicas | Specifies how many replicas of the Collector to deploy. | "{"collector":{"replicas":1}}" |
collector.resources.limits.cpu | Modifies the cpu resource limit for the ADOT Collector pod.* | "{"collector":{"resource":{"limits":{"cpu":"256m"}}}}" |
collector.resources.limits.memory | Modifies the memory resource limit for the ADOT Collector pod.* | "{"collector":{"resource":{"limits":{"memory":"512Mi"}}}}" |
collector.resources.requests.cpu | Modifies the cpu resource request for the ADOT Collector pod.* | "{"collector":{"resource":{"requests":{"cpu":"64m"}}}}" |
collector.resources.requests.memory | Modifies the memory resource request for the ADOT Collector pod.* | "{"collector":{"resource":{"requests":{"memory":"128Mi"}}}}" |
collector.serviceAccount.create | Specify whether or not to create a service account for use with Collector deployment. | "{"collector":{"serviceAccount":{"create":true}}}" |
collector.serviceAccount.name | Specify a name for a service account for use with Collector deployment, either to create or a pre-existing service account. | "{"collector":{"serviceAccount":{"name":"aws-otel-collector"}}}" |
collector.serviceAccount.annotations | Specifies annotations for a service account for use with Collector deployment. | "{"collector":{"serviceAccount":{"annotations":{"eks.amazonaws.com/role-arn":"arn:aws:iam::000000000000:role/adot-collector"}}}}}" |
collector.amp.enabled | Specify whether or not to enable Amazon Managed Prometheus as a destination for Collector deployment. | "{"collector":{"amp":{"enabled":true}}}" |
collector.amp.remoteWriteEndpoint | Specify a remote write endpoint for Amazon Managed Prometheus. Required if collector.amp.enabled is true. | "{"collector":{"amp":{"remoteWriteEndpoint":"https://aps-workspaces.us-west-2.amazonaws.com/workspaces/ws-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/api/v1/remote_write"}}}" |
collector.cloudwatch.enabled | Specify whether or not to enable Amazon CloudWatch as a destination for Collector deployment. | "{"collector":{"cloudwatch":{"enabled":true}}}" |
collector.xray.enabled | Specify whether or not to enable AWS X-Ray as a destination for Collector deployment. | "{"collector":{"xray":{"enabled":true}}}" |
*Note that in fargate, resource requests and limits must be equal, see this troubleshooting guide for more information.
Previous Topic: Installation
Next topics:
Add-on Advanced Configuration: Collector Deployment (<v0.88.0-eksbuild.1)
Collector Configuration Introduction
Collector Configuration for Amazon Managed Prometheus
Collector Configuration for Amazon CloudWatch
Collector Configuration for AWS X-Ray