Module | Raindrops::Linux |
In: |
lib/raindrops/linux.rb
(CVS)
lib/raindrops/linux.rb (CVS) |
For reporting TCP ListenStats, users of older \Linux kernels need to ensure that the the "inet_diag" and "tcp_diag" kernel modules are loaded as they do not autoload correctly. The inet_diag facilities of \Raindrops is useful for periodic snapshot reporting of listen queue sizes.
Instead of snapshotting, Raindrops::Aggregate::LastDataRecv may be used to aggregate statistics from all accepted sockets as they arrive based on the last_data_recv field in Raindrops::TCP_Info
PROC_NET_UNIX_ARGS | = | %w(/proc/net/unix) | The standard proc path for active UNIX domain sockets, feel free to call String#replace on this if your /proc is mounted in a non-standard location for whatever reason | |
PROC_NET_UNIX_ARGS | = | %w(/proc/net/unix) | The standard proc path for active UNIX domain sockets, feel free to call String#replace on this if your /proc is mounted in a non-standard location for whatever reason |
Get ListenStats from an array of paths
Socket state mapping from integer => symbol, based on socket_state enum from include/linux/net.h in the \Linux kernel:
typedef enum { SS_FREE = 0, /* not allocated */ SS_UNCONNECTED, /* unconnected to any socket */ SS_CONNECTING, /* in process of connecting */ SS_CONNECTED, /* connected to socket */ SS_DISCONNECTING /* in process of disconnecting */ } socket_state;
This method may be significantly slower than its tcp_listener_stats counterpart due to the latter being able to use inet_diag via netlink. This parses /proc/net/unix as there is no other (known) way to expose Unix domain socket statistics over netlink.
Get ListenStats from an array of paths
Socket state mapping from integer => symbol, based on socket_state enum from include/linux/net.h in the \Linux kernel:
typedef enum { SS_FREE = 0, /* not allocated */ SS_UNCONNECTED, /* unconnected to any socket */ SS_CONNECTING, /* in process of connecting */ SS_CONNECTED, /* connected to socket */ SS_DISCONNECTING /* in process of disconnecting */ } socket_state;
This method may be significantly slower than its tcp_listener_stats counterpart due to the latter being able to use inet_diag via netlink. This parses /proc/net/unix as there is no other (known) way to expose Unix domain socket statistics over netlink.