Commit e5d1fcb
committed
feat: add memory tracking and custom telemetry providers
Complete Phase 4 of telemetry enhancements with memory metrics
and extensible provider system for custom integrations.
Memory Tracking (#11):
- System-level memory tracking (Linux /proc/self/status)
- Mailbox memory estimation based on depth
- Clear documentation of Rust memory profiling limitations
Memory Metrics Added:
- joerl_system_memory_bytes (process RSS, Linux only)
- joerl_mailbox_memory_bytes{type} (estimated per-actor)
- joerl_mailbox_memory_total_bytes (total estimate)
MemoryMetrics API:
- update_system_memory() - Track process memory (Linux)
- mailbox_memory_typed(type, depth, avg_size) - Estimate mailbox memory
- total_mailbox_memory(total_bytes) - Track total estimation
- Linux /proc/self/status parsing for RSS memory
Custom Telemetry Providers (#12):
- TelemetryProvider trait with 6 lifecycle hooks
- set_telemetry_provider() for registration
- Provider invocation helpers for future integration
TelemetryProvider Hooks:
- on_actor_spawned(actor_type, pid)
- on_actor_stopped(actor_type, pid, reason)
- on_actor_panicked(actor_type, pid, error)
- on_message_sent(from_pid, to_pid)
- on_message_received(pid)
- on_supervisor_restart(child_type, strategy)
Provider Features:
- Single registration (once only)
- Default no-op implementations for all hooks
- Thread-safe (Send + Sync requirement)
- Ready for actor system integration
Documentation:
- Added Memory Tracking section to TELEMETRY.md
- Explained Rust memory profiling limitations
- Recommended external tools (dhat-rs, valgrind, heaptrack)
- Added dhat-rs integration example
- Added Custom Telemetry Providers section
- Documented use cases: custom backends, logging, auditing
- Provided StatsD, logging, and audit provider examples
- Updated TODO.md: 11/12 tasks complete (91.7%)
- Phase 4 (Advanced Features) 100% complete
Files Modified:
- joerl/src/telemetry.rs: Added MemoryMetrics (80 lines) and TelemetryProvider (150 lines)
- TELEMETRY.md: Added Memory Tracking and Custom Providers sections
- TODO.md: Marked tasks #11 and #12 complete
Progress: 11/12 telemetry tasks complete (91.7%)
Only remaining: Distributed System Metrics (#2) - requires distributed module
Tests: All 178 tests pass (3 new doc tests), clippy clean1 parent aa232a8 commit e5d1fcb
3 files changed
Lines changed: 533 additions & 18 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
864 | 864 | | |
865 | 865 | | |
866 | 866 | | |
| 867 | + | |
| 868 | + | |
| 869 | + | |
| 870 | + | |
| 871 | + | |
| 872 | + | |
| 873 | + | |
| 874 | + | |
| 875 | + | |
| 876 | + | |
| 877 | + | |
| 878 | + | |
| 879 | + | |
| 880 | + | |
| 881 | + | |
| 882 | + | |
| 883 | + | |
| 884 | + | |
| 885 | + | |
| 886 | + | |
| 887 | + | |
| 888 | + | |
| 889 | + | |
| 890 | + | |
| 891 | + | |
| 892 | + | |
| 893 | + | |
| 894 | + | |
| 895 | + | |
| 896 | + | |
| 897 | + | |
| 898 | + | |
| 899 | + | |
| 900 | + | |
| 901 | + | |
| 902 | + | |
| 903 | + | |
| 904 | + | |
| 905 | + | |
| 906 | + | |
| 907 | + | |
| 908 | + | |
| 909 | + | |
| 910 | + | |
| 911 | + | |
| 912 | + | |
| 913 | + | |
| 914 | + | |
| 915 | + | |
| 916 | + | |
| 917 | + | |
| 918 | + | |
| 919 | + | |
| 920 | + | |
| 921 | + | |
| 922 | + | |
| 923 | + | |
| 924 | + | |
| 925 | + | |
| 926 | + | |
| 927 | + | |
| 928 | + | |
| 929 | + | |
| 930 | + | |
| 931 | + | |
| 932 | + | |
| 933 | + | |
| 934 | + | |
| 935 | + | |
| 936 | + | |
| 937 | + | |
| 938 | + | |
| 939 | + | |
| 940 | + | |
| 941 | + | |
| 942 | + | |
| 943 | + | |
| 944 | + | |
| 945 | + | |
| 946 | + | |
| 947 | + | |
| 948 | + | |
| 949 | + | |
| 950 | + | |
| 951 | + | |
| 952 | + | |
| 953 | + | |
| 954 | + | |
| 955 | + | |
| 956 | + | |
| 957 | + | |
| 958 | + | |
| 959 | + | |
| 960 | + | |
| 961 | + | |
| 962 | + | |
| 963 | + | |
| 964 | + | |
| 965 | + | |
| 966 | + | |
| 967 | + | |
| 968 | + | |
| 969 | + | |
| 970 | + | |
| 971 | + | |
| 972 | + | |
| 973 | + | |
| 974 | + | |
| 975 | + | |
| 976 | + | |
| 977 | + | |
| 978 | + | |
| 979 | + | |
| 980 | + | |
| 981 | + | |
| 982 | + | |
| 983 | + | |
| 984 | + | |
| 985 | + | |
| 986 | + | |
| 987 | + | |
| 988 | + | |
| 989 | + | |
| 990 | + | |
| 991 | + | |
| 992 | + | |
| 993 | + | |
| 994 | + | |
| 995 | + | |
| 996 | + | |
| 997 | + | |
| 998 | + | |
| 999 | + | |
| 1000 | + | |
| 1001 | + | |
| 1002 | + | |
| 1003 | + | |
| 1004 | + | |
| 1005 | + | |
| 1006 | + | |
| 1007 | + | |
| 1008 | + | |
| 1009 | + | |
| 1010 | + | |
| 1011 | + | |
| 1012 | + | |
| 1013 | + | |
| 1014 | + | |
| 1015 | + | |
| 1016 | + | |
| 1017 | + | |
| 1018 | + | |
| 1019 | + | |
| 1020 | + | |
| 1021 | + | |
| 1022 | + | |
| 1023 | + | |
| 1024 | + | |
| 1025 | + | |
| 1026 | + | |
| 1027 | + | |
| 1028 | + | |
| 1029 | + | |
| 1030 | + | |
| 1031 | + | |
| 1032 | + | |
| 1033 | + | |
| 1034 | + | |
| 1035 | + | |
| 1036 | + | |
| 1037 | + | |
| 1038 | + | |
| 1039 | + | |
| 1040 | + | |
| 1041 | + | |
| 1042 | + | |
| 1043 | + | |
| 1044 | + | |
| 1045 | + | |
| 1046 | + | |
| 1047 | + | |
| 1048 | + | |
| 1049 | + | |
| 1050 | + | |
| 1051 | + | |
| 1052 | + | |
| 1053 | + | |
| 1054 | + | |
| 1055 | + | |
| 1056 | + | |
| 1057 | + | |
| 1058 | + | |
| 1059 | + | |
| 1060 | + | |
| 1061 | + | |
| 1062 | + | |
| 1063 | + | |
| 1064 | + | |
| 1065 | + | |
| 1066 | + | |
| 1067 | + | |
| 1068 | + | |
| 1069 | + | |
| 1070 | + | |
867 | 1071 | | |
868 | 1072 | | |
869 | 1073 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
292 | 292 | | |
293 | 293 | | |
294 | 294 | | |
295 | | - | |
296 | | - | |
| 295 | + | |
| 296 | + | |
297 | 297 | | |
298 | 298 | | |
299 | 299 | | |
300 | | - | |
301 | | - | |
302 | | - | |
303 | | - | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
304 | 308 | | |
305 | | - | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
306 | 325 | | |
307 | 326 | | |
308 | 327 | | |
309 | | - | |
310 | | - | |
| 328 | + | |
| 329 | + | |
311 | 330 | | |
312 | 331 | | |
313 | 332 | | |
314 | 333 | | |
315 | | - | |
316 | | - | |
317 | | - | |
318 | | - | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
319 | 364 | | |
320 | 365 | | |
321 | 366 | | |
322 | 367 | | |
323 | 368 | | |
324 | | - | |
| 369 | + | |
325 | 370 | | |
326 | | - | |
| 371 | + | |
327 | 372 | | |
328 | 373 | | |
329 | 374 | | |
| |||
343 | 388 | | |
344 | 389 | | |
345 | 390 | | |
346 | | - | |
| 391 | + | |
347 | 392 | | |
348 | 393 | | |
349 | | - | |
350 | | - | |
| 394 | + | |
| 395 | + | |
351 | 396 | | |
352 | 397 | | |
353 | 398 | | |
| |||
0 commit comments