-
Notifications
You must be signed in to change notification settings - Fork 444
telemetry: native multi-process Prometheus aggregation (prometheus_mp) #1920
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
e-eygin
merged 76 commits into
ai-dynamo:main
from
e-eygin:eeygin/nix-1614-native-mp-prometheus-aggregation
Aug 6, 2026
Merged
Changes from all commits
Commits
Show all changes
76 commits
Select commit
Hold shift + click to select a range
044999a
telemetry: add multiprocess metric-state store (mp_store)
e-eygin f17b312
telemetry: add multiprocess scrape-time collector (mp_collector)
e-eygin 5f71e4e
telemetry: label mp series by pid to guarantee uniqueness
e-eygin 000eaa3
telemetry: add prometheus_mp exporter, plugin, and bind-race election
e-eygin 30f12dd
telemetry: add prometheus_mp multiprocess e2e forking test
e-eygin 38b5093
telemetry: harden mp collector against mid-scrape churn and orphans
e-eygin 2a624a5
docs: document the prometheus_mp multi-process telemetry exporter
e-eygin 0fa45a1
docs: add prometheus_mp plugin README
e-eygin 93f95ae
docs: align prometheus_mp shared-dir guidance with Dynamo
e-eygin b4093af
telemetry: fix codespell (reuse nixlTime::getNs, unparsable spelling)
e-eygin 3bf2139
telemetry: address CodeRabbit review (mp bounds guard, dir iteration,…
e-eygin cd22887
telemetry: rename mp rank label dp_rank -> local_rank
e-eygin 4e69307
telemetry: remove mp store file on clean writer destruction
e-eygin f5de93f
telemetry: add agent_instance label so same-name mp agents stay distinct
e-eygin 4c74834
docs: clarify mp stale TTL is from last update and document agent_ins…
e-eygin ad437a8
docs: note the status label on agent_errors_total in telemetry.md
e-eygin aeed305
Merge branch 'main' into eeygin/nix-1614-native-mp-prometheus-aggrega…
e-eygin aa3f6bd
Merge branch 'main' into eeygin/nix-1614-native-mp-prometheus-aggrega…
e-eygin 4f7036f
telemetry: address prometheus_mp review (ordering, RAII, const, owner_)
e-eygin e982ed3
telemetry: centralize getHostname() into common/hostname.h
e-eygin 6452ac5
telemetry: drop redundant mp prefix from prometheus_mp store types
e-eygin 1cc0fdc
telemetry: check ::write result in prometheus_mp e2e test
e-eygin 0d3ecac
telemetry: prometheus_mp review cleanups (dead API, TTL default, stor…
e-eygin 87b1b94
docs: prometheus_mp private-dir and shared-PID-namespace requirements
e-eygin 8162099
telemetry: prometheus_mp test hygiene + plugin-loader coverage
e-eygin b7c6380
telemetry: don't reap a live prometheus_mp peer on a transient read e…
e-eygin 557c0e6
telemetry: harden prometheus_mp store reads against exceptions
e-eygin b90bc43
telemetry: histogram support for the prometheus_mp exporter
e-eygin 6d0f506
telemetry: fix prometheus_mp plugin-loader test, document owner death
e-eygin fb0a329
telemetry: cut redundant clock reads and zero loads in prometheus_mp
e-eygin 9f18292
telemetry: harden the prometheus_mp e2e test and fix doc/header nits
e-eygin 748ffcd
telemetry: gate prometheus_mp histogram writes on the descriptor
e-eygin 33b1f4e
test: register the prometheus plugin dir once per process
e-eygin efa2818
telemetry: assert stale-store reaping, plus doc and naming fixes
e-eygin 25216b6
telemetry: scope the exporter parity claim to names and semantics
e-eygin 9151633
telemetry: say metric definitions, not series, in the parity claim
e-eygin 728c5a5
telemetry: ignore prometheus_mp stores owned by another user
e-eygin 94baeff
telemetry: centralize the agent_errors_total family name and help
e-eygin dbea2d9
telemetry: tell a sibling owner from a stranger on the scrape port
e-eygin b7dbc34
telemetry: elect the prometheus_mp owner by lock, not by the bind
e-eygin 1fb9fbf
telemetry: harden the prometheus_mp owner election
e-eygin 536ebee
telemetry: warn when the prometheus_mp lock file cannot be opened
e-eygin 8240177
telemetry: ignore a foreign-owned prometheus_mp lock file
e-eygin 40d3ea7
telemetry: clear the prometheus_mp lock file when the election is won
e-eygin 78a6dac
telemetry: say the election locks a file, and skip when chown is denied
e-eygin 2baf0ac
telemetry: qualify the prometheus_mp single-binder guarantee
e-eygin 2c9a97c
telemetry: correct the prometheus_mp stale-handling description
e-eygin a46cf4c
telemetry: bound stale retention by the scrape, not the TTL alone
e-eygin 0636c7d
telemetry: correct exporter counts and gaps in the docs
e-eygin 540cd15
prometheus_mp: harden the store, the clock and the telemetry directory
e-eygin 6c814cc
prometheus_mp: take the endpoint over when the owner dies
e-eygin f01922b
prometheus_mp: mark refreshHeartbeat() nodiscard
e-eygin c629aa1
prometheus_mp: give the on-disk store format its own header
e-eygin 01b4831
prometheus_mp: move endpoint ownership into its own class
e-eygin 33251de
prometheus_mp: give the election back when a takeover fails
e-eygin b715102
Merge remote-tracking branch 'ai-dynamo/main' into eeygin/nix-1614-na…
e-eygin 1b7d8f4
prometheus_mp: keep the election when reclaim() runs on the owner
e-eygin 80c5a05
prometheus_mp: refuse to move over an election that holds the lock
e-eygin 7c1dfcd
prometheus_mp: guard the election move on the lock, not the descriptor
e-eygin 0f615dd
prometheus_mp: give the test telemetry dirs the 0700 they ask operato…
e-eygin bf0ff19
prometheus_mp: document the election move operations
e-eygin 121573d
prometheus_mp: stop the telemetry tests depending on timing and lookups
e-eygin 799e4a4
prometheus_mp: say what a refused election move leaves behind
e-eygin 4570b6d
Merge remote-tracking branch 'ai-dynamo/main' into eeygin/nix-1614-na…
e-eygin f3deeb9
prometheus_mp: drop TIME_WAIT from the takeover comment
e-eygin 72a07b9
prometheus_mp: make an election impossible to overwrite in place
e-eygin fb1aecb
prometheus_mp: publish the owner endpoint as one fixed-size record
e-eygin 58a0642
utils: move scopedFd out of the prometheus_mp plugin
e-eygin fa6ab30
Merge remote-tracking branch 'ai-dynamo/main' into eeygin/nix-1614-na…
e-eygin 6a39475
telemetry: keep the prometheus_mp store on clean shutdown
e-eygin 22c64d4
telemetry: elect the prometheus_mp owner per endpoint
e-eygin f2f6586
telemetry: name prometheus_mp bind strings addresses, not endpoints
e-eygin 5f92735
telemetry: use C++20 starts_with/ends_with for prometheus_mp name checks
e-eygin b9ccedb
telemetry: decide prometheus_mp store liveness by lock, not by pid
e-eygin 572458f
telemetry: state what an unlockable prometheus_mp store really costs
e-eygin 8f25980
prometheus_mp: RAII the store mapping and drop the /proc start-time read
e-eygin File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.