LinkMesh

Search docs, blog and changelog

ENDE

Snippets · Destinations

Prove data is flowing with the debug exporter

Nothing is arriving in the backend and you cannot tell which side is at fault. Print what the collector receives, and you know.

Signals
Logs
Source
OTLP
Destination
Collector log (debug exporter)
OpenTelemetry Collector YAML
receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317

exporters:
  debug:
    verbosity: detailed
    sampling_initial: 5
    sampling_thereafter: 200

service:
  pipelines:
    logs:
      receivers: [otlp]
      exporters: [debug]
Grafana Alloy
// stability: experimental — start Alloy with --stability.level=experimental,
// or it exits at startup instead of running without the component.

otelcol.receiver.otlp "default" {
	grpc {
		endpoint = "0.0.0.0:4317"
	}

	output {
		logs = [otelcol.exporter.debug.default.input]
	}
}

otelcol.exporter.debug "default" {
	verbosity           = "detailed"
	sampling_initial    = 5
	sampling_thereafter = 200
}

Alloy runs components below generally-available only when you ask it to, so start it with --stability.level=experimental. Without the flag Alloy exits at startup instead of running with the component disabled.

Complete config files, each checked with the tool's own validate command (otelcol-contrib v0.161.0, Grafana Alloy v1.19.2).

The gotcha

The logging exporter that older blog posts still show is deprecated in favour of debug. Keep the sampling settings: detailed verbosity on a busy pipeline floods the collector log otherwise.

Manage this across a fleet

LinkMesh manages collector configuration across a fleet from one self-hosted control plane, so a change like this is made once rather than host by host. The first 25 Collectors are free after a no-card registration in the OpenSight Customer Portal (5 without one).