CtrlK
BlogDocsLog inGet started
Tessl Logo

coralogix/opentelemetry-skills

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

1.13x
Quality

97%

Does it follow best practices?

Impact

99%

1.13x

Average score across 81 eval scenarios

SecuritybySnyk

Advisory

Suggest reviewing before use

Overview
Quality
Evals
Security
Files

config-exporters.mdskills/opentelemetry/opentelemetry-collector/references/

OpenTelemetry Collector: Exporters Configuration

This reference covers the coralogix, coralogix/resource_catalog, and loadbalancing exporters.

Coralogix Exporter

The coralogix exporter ships telemetry to Coralogix over OTLP. Regional routing is handled by a domain field.

exporters:
  coralogix:
    domain: "eu2.coralogix.com"          # bare hostname for your region; NOT a URL
    private_key: "${env:CORALOGIX_PRIVATE_KEY}"
    application_name: "my-app"
    subsystem_name: "my-service"
    timeout: 30s

Critical Rules

  • Domain is a bare hostname: Set domain: to the regional data-ingestion hostname (e.g., eu2.coralogix.com). Never use endpoint:, https://, or a trailing slash. Never use a UI hostname.
  • Bracketed syntax for env vars: Use ${env:CORALOGIX_PRIVATE_KEY}. The unbracketed $CORALOGIX_PRIVATE_KEY form silently fails to expand in newer versions (≥ v0.76).
  • Dynamic Routing: Use application_name_attributes and subsystem_name_attributes to dynamically route telemetry based on resource attributes, falling back to static strings:
exporters:
  coralogix:
    domain: "eu2.coralogix.com"
    private_key: "${env:CORALOGIX_PRIVATE_KEY}"
    application_name_attributes: ["service.namespace", "application"]
    subsystem_name_attributes: ["service.name", "k8s.deployment.name"]
    application_name: "default-app"      # fallback when no derived value
    subsystem_name: "default-subsystem"

Transport protocol

Do not set protocol: http. Since collector-contrib v0.144, the coralogix exporter validates HTTP compatibility for all signals at startup — including profiles, which require gRPC. The validation runs before pipeline wiring, so protocol: http fails even with no profiles pipeline:

Error: exporters::coralogix: profiles signal is not supported with HTTP protocol,
use gRPC protocol (default) instead

Remove the protocol: field. gRPC is the default and works for all signals.

Back-pressure

The exporter's sending_queue and retry_on_failure blocks provide resilience and back-pressure.

exporters:
  coralogix:
    domain: "eu2.coralogix.com"
    private_key: "${env:CORALOGIX_PRIVATE_KEY}"
    sending_queue:
      enabled: true
      num_consumers: 10
      queue_size: 5000
      storage: file_storage                # optional: persist to disk for crash-safe buffering
    retry_on_failure:
      enabled: true
      initial_interval: 5s
      max_interval: 30s
      max_elapsed_time: 300s
    timeout: 30s

Infrastructure Explorer / Resource Catalog Exporter

Entity metadata requires a dedicated exporter and specific HTTP headers.

exporters:
  coralogix/resource_catalog:
    domain: "eu2.coralogix.com"
    private_key: "${env:CORALOGIX_PRIVATE_KEY}"
    application_name: "resource"
    subsystem_name: "catalog"
    logs:
      headers:
        x-coralogix-ingress: "metadata-as-otlp-logs/v1"
    timeout: 120s
  • Required Header: Without x-coralogix-ingress: metadata-as-otlp-logs/v1, entity events reach the logs pipeline but never populate Infrastructure Explorer.

Loadbalancing Exporter

Used on the agent daemonset to route spans to a central gateway deployment based on trace_id. This is required for tail_sampling on the gateway to evaluate complete traces.

exporters:
  loadbalancing:
    protocol:
      otlp:
        tls:
          insecure: true
    resolver:
      dns:
        hostname: otel-gateway.coralogix.svc.cluster.local
        port: 4317
    routing_key: traceID
  • Routing Key: routing_key: traceID enforces consistent hashing on the trace ID. Without it, spans distribute round-robin, and the gateway's tail sampler sees incomplete traces, producing sampling_trace_dropped_too_early metrics.

README.md

tile.json