OpenTelemetry

Configuration for the integrated OpenTelemetry exporter. A recognizable service_name should be set, and at least one endpoint — either the top-level endpoint or a signal-specific one under metrics, tracing, or logs. All other parameters are optional.

Example:

otel:
  service_name: example
  metrics:
    endpoint: http://prometheus:9090/api/v1/otlp/v1/metrics

service_name string

otel:
  service_name: example

Default: varnish-supervisor

Service name for metrics identification

endpoint string

otel:
  endpoint: http://collector:4318

OTLP endpoint URL used for all signals (metrics, traces, and logs) when no signal-specific endpoint is configured. Sets the OTEL_EXPORTER_OTLP_ENDPOINT environment variable.

When using an HTTP protocol (http/protobuf or http/json), the OTLP SDK automatically appends the /v1/<signal> path (for example /v1/metrics), so the endpoint should not include it. A signal-specific endpoint (under metrics, tracing, or logs) takes precedence over this value for that signal.

metrics

Metrics exporter configuration.

enabled boolean

otel:
  metrics:
    enabled: false

Default: true

Enable metrics export.

endpoint string

otel:
  metrics:
    endpoint: http://prometheus:9090/api/v1/otlp/v1/metrics

OpenTelemetry endpoint URL for metrics export.

When using the http/protobuf protocol, ensure the endpoint path ends with /v1/metrics.

protocol string

otel:
  metrics:
    protocol: grpc

Default: http/protobuf

Options:

  • http/protobuf
  • grpc
  • http/json

Protocol to use when exporting metrics.

export_interval integer

otel:
  metrics:
    export_interval: 30

Default: 60

Metrics export interval in seconds.

tracing

Note: Orca Premium feature

enabled boolean

otel:
  tracing:
    enabled: true

Default: false

Enable tracing export. Requires the vmod-otel license addon.

endpoint string

otel:
  tracing:
    endpoint: http://prometheus:9090/api/v1/otlp/v1/traces

OpenTelemetry endpoint URL for trace export.

When using the http/protobuf protocol, ensure the endpoint path ends with /v1/traces.

protocol string

otel:
  tracing:
    protocol: grpc

Default: http/protobuf

Options:

  • http/protobuf
  • grpc
  • http/json

Protocol to use when exporting traces.

export_interval integer

otel:
  tracing:
    export_interval: 5

Default: 5

Tracing batch export interval in seconds.

sampler string

otel:
  tracing:
    sampler: parentbased_traceidratio

Default: always_on

Trace sampler type. Controls how traces are sampled.

Options:

  • always_on: Sample all traces.
  • always_off: Sample no traces.
  • traceidratio: Sample a fraction of traces based on sampler_arg.
  • parentbased_always_on: Follow parent span’s sampling decision, default to always on.
  • parentbased_always_off: Follow parent span’s sampling decision, default to always off.
  • parentbased_traceidratio: Follow parent span’s sampling decision, default to ratio-based.

sampler_arg number

otel:
  tracing:
    sampler: traceidratio
    sampler_arg: 0.1

Default: 1.0

Sampler argument for ratio-based samplers. A value between 0.0 (sample nothing) and 1.0 (sample everything).

logs

Logs exporter configuration.

enabled boolean

otel:
  logs:
    enabled: true

Default: true (when endpoint is configured)

Enable logs export.

endpoint string

otel:
  logs:
    endpoint: http://loki:3100/otlp/v1/logs

OTLP endpoint URL for logs export. When empty, logs export is disabled.

When using the http/protobuf protocol, ensure the endpoint path ends with /v1/logs.

protocol string

otel:
  logs:
    protocol: grpc

Default: http/protobuf

Options:

  • http/protobuf
  • grpc
  • http/json

Protocol to use when exporting logs.

export_interval integer

otel:
  logs:
    export_interval: 10

Default: 5

Logs export interval in seconds.