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.
31 lines
1 KiB
YAML
31 lines
1 KiB
YAML
# Prometheus config for voyage v4.1 observability stack.
|
|
# Two scrape targets:
|
|
# 1. node-exporter — picks up voyage.prom files written by hooks/scripts/otel-export.mjs
|
|
# when VOYAGE_EXPORT_MODE=textfile (default location: ./voyage-textfile/)
|
|
# 2. otel-collector — exposes voyage metrics from OTLP push when VOYAGE_EXPORT_MODE=otlp
|
|
|
|
global:
|
|
scrape_interval: 15s
|
|
evaluation_interval: 15s
|
|
external_labels:
|
|
monitor: voyage-local
|
|
|
|
scrape_configs:
|
|
# Path A: voyage textfile mode → node-exporter textfile collector
|
|
- job_name: voyage-textfile
|
|
static_configs:
|
|
- targets: ["node-exporter:9100"]
|
|
labels:
|
|
voyage_export_mode: textfile
|
|
|
|
# Path B: voyage OTLP mode → otel-collector prometheus exporter
|
|
- job_name: voyage-otlp
|
|
static_configs:
|
|
- targets: ["otel-collector:8889"]
|
|
labels:
|
|
voyage_export_mode: otlp
|
|
|
|
# Self-scrape so Prometheus shows its own up=1 in dashboards.
|
|
- job_name: prometheus
|
|
static_configs:
|
|
- targets: ["localhost:9090"]
|