Config-driven monitor - #40
Merged
Merged
Conversation
provide the following monitors: - thread - subprocess (default) - native c (C process) - slurm (based on srun)
Refactor/visualizer
- do not retrieve the filtered processes (user/slurm processes) for multiple metrics multiple times but only once per tick - rss instead of uss (similar to top) - buffering of performance data (e.g. we do not need to read process a second time for user level)
…jumper_ipython_extension into feature/multinode-monitor
- updates in C implementation - fixes in data plotting for high resolution data (~20Hz)
- fixed missed data point rate in Python-based monitors - add benchmark
- benchmark fixes
- benchmark fixes
- add sanity check for metrics at beginning of benchmark
- improve sanity check
- fix sanity check and benchmark
- tidy up monitor processes properly
- use float parsing instead int parsing for frequencies to allow frequencies < 1
- fix in process count for thread backend
- proper packaging, incl. gcc build of native c monitor when calling perfmonitor_start - documentation updates in readme and doc
- sanity check, docs and build
…jumper_jupyter_performance into feature/multinode-monitor
… in-place via Plotly.react instead
fix/live-plots-leak
…eline - Introduce self.default_subsets to replace hardcoded metric subset defaults - Load default_subsets from config in _load_subsets_from_config() - Move _resolve_metric_subsets call before level check in plot() to ensure GPU detection happens first - Prevent duplicate gpu/gpu_all metrics when default_subsets already contains them - Update plot method signatures to use None instead of tuple default for metric_subsets
Add docs/guides/custom-collector.md and docs/guides/visualizing-custom-collector-metrics.md. Replace the two large README sections with short teasers linking to the new guides. Add a collector tip to the custom-monitor guide. Register both pages in mkdocs nav.
…, metric_demo.ipynb
Prepares for future C collector config under config/c/; each backend subdirectory owns its loader, config/utils.py reduced to instantiate().
Replace monolithic collector.c with a structured layout mirroring the
Python metrics hierarchy:
native_c/
monitor.h — shared TickContext + CCollector interface
monitor.c — main(), registry, emit_ready/emit_tick
metrics/cpu/ — /proc/<pid>/stat + /proc/stat
metrics/memory/ — /proc/<pid>/statm + /proc/meminfo
metrics/io/ — /proc/<pid>/io + /proc/diskstats
metrics/gpu/ — NVML via dynamic loading
Active collectors are selected via --collectors arg driven by
config/c/collectors.yaml, loaded by CSubprocessPerformanceMonitor.
Makefile updated to compile all five translation units via make.
- Replace custom-collector.md with python-custom-collector.md and c-custom-collector.md - Update README.md and monitor/README.md with links to both guides - Register both guides in mkdocs.yml nav
This was referenced Jun 15, 2026
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Changes: