Skip to content

Commit b19090e

Browse files
committed
docs: add README
1 parent a57a46a commit b19090e

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

monitor.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Module monitor
2+
3+
Caryatid supports a "monitor" to see the activity of the different modules and topics in a process. It's implemented as an overlay to the message bus, which tracks reads/writes to each topic in an in-memory `DashMap`.
4+
5+
This monitor is useful for debugging slowness/stoppages, or for understanding the interactions between modules. It's not intended to serve as a form of instrumentation.
6+
7+
Below is how to enable it:
8+
```toml
9+
[monitor]
10+
output = "monitor.json" # Write to a file named monitor.json
11+
frequency_secs = 5.0 # every 5 seconds
12+
```
13+
14+
Every module shows a list of "reads" (streams it reads from) and "writes" (streams it writes to).
15+
16+
We track this information for reads:
17+
- `read`: how many messages this module has read from this topic.
18+
- `unread`: how many messages are available for this module on this topic. This is based on how many messages were published by another module, it will be an underestimate if messages are sent over rabbitmq.
19+
- `pending_for`: how long has this module been waiting to read a message on this topic.
20+
21+
We track this information for writes:
22+
- `written`: how many messages this module has written to this topic.
23+
- `pending_for`: how long has this module been waiting to write a message to this topic. If this is set, the topic is congested; some module is subscribed to it but not reading from it.

0 commit comments

Comments
 (0)