ktg-plugin-marketplace/plugins/voyage/examples/observability/otel-collector-config.yaml
Kjell Tore Guttormsen 48543f63c2 feat(voyage): add examples/observability/ Docker Compose stack — version-pinned per research/01
Step 14 of v4.1 — local-development observability stack with version-pinned
container images:
  - prom/prometheus:v3.0.1
  - prom/node-exporter:v1.10.2 (textfile collector enabled)
  - grafana/grafana:11.4.0
  - otel/opentelemetry-collector-contrib:0.115.0

Two complementary export paths from voyage hooks/scripts/otel-export.mjs:
  - VOYAGE_EXPORT_MODE=textfile → node-exporter textfile collector
  - VOYAGE_EXPORT_MODE=otlp     → otel-collector OTLP/HTTP receiver (:4318)
Both feed Prometheus → Grafana.

Files:
  examples/observability/docker-compose.yml
  examples/observability/otel-collector-config.yaml
  examples/observability/prometheus.yml
  examples/observability/grafana-datasource.yml
  examples/observability/README.md

Verified manifest expected_paths (5 files). docker compose config validation
runs in Step 16 with proper skip-pattern when docker is unavailable.
2026-05-09 09:50:13 +02:00

47 lines
1.2 KiB
YAML

# OpenTelemetry Collector config for voyage v4.1
# Receives OTLP/HTTP push from hooks/scripts/otel-export.mjs (port 4318)
# and exposes a Prometheus scrape endpoint at :8889 for the Prometheus
# container to pull voyage metrics.
receivers:
otlp:
protocols:
http:
endpoint: 0.0.0.0:4318
grpc:
endpoint: 0.0.0.0:4317
processors:
batch:
send_batch_size: 1024
timeout: 5s
# Conservative resource attribute limits — voyage emits small payloads but
# we cap to prevent runaway label-cardinality blowing up Prometheus.
memory_limiter:
check_interval: 5s
limit_mib: 256
spike_limit_mib: 64
exporters:
prometheus:
endpoint: 0.0.0.0:8889
namespace: voyage
send_timestamps: true
metric_expiration: 5m
enable_open_metrics: true
# Debug exporter — echoes every received metric to stderr. Useful for
# local development; comment out in production to reduce log volume.
debug:
verbosity: detailed
sampling_initial: 5
sampling_thereafter: 200
service:
pipelines:
metrics:
receivers: [otlp]
processors: [memory_limiter, batch]
exporters: [prometheus, debug]
telemetry:
logs:
level: info