Skip to content

chore(oo): single instance per host and drop Vector self-metrics - #3004

Merged
forgetso merged 1 commit into
mainfrom
chore/oo-single-instance-drop-vector-metrics
Aug 5, 2026
Merged

chore(oo): single instance per host and drop Vector self-metrics#3004
forgetso merged 1 commit into
mainfrom
chore/oo-single-instance-drop-vector-metrics

Conversation

@forgetso

@forgetso forgetso commented Aug 5, 2026

Copy link
Copy Markdown
Member

Summary

  • oo1.prosopo.io and oo2.prosopo.io are separate machines, but docker-compose.oo1.yml was starting both an oo1 and an oo2 container on the same host, sharing /data/oo. Two openobserve processes were racing each other over the same WAL and parquet tree, doubling CPU and disk writes on tiger-stairs. Caddy's fallback upstream also targeted oo2:5081, but 5081 is the host-side mapping — the container listens on 5080 internally, so the fallback never actually worked.
  • Simplified oo1.Caddyfile reverse_proxy to a single upstream (oo1:5080), no lb_policy block.
  • Removed Vector's internal_metrics source + transform from vector.toml, and stripped vector_metrics_format from both prometheus_remote_write sink inputs arrays. Vector fans every histogram bucket into its own Prometheus series → its own OpenObserve stream; this was responsible for ~1,000 low-value metric streams that dominated metastore size and compaction cost.

Only Vector's metrics pipeline is affected. All log pipelines (provider, mongo, caddy, redis, docker events, Vector's own internal_logs) are untouched. Host / cAdvisor / Redis / Mongo / Caddy exporter metrics still ship as before.

Test plan

  • docker compose -f captcha/docker/docker-compose.oo1.yml --profile production config parses cleanly
  • Deploy on tiger-stairs (oo1 host): only oo1 + caddy come up; oo.prosopo.io still serves the UI and ingest endpoints
  • Vector agent on a provider restarts cleanly with the new config; log pipelines still land in the expected *_provider_* streams in OpenObserve
  • No new vector_* metric streams created after the Vector image is rolled out to a provider

🤖 Generated with Claude Code

oo1.prosopo.io and oo2.prosopo.io are separate hosts, but the oo1
compose file was running both containers on the same host with a
shared /data/oo bind mount, so two openobserve processes were racing
each other on the same WAL and parquet tree. That doubled CPU and
disk writes on tiger-stairs, and Caddy's fallback upstream targeted
the wrong port (5081 is the host-side mapping) so oo2 never actually
served a request anyway.

Also stop shipping Vector's internal_metrics to OpenObserve. It fans
every histogram bucket into a separate stream and was responsible
for ~1,000 metric streams that nothing dashboards on, dominating
the metastore size and per-flush compaction work.

- Remove the oo2 service from docker-compose.oo1.yml
- Simplify oo1.Caddyfile reverse_proxy to a single upstream
- Drop [sources.vector_metrics] + [transforms.vector_metrics_format]
  and remove them from both prometheus_remote_write sinks

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@forgetso
forgetso merged commit 3d0d629 into main Aug 5, 2026
11 checks passed
@forgetso
forgetso deleted the chore/oo-single-instance-drop-vector-metrics branch August 5, 2026 14:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant