Messages from GNU GPL sniffer sensor service
Voipmonitor by default uses 'daemon' facility of a syslog to store status messages.
it is stored to /var/log/syslog
Messages file Change
You can find useful to store status info from voipmonitor to different file: For rsyslog use this in /etc/rsyslog.conf
if $programname == 'voipmonitor' and $syslogseverity <= '7' then /var/log/voipmon.log & ~
Status line details
calls[14527,r:5241][14428,r:5350] Absolute calls counter. This counts structs in memory for INVITEs(call-ids) and r:for REGISTERs. in Second bracket is amount of structs before final packets processing.
call/packet counters per second.
C : number of calls / second, X/-Y: X is number of newly created structs for calls, Y is amount of removed structs r : number of registers /second, X/-Y X is number of newly created structs for registers, Y is amount of removed structs S : X/Y - X is number of valid SIP packets / second on sip ports. Y is number of all packets on sip ports. SR: number of SIP register packets, SM: number of SIP messages packets, R : number of RTP packets / second of registered calls by voipmonitor per second. A : all packets per second
C=CDR_queue M=Message_queue R=Register_queue L=LiveSniffer_queue Cl=Cleanspool queue
SQLf reported when query_cache enabled in sensors config
A: number of % of used heap memory.If 100 voipmonitor is not able to process packets in realtime due to CPU or I/O. B: number of % used memory in packetbuffer. C: % used for async write buffers (if 100% I/O is blocking and heap will grow and than ring buffer will get full and then packet loss will occur)
total network throughput
[2614.7Mb/s;24.8%/19.6%] Throughput thru this 'dag0' interface 2614.7Mb/s Usage of reading thread from this interface 24.8% Usage of thread making blocksof packets for processing with t0 thread 19.6% (this stat is printed per sniffing interface where packets were visible)
This is %CPU utilization for thread 0. Thread 0 is process reading from kernel ring buffer. Once it is over 90% it means that the current setup is hitting limit processing packets from network card. Please write to firstname.lastname@example.org if you hit this limit.
This is %CPU utilization for thread 1. Thread 1 is process reading packets from thread 0, adding it to the buffer and compress it (if enabled).
number of files in a queue
MBs in tar buffer
threads used for taring - its consumption
pb:10.5/ - packetbuffer - out of the buffer d:39.2/ - structs create for processing in t2 s:24.6/ - SIP - parse e:17.3/ - SIP - calls/messages search, struct creation c:6.8/ - process_packets - calls/messages g:6.4/ - process_packets - registers r:7.3/ - process_packets - RTP rm:24.6/ - RTP - packets shift, prepare for processing rh:16.7/ - RTP - search hash rd:19.3/ - RTP - move to read queue
Adding new thread is automatic
'd' is running after pb, if 'd' > 50%, new thread 's' (reasembles, sip parse) if 's' > 50%, new thread 'e' (callid search + structs create for calls), if 'e' > 50%, new thread 'c' (calls) if 'c' > 50%, new thread 'g' (registers) if 'g' > 50%, new thread 'r' (rtp)
if thread 'r|g|c|e|s' consuming < N% remove it.
[658.8%/46.7m/15t] Means that 15threads processing RTP, peak thread 46.7%, Sum 658.8%
[N0|N1|N...] %CPU utilization when compressing pcap files or when compressing internal memory if tar=yes (which is by default) number of threads grows automatically
RSS: resident size, which is an accurate representation of how much actual physical memory sniffer is consuming. in MB VSZ: virtual size of a process, which is the sum of memory it is actually using, memory it has mapped into itself (for instance the video card’s RAM for the X server), files on disk that have been mapped into it (most notably shared libraries), and memory shared with other processes. VIRT represents how much memory the program is able to access at the present moment.
[11.90 10.93 10.71] Load averages in last 1,5,10 minutes