125 lines
5.6 KiB
PHP
125 lines
5.6 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Observium
|
|
*
|
|
* This file is part of Observium.
|
|
*
|
|
* @package observium
|
|
* @subpackage poller
|
|
* @copyright (C) Adam Armstrong
|
|
*
|
|
*/
|
|
|
|
if (!empty($agent_data['app']['kamailio'])) {
|
|
$app_id = discover_app($device, 'kamailio');
|
|
|
|
$key_trans_table = [
|
|
'core:bad_URIs_rcvd' => 'corebadURIsrcvd',
|
|
'core:bad_msg_hdr' => 'corebadmsghdr',
|
|
'core:drop_replies' => 'coredropreplies',
|
|
'core:drop_requests' => 'coredroprequests',
|
|
'core:err_replies' => 'coreerrreplies',
|
|
'core:err_requests' => 'coreerrrequests',
|
|
'core:fwd_replies' => 'corefwdreplies',
|
|
'core:fwd_requests' => 'corefwdrequests',
|
|
'core:rcv_replies' => 'corercvreplies',
|
|
'core:rcv_requests' => 'corercvrequests',
|
|
'core:unsupported_methods' => 'coreunsupportedmeth',
|
|
'dns:failed_dns_request' => 'dnsfaileddnsrequest',
|
|
'mysql:driver_errors' => 'mysqldrivererrors',
|
|
'registrar:accepted_regs' => 'registraraccregs',
|
|
'registrar:default_expire' => 'registrardefexpire',
|
|
'registrar:default_expires_range' => 'registrardefexpirer',
|
|
'registrar:max_contacts' => 'registrarmaxcontact',
|
|
'registrar:max_expires' => 'registrarmaxexpires',
|
|
'registrar:rejected_regs' => 'registrarrejregs',
|
|
'shmem:fragments' => 'shmemfragments',
|
|
'shmem:free_size' => 'shmemfreesize',
|
|
'shmem:max_used_size' => 'shmemmaxusedsize',
|
|
'shmem:real_used_size' => 'shmemrealusedsize',
|
|
'shmem:total_size' => 'shmemtotalsize',
|
|
'shmem:used_size' => 'shmemusedsize',
|
|
'siptrace:traced_replies' => 'siptracetracedrepl',
|
|
'siptrace:traced_requests' => 'siptracetracedreq',
|
|
'sl:1xx_replies' => 'sl1xxreplies',
|
|
'sl:200_replies' => 'sl200replies',
|
|
'sl:202_replies' => 'sl202replies',
|
|
'sl:2xx_replies' => 'sl2xxreplies',
|
|
'sl:300_replies' => 'sl300replies',
|
|
'sl:301_replies' => 'sl301replies',
|
|
'sl:302_replies' => 'sl302replies',
|
|
'sl:3xx_replies' => 'sl3xxreplies',
|
|
'sl:400_replies' => 'sl400replies',
|
|
'sl:401_replies' => 'sl401replies',
|
|
'sl:403_replies' => 'sl403replies',
|
|
'sl:404_replies' => 'sl404replies',
|
|
'sl:407_replies' => 'sl407replies',
|
|
'sl:408_replies' => 'sl408replies',
|
|
'sl:483_replies' => 'sl483replies',
|
|
'sl:4xx_replies' => 'sl4xxreplies',
|
|
'sl:500_replies' => 'sl500replies',
|
|
'sl:5xx_replies' => 'sl5xxreplies',
|
|
'sl:6xx_replies' => 'sl6xxreplies',
|
|
'sl:failures' => 'slfailures',
|
|
'sl:received_ACKs' => 'slreceivedACKs',
|
|
'sl:sent_err_replies' => 'slsenterrreplies',
|
|
'sl:sent_replies' => 'slsentreplies',
|
|
'sl:xxx_replies' => 'slxxxreplies',
|
|
'tcp:con_reset' => 'tcpconreset',
|
|
'tcp:con_timeout' => 'tcpcontimeout',
|
|
'tcp:connect_failed' => 'tcpconnectfailed',
|
|
'tcp:connect_success' => 'tcpconnectsuccess',
|
|
'tcp:current_opened_connections' => 'tcpcurrentopenedcon',
|
|
'tcp:current_write_queue_size' => 'tcpcurrentwrqsize',
|
|
'tcp:established' => 'tcpestablished',
|
|
'tcp:local_reject' => 'tcplocalreject',
|
|
'tcp:passive_open' => 'tcppassiveopen',
|
|
'tcp:send_timeout' => 'tcpsendtimeout',
|
|
'tcp:sendq_full' => 'tcpsendqfull',
|
|
'tmx:2xx_transactions' => 'tmx2xxtransactions',
|
|
'tmx:3xx_transactions' => 'tmx3xxtransactions',
|
|
'tmx:4xx_transactions' => 'tmx4xxtransactions',
|
|
'tmx:5xx_transactions' => 'tmx5xxtransactions',
|
|
'tmx:6xx_transactions' => 'tmx6xxtransactions',
|
|
'tmx:UAC_transactions' => 'tmxUACtransactions',
|
|
'tmx:UAS_transactions' => 'tmxUAStransactions',
|
|
'tmx:inuse_transactions' => 'tmxinusetransaction',
|
|
'tmx:local_replies' => 'tmxlocalreplies',
|
|
'usrloc:location-contacts' => 'usrlocloccontacts',
|
|
'usrloc:location-expires' => 'usrloclocexpires',
|
|
'usrloc:location-users' => 'usrloclocusers',
|
|
'usrloc:registered_users' => 'usrlocregusers',
|
|
];
|
|
|
|
$data = [];
|
|
|
|
foreach (explode("\n", $agent_data['app']['kamailio']) as $line) {
|
|
[$key, $val] = explode("=", $line);
|
|
$key = trim($key);
|
|
|
|
if (substr($key, 0, 6) == 'usrloc') {
|
|
$tmp = substr($key, strpos($key, '-') + 1);
|
|
switch ($tmp) {
|
|
case 'contacts':
|
|
case 'expires':
|
|
case 'users':
|
|
$key = 'usrloc:location-' . $tmp;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (isset($key_trans_table[$key])) {
|
|
$data[$key_trans_table[$key]] = (int)trim($val);
|
|
} else {
|
|
print_debug("nick - key is not : $key");
|
|
}
|
|
}
|
|
|
|
update_application($app_id, $data);
|
|
|
|
rrdtool_update_ng($device, 'kamailio', $data, $app_id);
|
|
}
|
|
|
|
// EOF
|