Feature: Profiling Hooks #206
Draft
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.
Profiling Feature Overview
PROFILErequests over existing control links and aggregate JSON snapshots across all connected publishers/channels.Key Details
src/ezmsg/core/profiling.pytrack rolling counts/bytes and buffer lease durations;Backpressureoptionally emits timings per client.src/ezmsg/core/pubclient.py) record msg/byte rates and backpressure lease timing; channels (src/ezmsg/core/messagechannel.py) capture per-subscriber processing time and last transport mode (local|shm|tcp), plus subscriber handles for readability.src/ezmsg/core/graphserver.py) understands new protocol commandsPROFILE/PROFILE_DATA(src/ezmsg/core/netprotocol.py), gathers profiles, and exposes them viaGraphService.profile(window_s).python -m ezmsg.core profile --window 2.0prints aggregated JSON, including per-publisher/channel stats.handle=when creating to label profiles; defaults to the topic/address.Why It Matters
ez.subscribercallbacks.Usage Example
Notable Outputs