OpenTelemetry Collector deployment, instrumentation (Java/Python/Node.js/.NET/Go), and OTTL pipeline transforms for Coralogix — coralogix exporter config, Helm chart selection, Kubernetes topology, ECS/EKS/GKE deployments, SDK setup, APM transactions, and OTTL cardinality/PII/routing.
98
97%
Does it follow best practices?
Impact
99%
1.13xAverage score across 81 eval scenarios
Advisory
Suggest reviewing before use
This reference covers the universal processor chain and critical Kubernetes enrichment processors. Order matters fundamentally.
Configure pipelines in this order from receiver to exporter:
receivers → memory_limiter → resourcedetection/* → resource/metadata → k8sattributes/ecsattributes → transform/k8s_attributes → [transform/filter …] → batch → exportermemory_limiter (FIRST): Sheds load when approaching memory limits. Must be first to prevent upstream components from doing wasted work on records that will be dropped.resourcedetection/*: Adds host.*, cloud.*, k8s.*, aws.* attributes.resource/metadata: Injects k8s.cluster.name, cx.otel_integration.name, and deployment markers like cx.agent.type (agent, cluster-collector, gateway). Without this, Coralogix correlation breaks.k8sattributes or ecsattributes: Enriches telemetry with orchestrator metadata (e.g., pod names, replica sets).transform/k8s_attributes: Derives k8s.deployment.name from k8s.replicaset.name by stripping the hash suffix. Required for proper workload aggregation in APM.transform / filter: Custom OTTL rules.batch (LAST before exporter): Amortizes export cost. Batching prior to enrichment wastes memory and CPU.When running both an agent (daemonset) and a gateway (deployment), only one role should perform full extraction to avoid hammering the Kubernetes API server.
k8s.pod.ip and defers lookup.processors:
k8sattributes:
passthrough: true
extract:
metadata: [k8s.namespace.name, k8s.pod.name, k8s.node.name]
filter:
node_from_env_var: K8S_NODE_NAME # required — or the agent scans all nodes
pod_association:
- sources: [{ from: resource_attribute, name: k8s.pod.ip }]
- sources: [{ from: connection }]processors:
k8sattributes:
passthrough: false
extract:
metadata:
- k8s.namespace.name
- k8s.pod.name
- k8s.pod.uid
- k8s.deployment.name
- k8s.statefulset.name
- k8s.daemonset.name
- k8s.replicaset.name
- k8s.job.name
- k8s.cronjob.name
- k8s.node.name
- k8s.cluster.uid
- k8s.container.name
labels:
- tag_name: k8s.app.name
key: app.kubernetes.io/name
from: pod
- tag_name: k8s.app.version
key: app.kubernetes.io/version
from: pod
pod_association:
- sources: [{ from: resource_attribute, name: k8s.pod.ip }]
- sources: [{ from: connection }]Applying full extract.metadata on agents, cluster-collectors, and gateways simultaneously leads to:
otelcol_processor_k8sattributes_pod_tags_add_total metrics.Resolution: Set passthrough: true on agents. Perform full extraction on the gateway (or cluster-collector if no gateway exists).
Coralogix Service Catalog and Infrastructure Explorer require the following attributes:
k8s.cluster.name (becomes cx.cluster.name)k8s.node.name + host.name or host.idk8s.namespace.namek8s.pod.uid + k8s.pod.namek8s.container.namek8s.deployment.name, k8s.statefulset.name, k8s.daemonset.name, k8s.job.name, k8s.cronjob.nameservice.nameMissing workload identity tags mean pods cannot aggregate into parent workloads. Verify workload extraction by querying k8s_pod_phase{k8s_deployment_name=""}.
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10
scenario-11
scenario-12
scenario-13
scenario-14
scenario-15
scenario-16
scenario-17
scenario-18
scenario-19
scenario-20
scenario-21
scenario-22
scenario-23
scenario-24
scenario-25
scenario-26
scenario-27
scenario-28
scenario-29
scenario-30
scenario-31
scenario-32
scenario-33
scenario-34
scenario-35
scenario-36
scenario-37
scenario-38
scenario-39
scenario-40
scenario-41
scenario-42
scenario-43
scenario-44
scenario-45
scenario-46
scenario-47
scenario-48
scenario-49
scenario-50
scenario-51
scenario-52
scenario-53
scenario-54
scenario-55
scenario-56
scenario-57
scenario-58
scenario-59
scenario-60
scenario-61
scenario-62
scenario-63
scenario-64
scenario-65
scenario-66
scenario-67
scenario-68
scenario-69
scenario-70
scenario-71
scenario-72
scenario-73
scenario-74
scenario-75
scenario-76
scenario-77
scenario-78
scenario-79
scenario-80
scenario-81
skills
opentelemetry
opentelemetry-collector
references
opentelemetry-instrumentation
opentelemetry-ottl