Skip to content

fix(tools): make Args the single source of truth for remote_write_ip - #548

Draft
milindsrivastava1997 wants to merge 1 commit into
mainfrom
546-remote-write-ip-none
Draft

fix(tools): make Args the single source of truth for remote_write_ip#548
milindsrivastava1997 wants to merge 1 commit into
mainfrom
546-remote-write-ip-none

Conversation

@milindsrivastava1997

@milindsrivastava1997 milindsrivastava1997 commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

Summary

Fixes #546.

cfg.streaming.remote_write.ip has been a dead null since PR #469 replaced the OmegaConf resolver that used to populate it with a plain per-script args.remote_write_ip = provider.get_node_ip(...) — a value only arroyo.py ever reads. generate_prometheus_config still reads cfg.streaming.remote_write.ip directly, so it silently baked http://None:<port>/... into prometheus.yml for every non-arroyo streaming engine (e.g. precompute). Prometheus then can't remote-write any samples in, the query engine has no data, and client queries block forever waiting for data that never arrives — the symptom reported in #546.

Args.__init__ (experiment_utils/config.py) now builds the provider itself and sets both self.remote_write_ip and cfg.streaming.remote_write.ip from that one place, so every script gets the correct value automatically instead of each one re-deriving (and potentially forgetting) it. Scripts that used to call create_provider(cfg) right alongside config.Args(cfg) now just read args.provider.

cfg.streaming.remote_write.ip has been a dead null since PR #469
replaced the OmegaConf resolver that used to populate it with a plain
per-script `args.remote_write_ip = provider.get_node_ip(...)` — a
value only arroyo.py ever read. generate_prometheus_config still reads
cfg.streaming.remote_write.ip directly, so it silently baked
http://None:<port>/... into prometheus.yml for every non-arroyo
streaming engine, causing remote_write to fail and precompute-engine
queries to hang forever waiting on data that never arrives (#546).

Args.__init__ now builds the provider itself and sets both
self.remote_write_ip and cfg.streaming.remote_write.ip from that one
place, so every script gets it automatically instead of each one
re-deriving (and potentially forgetting) it. Scripts that used to call
create_provider(cfg) right alongside config.Args(cfg) now just read
args.provider.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
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.

precompute e2e experiments hang forever waiting on prometheus-client container

1 participant