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.
92
96%
Does it follow best practices?
Impact
92%
1.10xAverage score across 127 eval scenarios
Advisory
Suggest reviewing before use
Use these when the user asks "which fields" or the issue clearly matches a
product surface. They are the short-answer anchors too: do not rely on the
model to infer these exact names from SKILL.md rules alone.
db.system, db.name, db.operation,
db.statement, and net.peer.name. Treat db.system.name,
db.namespace, db.operation.name, db.query.text, server.address, and
network.peer.address as source/newer names that may need mirroring, not
replacements for the target set.spanMetrics.transformStatements before spanmetrics, not only
spanMetrics.dbMetrics.transformStatements. Include the symptom strings
db_calls_total, calls_total, and db_namespace: DB-only placement can
make db_calls_total get db_namespace while normal calls_total stays
blank. The fallback chain is db.name, server.address,
network.peer.name, net.peer.name, network.peer.address, then
db.system.span_metrics.transform_statements and rendered Helm
spanMetrics.transformStatements; verify the rendered ConfigMap, not only
values or UI JSON.span_name, service_name, span_kind,
status_code, collector_instance_id / collector.instance.id,
http_method, host_name, k8s_cluster_name, cgx.transaction,
cgx.transaction.root, db_namespace, db_operation_name,
db_collection_name, db_system, application_name, and
cx_subsystem_name.url.full, k8s.pod.ip, and blanket
k8s.pod.name dimensions by default. Use templated http.route for HTTP
grouping; add k8s.pod.name only for a concrete writer-collision case.collector.instance.id /
collector_instance_id or another writer-unique dimension. For
collector-contrib v0.136.0 through v0.151.x, name
--feature-gates=+connector.spanmetrics.includeCollectorInstanceID; for
v0.152.0+, verify collector.instance.id is emitted.spanmetrics.statusCodeConvention.useOtelPrefix. This changes generated
RED metric data points from status.code to otel.status_code, so bridge
in the metrics pipeline after spanmetrics, not trace
spanMetrics.transformStatements or traces before spanmetrics. Raw
values are status.code=Error/Ok/Unset and
otel.status_code=ERROR/OK/missing, including otel.status_code=OK; do
not match Prometheus STATUS_CODE_* labels in collector-side bridges.otel.metric.overflow="true" is the raw OTLP
data-point attribute and otel_metric_overflow="true" is the
Prometheus-normalized label for the same expected fallback series, not a
bug. Reduce source cardinality first, for example normalize UUIDs out of
span names and prefer http.route over raw url.path; do not present
raising the cap as the primary fix.http.request.method; Coralogix Span
Metrics may still need a bridge for legacy http.method because
connector dimensions read that source internally.cgx.transaction / cgx.transaction.root are
derived by CoralogixTransactionSampler; do not set them manually as the
fix. Route-aware span names / http.route must exist before that sampler;
collector rewrites after derivation can be too late.k8s.cluster.name,
k8s.namespace.name, k8s.pod.name, k8s.node.name,
k8s.container.name, service.name, and one owner such as
k8s.deployment.name, k8s.statefulset.name, k8s.daemonset.name,
k8s.job.name, k8s.cronjob.name, or k8s.replicaset.name.host.name; check
EC2 tag/resource detection in logs and Resource Catalog plus
ec2:DescribeTags.cx_metadata.* is product metadata. Name
CX_LOGS_METADATA_ENABLED, CX_LOGS_METADATA_INCLUDE_TRACE_REF, and
CX_LOGS_RESOURCE_BUILT_IN_ATTRIBUTES; warn about serverless dashboards and
trace/log correlation.service_instance_id is the
Prometheus / Target Allocator normalized spelling of service.instance.id,
not a separate identity dimension to keep with different values. Choose one
canonical service or writer identity and align or remove the duplicate
source.cx.application.name /
cx.subsystem.name are Coralogix proprietary routing attributes, not
OTel-standard semconv. application_name_attributes and
subsystem_name_attributes read resource attributes only. If a value is at
log-record scope, recommend setting it at resource scope with SDK /
resource / resourcedetection, or copying it up with OTTL; exact syntax
belongs to opentelemetry-ottl, while core owns routing configuration.
For env-var answers name OTEL_RESOURCE_ATTRIBUTES. Say core when naming
the routing owner.OTEL_EXPORTER_OTLP_ENDPOINT, OTEL_RESOURCE_ATTRIBUTES, and
opentelemetry-instrumentation as the setup owner.http.response.status_code can be
normal when no HTTP response exists. exception.type / span error status
are fallback signals; mapping them to a synthetic HTTP status is a
Coralogix/product workaround, not standard OTel semconv.k8sattributes / resource /
transform adds correlation attributes but does not create inventory.
Self-managed inventory needs k8sobjects,
resourcedetection/resource_catalog, coralogix/resource_catalog, and
x-coralogix-ingress: metadata-as-otlp-logs/v1. For freshness or stale
metadata, mention resource_ttl, interval, otel.entity.interval, and
schema_url.set(...) statement,
where clause, or OTTL context, name opentelemetry-ottl as owner; semconv
only names source and destination scopes.cloud.platform is a value rename
(azure_vm / azure.vm, azure_aks / azure.aks); timeout status mapping
from exception.type is a Coralogix workaround; multi-gateway tail sampling
/ spanmetrics needs traceID load balancing..claude-plugin
.codex-plugin
.cursor-plugin
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
scenario-82
scenario-83
scenario-84
scenario-85
scenario-86
scenario-87
scenario-88
scenario-89
scenario-90
scenario-91
scenario-92
scenario-93
scenario-94
scenario-95
scenario-96
scenario-97
scenario-98
scenario-99
scenario-100
scenario-101
scenario-102
scenario-103
scenario-104
scenario-105
scenario-106
scenario-107
scenario-108
scenario-109
scenario-110
scenario-111
scenario-112
scenario-113
scenario-114
scenario-115
scenario-116
scenario-117
scenario-118
scenario-119
scenario-120
scenario-121
scenario-122
scenario-123
scenario-124
scenario-125
scenario-126
scenario-127
skills
opentelemetry
opentelemetry-collector
references
opentelemetry-instrumentation
opentelemetry-ottl