v0.51.0
Starting with v0.50.0, the ADOT package only accepts the logsCollection, kubernetesAttributes and resourceDetection presets. The upstream chart’s other presets (hostMetrics, kubeletMetrics, kubernetesEvents, kubernetesObjects, clusterMetrics, annotationDiscovery and profiling) need receivers that the ADOT Collector doesn’t include, so a package config that sets one is rejected. Use clusterRole.rules and the receiver configuration under config instead, as shown in ADOT with AMP and AMG.
Configuring ADOT in EKS Anywhere package spec
Example
For complete configuration examples and use cases, refer to ADOT with AMP and AMG.
Configurable parameters and default values under spec.config
| Parameter | Description | Default |
|---|---|---|
| General | ||
| hostNetwork | Indicates if the pod should run in the host networking namespace. | false |
| image.pullPolicy | Specifies image pull policy: IfNotPresent, Always, Never. |
"IfNotPresent" |
| mode | Specifies Collector deployment options: daemonset, deployment, or statefulset. |
"daemonset" |
| apiVersion | Overrides the apiVersion of the Collector workload (DaemonSet, Deployment or StatefulSet). Optional. | "apps/v1" |
| ports.[*].containerPort | Specifies containerPort used. | See footnote 1 |
| ports.[*].enabled | Indicates if a port is enabled. | See footnote 1 |
| ports.[*].hostPort | Specifies hostPort used. | See footnote 1 |
| ports.[*].protocol | Specifies protocol used. | See footnote 1 |
| ports.[*].servicePort | Specifies servicePort used. | See footnote 1 |
| resources.limits.cpu | Specifies CPU resource limits for containers. | Not set |
| resources.limits.memory | Specifies memory resource limits for containers. | Not set |
| ServiceAccount | ||
| serviceAccount.create | Specifies whether a service account should be created. | true |
| serviceAccount.annotations | Annotations to add to the service account (e.g., eks.amazonaws.com/role-arn for IRSA). |
{} |
| serviceAccount.name | The name of the service account to use. If not set and create is true, a name is generated using the fullname template. | "" |
| ClusterRole | ||
| clusterRole.create | Specifies whether a clusterRole should be created. Some presets also trigger the creation of a cluster role. | false |
| clusterRole.annotations | Annotations to add to the clusterRole. Can be used in combination with presets. | {} |
| clusterRole.name | The name of the clusterRole to use. If not set, a name is generated using the fullname template. | "" |
| clusterRole.rules | A set of rules as documented in Kubernetes RBAC . Can be used in combination with presets to add additional rules. | [] |
| Presets | ||
| presets.logsCollection.enabled | Configures the collector to collect logs. Adds the filelog receiver to the logs pipeline and adds necessary volumes and volume mounts. Best used with mode = daemonset. | false |
| presets.logsCollection.includeCollectorLogs | Include ADOT collector’s own logs in collection. | false |
| presets.logsCollection.storeCheckpoints | Enables writing checkpoints in /var/lib/otelcol/ host directory. Changes collector’s user to root. | false |
| presets.logsCollection.maxRecombineLogSize | The maximum size, in bytes, of a recombined log entry. | 102400 |
| presets.kubernetesAttributes.enabled | Configures the Kubernetes Processor to add Kubernetes metadata. Adds k8sattributes processor to all pipelines and creates ClusterRole with minimum required RBAC rules. Best used with mode = daemonset. | false |
| presets.kubernetesAttributes.extractAllPodLabels | When enabled, the processor extracts all labels for an associated pod and adds them as resource attributes. | false |
| presets.kubernetesAttributes.extractAllPodAnnotations | When enabled, the processor extracts all annotations for an associated pod and adds them as resource attributes. | false |
| presets.resourceDetection.enabled | Adds the resourcedetection processor to all pipelines, typically to set the k8s.cluster.name resource attribute. Adds ClusterRole rules to read nodes. |
false |
| presets.resourceDetection.env.enabled | Enables the env detector. |
true |
| presets.resourceDetection.k8s_api.enabled | Enables the k8s_api detector. |
true |
| presets.resourceDetection.eks.enabled | Enables the eks detector. |
false |
| Config | ||
| config.config | Specifies Collector receiver, processor, exporter, and extensions configurations. Refer to aws-otel-collector for full details. Note EKS Anywhere ADOT package version matches the exact aws-otel-collector version. | See footnote 2 |
| config.config.receiver | Specifies how data gets in the Collector. Receivers can be either push or pull based, and support one or more data source. | See footnote 2 |
| config.config.processor | Specifies how processors are run on data between the stage of being received and being exported. Processors are optional though some are recommended. | See footnote 2 |
| config.config.exporters | Specifies how data gets sent to backends/destinations. Exporters can be either push or pull based, and support one or more data source. | See footnote 2 |
| config.config.extensions | Specifies tasks that do not involve processing telemetry data. Examples of extensions include health monitoring, service discovery, and data forwarding. Extensions are optional. | See footnote 2 |
| config.config.service | Specifies what components are enabled in the Collector based on the configuration found in the receivers, processors, exporters, and extensions sections. If a component is configured, but not defined within the service section, then it is not enabled. | See footnote 2 |
| Deployment mode only | ||
| replicaCount | Specifies replicaCount for pods. | 1 |
| service.type | Specifies service types: ClusterIP, NodePort, LoadBalancer, ExternalName. |
"ClusterIP" |
-
The default
portsenablesotlp,otlp-http,jaeger-compact,jaeger-thrift,jaeger-grpcandzipkin. Themetricsport (8888) is disabled. See below specification for theotlpports.↩︎apiVersion: packages.eks.amazonaws.com/v1alpha1 kind: Package ... spec: config: | ports: otlp: enabled: true containerPort: 4317 servicePort: 4317 hostPort: 4317 protocol: TCP otlp-http: enabled: true containerPort: 4318 servicePort: 4318 hostPort: 4318 protocol: TCP -
The default
config.configdeploys an ADOT Collector with metrics and traces pipelines, which include the otlp and prometheus receivers and the debug exporter. See below specification for details.↩︎apiVersion: packages.eks.amazonaws.com/v1alpha1 kind: Package ... spec: config: | config: receivers: otlp: protocols: grpc: endpoint: ${env:MY_POD_IP}:4317 http: endpoint: ${env:MY_POD_IP}:4318 prometheus: config: scrape_configs: - job_name: opentelemetry-collector scrape_interval: 10s static_configs: - targets: - ${env:MY_POD_IP}:8888 processors: batch: {} memory_limiter: check_interval: 5s limit_percentage: 80 spike_limit_percentage: 25 exporters: debug: {} extensions: health_check: endpoint: ${env:MY_POD_IP}:13133 service: extensions: - health_check pipelines: metrics: exporters: - debug processors: - memory_limiter - batch receivers: - otlp - prometheus traces: exporters: - debug processors: - memory_limiter - batch receivers: - otlp