OpenTelemetry

The otel section of the firewall’s configuration file, which exports the firewall’s metrics and traces and, when its log_output or audit_log_output is otel, its logs.

Example:

otel:
  endpoint: http://otel-collector.example.com:4318
  tracing:
    enabled: true

A standalone firewall reads this section. Under deployment: integrated it is not read and the firewall sets up no OpenTelemetry, so a firewall run on its own and integrated with a Virtual Registry exports no metrics or traces. Bundled with the Virtual Registry, the firewall’s telemetry goes through the Supervisor’s own otel section.

service_name

otel:
  service_name: artifact-firewall-eu

Type: String

Default: artifact-firewall

The service.name resource attribute, which tells this firewall’s telemetry apart from other services sending to the same collector.

endpoint

otel:
  endpoint: http://otel-collector.example.com:4318

Type: String

OTLP endpoint for every signal that does not set one of its own. Over http/protobuf, the path /v1/<signal> is appended to it.

metrics

otel:
  metrics:
    exporter: prometheus
    prometheus_host: 0.0.0.0

Metrics export.

enabled

otel:
  metrics:
    enabled: false

Type: Boolean

Default: true

Export metrics.

exporter

Type: String

Default: otlp

otlp pushes to an OTLP endpoint. prometheus serves a scrape endpoint on prometheus_host and prometheus_port.

endpoint

otel:
  metrics:
    endpoint: http://otel-collector.example.com:4318/v1/metrics

Type: String

OTLP endpoint for metrics, which overrides the top-level endpoint. It is used as it is, so over http/protobuf it needs the full path.

With the otlp exporter and no endpoint, here or at the top level, metrics are not exported, and a warning at startup says so.

protocol

otel:
  metrics:
    protocol: grpc

Type: String

Default: http/protobuf

OTLP protocol, http/protobuf or grpc.

export_interval

otel:
  metrics:
    export_interval: 30

Type: Integer

Default: 60

Seconds between exports.

prometheus_host

Type: String

Default: localhost

Address of the scrape endpoint. localhost binds loopback only, and so does an empty value. Set 0.0.0.0 to bind every interface.

prometheus_port

otel:
  metrics:
    exporter: prometheus
    prometheus_port: 9100

Type: Integer

Default: 9464

Port of the scrape endpoint.

tracing

otel:
  tracing:
    enabled: true
    sampler: parentbased_traceidratio
    sampler_arg: 0.1

Trace export.

enabled

Type: Boolean

Default: false

Export traces. It needs an endpoint, here or at the top level.

endpoint

otel:
  tracing:
    enabled: true
    endpoint: http://otel-collector.example.com:4318/v1/traces

Type: String

OTLP endpoint for traces, used as it is, as for metrics.

protocol

Type: String

Default: http/protobuf

OTLP protocol, http/protobuf or grpc.

export_interval

Type: Integer

Default: 5

Seconds between batch exports.

sampler

Type: String

Default: always_on

One of always_on, always_off, traceidratio, parentbased_always_on, parentbased_always_off or parentbased_traceidratio.

sampler_arg

Type: Number

Default: 1.0

The ratio of traces kept by a ratio sampler, from 0.0 to 1.0.

logs

otel:
  logs:
    endpoint: http://otel-collector.example.com:4318/v1/logs

Log export.

enabled

Type: Boolean

Default: true once an endpoint is configured

Export logs.

endpoint

Type: String

OTLP endpoint for logs, used as it is, as for metrics.

protocol

Type: String

Default: http/protobuf

OTLP protocol, http/protobuf or grpc.

export_interval

Type: Integer

Default: 5

Seconds between batch exports.


®Varnish Software, Wallingatan 12, 111 60 Stockholm, Organization nr. 556805-6203