|
86 | 86 | {2, ?MILLISECOND, erlang_uptime_seconds, gauge, "Node uptime", uptime}
|
87 | 87 | ]},
|
88 | 88 |
|
| 89 | + {node_memory, [ |
| 90 | + {2, undefined, memory_code_module_bytes, gauge, "Code module memory footprint", code}, |
| 91 | + {2, undefined, memory_client_connection_reader_bytes, gauge, "Client connection reader processes footprint in bytes", connection_readers}, |
| 92 | + {2, undefined, memory_client_connection_writer_bytes, gauge, "Client connection writer processes footprint in bytes", connection_writers}, |
| 93 | + {2, undefined, memory_client_connection_channel_bytes, gauge, "Client connection channel processes footprint in bytes", connection_channels}, |
| 94 | + {2, undefined, memory_client_connection_other_bytes, gauge, "Client connection other processes footprint in bytes", connection_other}, |
| 95 | + {2, undefined, memory_classic_queue_erlang_process_bytes, gauge, "Classic queue processes footprint in bytes", queue_procs}, |
| 96 | + {2, undefined, memory_quorum_queue_erlang_process_bytes, gauge, "Quorum queue processes footprint in bytes", quorum_queue_procs}, |
| 97 | + {2, undefined, memory_quorum_queue_dlx_erlang_process_bytes, gauge, "Quorum queue DLX worker processes footprint in bytes", quorum_queue_dlx_procs}, |
| 98 | + {2, undefined, memory_stream_erlang_process_bytes, gauge, "Stream processes footprint in bytes", stream_queue_procs}, |
| 99 | + {2, undefined, memory_stream_replica_reader_erlang_process_bytes, gauge, "Stream replica reader processes footprint in bytes", stream_queue_replica_reader_procs}, |
| 100 | + {2, undefined, memory_stream_coordinator_erlang_process_bytes, gauge, "Stream coordinator processes footprint in bytes", stream_queue_coordinator_procs}, |
| 101 | + {2, undefined, memory_plugin_bytes, gauge, "Total plugin footprint in bytes", plugins}, |
| 102 | + {2, undefined, memory_modern_metadata_store_bytes, gauge, "Modern metadata store footprint in bytes", metadata_store}, |
| 103 | + {2, undefined, memory_other_erlang_process_bytes, gauge, "Other processes footprint in bytes", other_proc}, |
| 104 | + {2, undefined, memory_metrics_bytes, gauge, "Metric table footprint in bytes", metrics}, |
| 105 | + {2, undefined, memory_management_stats_db_bytes, gauge, "Management stats database footprint in bytes", mgmt_db}, |
| 106 | + {2, undefined, memory_classic_metadata_store_bytes, gauge, "Classic metadata store footprint in bytes", mnesia}, |
| 107 | + {2, undefined, memory_quorum_queue_ets_table_bytes, gauge, "Quorum queue ETS tables footprint in bytes", quorum_ets}, |
| 108 | + {2, undefined, memory_modern_metadata_store_ets_table_bytes, gauge, "Modern metadata store ETS tables footprint in bytes", metadata_store_ets}, |
| 109 | + {2, undefined, memory_other_ets_table_bytes, gauge, "Other ETS tables footprint in bytes", other_ets}, |
| 110 | + {2, undefined, memory_binary_heap_bytes, gauge, "Binary heap size in bytes", binary}, |
| 111 | + {2, undefined, memory_message_index_bytes, gauge, "Message index footprint in bytes", msg_index}, |
| 112 | + {2, undefined, memory_atom_table_bytes, gauge, "Atom table size in bytes", atom}, |
| 113 | + {2, undefined, memory_other_system_bytes, gauge, "Other runtime footprint in bytes", other_system}, |
| 114 | + {2, undefined, memory_runtime_allocated_unused_bytes, gauge, "Runtime allocated but unused blocks size in bytes", allocated_unused}, |
| 115 | + {2, undefined, memory_runtime_reserved_unallocated_bytes, gauge, "Runtime reserved but unallocated blocks size in bytes", reserved_unallocated} |
| 116 | + ]}, |
| 117 | + |
89 | 118 | {node_persister_metrics, [
|
90 | 119 | {2, undefined, io_read_ops_total, counter, "Total number of I/O read operations", io_read_count},
|
91 | 120 | {2, undefined, io_read_bytes_total, counter, "Total number of I/O bytes read", io_read_bytes},
|
|
127 | 156 | {4, undefined, auth_attempts_detailed_failed_total, counter, "Total number of failed authentication attempts with source info"}
|
128 | 157 | ]},
|
129 | 158 |
|
130 |
| -%%% Those metrics have reference only to a queue name. This is the only group where filtering (e.g. by vhost) makes sense. |
| 159 | + %%% These metrics only reference a queue name. This is the only group where filtering (e.g. by vhost) makes sense. |
131 | 160 | {queue_coarse_metrics, [
|
132 | 161 | {2, undefined, queue_messages_ready, gauge, "Messages ready to be delivered to consumers"},
|
133 | 162 | {3, undefined, queue_messages_unacked, gauge, "Messages delivered to consumers but not yet acknowledged"},
|
@@ -660,6 +689,38 @@ get_data(vhost_status, _, _) ->
|
660 | 689 | false -> 0
|
661 | 690 | end}
|
662 | 691 | || VHost <- rabbit_vhost:list() ];
|
| 692 | +get_data(node_memory, _, _) -> |
| 693 | + BreakdownPL = rabbit_vm:memory(), |
| 694 | + KeysOfInterest = [ |
| 695 | + code, |
| 696 | + connection_readers, |
| 697 | + connection_writers, |
| 698 | + connection_channels, |
| 699 | + connection_other, |
| 700 | + queue_procs, |
| 701 | + quorum_queue_procs, |
| 702 | + quorum_queue_dlx_procs, |
| 703 | + stream_queue_procs, |
| 704 | + stream_queue_replica_reader_procs, |
| 705 | + stream_queue_coordinator_procs, |
| 706 | + plugins, |
| 707 | + metadata_store, |
| 708 | + other_proc, |
| 709 | + metrics, |
| 710 | + mgmt_db, |
| 711 | + mnesia, |
| 712 | + quorum_ets, |
| 713 | + metadata_store_ets, |
| 714 | + other_ets, |
| 715 | + binary, |
| 716 | + msg_index, |
| 717 | + atom, |
| 718 | + other_system, |
| 719 | + allocated_unused, |
| 720 | + reserved_unallocated |
| 721 | + ], |
| 722 | + Data = maps:to_list(maps:with(KeysOfInterest, maps:from_list(BreakdownPL))), |
| 723 | + [{node_memory, Data}]; |
663 | 724 | get_data(exchange_bindings, _, _) ->
|
664 | 725 | Exchanges = lists:foldl(fun
|
665 | 726 | (#exchange{internal = true}, Acc) ->
|
|
0 commit comments