Opentelemetry semantic conventions
Skill coralogix/cx-skills/skills/opentelemetry/opentelemetry-semantic-conventions
Use when a Coralogix/OpenTelemetry issue depends on telemetry semantics: resource/span/metric/log attribute names, values, scopes, schemas, generated metric labels, or collection topology affecting product behavior. Trigger for missing or empty APM Service Catalog, Transactions, Error/API Error Tracking, Database Catalog/DB Monitoring, Span Metrics RED metrics, Infrastructure Explorer/Resource Catalog, AI Center/GenAI, Custom Metrics, or logs/serverless metadata, especially with service.name, http.route, http.response.status_code, db.system / db.system.name, db.namespace, k8s.*, host.*, cloud.*, gen_ai.*, resource_ttl, interval, otel.entity.interval, url.full, service.instance.id, label/cardinality, or temporality questions. Do not use for pure OTTL syntax, collector/Helm wiring, SDK install, cx.application.name/cx.subsystem.name routing, dashboards, Jira, or version-upgrade planning.From its SKILL.md
npx -y skills add coralogix/cx-skills --skill opentelemetry-semantic-conventionsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as Apache-2.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
11.9 KB, as published. Nobody here has run it
OpenTelemetry Semantic Conventions for Coralogix
Map Coralogix product behavior to the resource/span/metric/log attributes
it consumes. This top-level file routes to focused references and gives the
cross-product triage workflow; detailed product rules live in references/.
Reference Map and Scope
| Use case | What to do |
|---|---|
| Pick attributes for a new HTTP / DB / RPC / messaging span | apm-service-catalog.md — what each Coralogix APM feature reads; for stable/current/new HTTP metrics use http.request.method |
| Diagnose a missing operation in APM Service Catalog | apm-service-catalog.md — service.name + span kind + operation-name attribute checklist |
| Diagnose a missing database in Database Monitoring | database-monitoring.md — target span attributes are db.system, db.name, db.operation, db.statement, net.peer.name; newer names are bridge inputs |
Handle new DB semantic-convention names such as db.system.name / db.query.text | database-monitoring.md and spanmetrics.md — DB bridge: db.name first, then server.address, network.peer.name, net.peer.name, network.peer.address, final db.system; include db_calls_total vs calls_total / db_namespace symptoms |
| Diagnose recurring cross-product gotchas | high-signal-rules.md — common scope, topology, cardinality, and product-path rules |
| Answer a specific "which fields / exact names" question | Always read final-answer-checklists.md first — short-answer anchors that must not be inferred or paraphrased away |
| Triage a new OTel semantic-convention breaking change after an SDK / Collector upgrade | triage-workflow.md — classify attribute-name, attribute-value, metric data-point, scope, or topology changes before choosing a bridge |
| Configure Span Metrics labels or cardinality | spanmetrics.md — minimum labels include span_name, service_name, span_kind, status_code, 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, cx_subsystem_name; use k8s.pod.name only for collision cases, not blanket defaults |
| Diagnose Span Metrics writer identity or topology | spanmetrics.md and associated-boundaries.md — restore service.instance.id for resource-key collisions; for gateways name traceID / trace ID load balancing |
Diagnose otel.metric.overflow="true" / otel_metric_overflow="true" series | spanmetrics.md — expected overflow fallback, not a bug; raw OTLP vs PromQL labels; reduce source cardinality; qualify aggregation_cardinality_limit: 0 vs Helm v0.0.203+ 100,000 default |
| Diagnose missing pods / hosts in Infrastructure Explorer | infrastructure-explorer.md — resource-scope k8s.cluster.name, k8s.namespace.name, k8s.pod.name, k8s.node.name, k8s.container.name, service.name, plus owner k8s.deployment.name / k8s.statefulset.name / k8s.daemonset.name / k8s.job.name / k8s.cronjob.name / k8s.replicaset.name; EC2 tag target is host.name |
| Diagnose resource metadata lifetime / Resource Catalog inventory issues | infrastructure-explorer.md — resource_ttl, interval, otel.entity.interval, schema_url, coralogix/resource_catalog, x-coralogix-ingress: metadata-as-otlp-logs/v1 |
| Diagnose AI Center missing LLM rows | ai-center-genai.md — legacy/new gen_ai.* detection attributes and trace/archive requirements |
Diagnose custom metric temporality, duplicate labels, or _1_total names | custom-metrics.md — delta temporality, writer identity, Prometheus normalization, and low-cardinality labels |
| Diagnose Lambda/log metadata scope or EC2 tag enrichment | logs-serverless.md — log-record vs resource scope, cx_metadata.*, dashboard/correlation warning, and host identity enrichment |
| Decide when semconv should hand off to another skill | associated-boundaries.md — core owns cx.application.name / cx.subsystem.name; Javaagent setup including OTEL_RESOURCE_ATTRIBUTES and JMX receiver belongs to instrumentation; exact set(...) / where / context belongs to opentelemetry-ottl |
| Decide whether an attribute belongs on resource, span, or metric | Attribute placement below |
Attribute placement
Scope mismatches are a common reason Coralogix features stay empty while telemetry is flowing.
| Level | Use for | Examples |
|---|---|---|
| Resource | producer identity / environment | service.name, service.instance.id, deployment.environment.name, host.name, k8s.pod.name, cloud.region |
| Span | per-operation context | http.route, db.system, db.operation, db.statement, net.peer.name, rpc.method |
| Metric data point | bounded dimensions | http.request.method, http.response.status_code, db.system, generated labels such as span_kind |
| Log record | per-log-event fields | parsed body fields, filelog parser output, request IDs |
| Span event | point-in-time span details | exception.type, exception.message, exception.stacktrace |
Exporter application_name_attributes and subsystem_name_attributes read
resource attributes only; for exact routing answers read
final-answer-checklists.md.
Common Triage Flow
Use this flow when a Coralogix surface is empty or changed after an OTel SDK / instrumentation / Collector upgrade.
- Identify the changed OTel version, instrumentation source, and
schema_urlwhen present. - Identify the affected Coralogix surface and load the matching reference above.
- Inspect raw telemetry before and after transforms with the collector
debugexporter. - Classify the break as one of:
- attribute-name rename;
- attribute-value / enum rename;
- generated metric label or data-point change;
- resource/span/metric/log-record scope mismatch;
- collection topology or product-path gap.
- Choose the bridge location conceptually:
- span attributes before APM / DB / Span Metrics consume spans;
- generated RED metric labels after
spanmetrics; - resource attributes before export / Resource Catalog correlation;
- GenAI span attributes before trace export plus the AI Center trace path;
- log/resource metadata before exporter routing or serverless metadata processing.
- Hand exact implementation to the owning skill:
opentelemetry-ottlfor transform syntax,opentelemetry-collectorfor pipeline/Helm/Fleet wiring,opentelemetry-instrumentationfor SDK and sampler setup, andcorefor Coralogix app/subsystem routing.
Minimal evidence-only collector config for step 3:
receivers:
otlp:
protocols:
grpc: {}
http: {}
exporters:
debug:
verbosity: detailed
service:
pipelines:
traces:
receivers: [otlp]
exporters: [debug]
metrics:
receivers: [otlp]
exporters: [debug]
logs:
receivers: [otlp]
exporters: [debug]
Use this only to inspect raw scopes and attribute names; production pipeline
wiring still belongs to opentelemetry-collector.
For worked diagnosis examples, read triage-workflow.md.
Limitations
This skill diagnoses telemetry semantics. Hand off implementation details:
core:cx.application.name,cx.subsystem.name, regional domains, and application/subsystem routing order.opentelemetry-instrumentation: SDK env vars, sampler chains,CoralogixTransactionSampler, GenAI proxy/library setup, and manual span code.opentelemetry-ottl: exactset(...),replace_pattern(...), contexts, and where clauses.opentelemetry-collector: collector pipeline wiring, Helm/Fleet values, rendered ConfigMaps, exporter queues, Resource Catalog paths, and profile pipeline setup.- Product workflows: dashboard queries, SLOs, alerts, synthetics, RUM, and product-specific rule repair unless the root cause is one of the telemetry attribute shapes documented here.