Observium_CE/includes/polling/ports/juniper-cos-mib.inc.php

73 lines
2.1 KiB
PHP

<?php
/**
* Observium
*
* This file is part of Observium.
*
* @package observium
* @subpackage poller
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2019 Observium Limited
*
*/
// JUNIPER-COS-MIB Queue Stats
$port_module = 'jnx_cos_qstat';
if ($ports_modules[$port_module] && $port_stats_count)
{
echo("JUNIPER-COS-MIB Queue Stats ");
$qstat_oids = array('jnxCosQstatQedPkts', 'jnxCosQstatQedBytes', 'jnxCosQstatTxedPkts', 'jnxCosQstatTxedBytes', 'jnxCosQstatTailDropPkts', 'jnxCosQstatTotalRedDropPkts', 'jnxCosQstatTotalRedDropBytes');
$q_names = snmpwalk_cache_oid($device, 'jnxCosFcIdToFcName', array(), "JUNIPER-COS-MIB");
$q_numbers = snmpwalk_cache_oid($device, 'jnxCosFcQueueNr', array(), "JUNIPER-COS-MIB");
//$qstats = snmpwalk_cache_oid($device, array_shift($qstat_oids), array(), "JUNIPER-COS-MIB");
$process_port_functions[$port_module] = $GLOBALS['snmp_status'];
if ($GLOBALS['snmp_status'])
{
$q_names = snmpwalk_cache_oid($device, 'jnxCosFcFabricPriority', $q_names, "JUNIPER-COS-MIB");
$queues = array();
foreach($q_names AS $index => $data)
{
$queues[$index]['queue'] = $q_numbers[$data['jnxCosFcIdToFcName']]['jnxCosFcQueueNr'];
if(isset($data['jnxCosFcIdToFcName'])) { $queues[$index]['name'] = $data['jnxCosFcIdToFcName']; }
if(isset($data['jnxCosFcFabricPriority'])) { $queues[$index]['prio'] = $data['jnxCosFcFabricPriority']; }
}
set_entity_attrib('device', $device['device_id'], 'jnx_cos_queues', json_encode($queues));
foreach ($qstat_oids as $oid)
{
$qstats = snmpwalk_cache_oid($device, $oid, $qstats, "JUNIPER-COS-MIB");
}
foreach($qstats as $qstat_index => $qstat)
{
list($qstat_ifindex, $qstat_queue) = explode('.', $qstat_index);
$port_stats[$qstat_ifindex]['jnx_cos_qstat'][$qstat_queue] = $qstat;
}
unset($qstats);
unset($queues);
}
//print_vars($port_stats);
}
// Additional db fields for update
//$process_port_db[$port_module][] = 'ifDuplex'; // this field used in main data fields
// EOF