diff --git a/app/Models/Sensor.php b/app/Models/Sensor.php index 5952f3291d..d635e1190f 100644 --- a/app/Models/Sensor.php +++ b/app/Models/Sensor.php @@ -39,6 +39,7 @@ class Sensor extends DeviceRelatedModel 'state' => 'bullseye', 'temperature' => 'thermometer-three-quarters', 'tv_signal' => 'signal', + 'bitrate' => 'bar-chart', 'voltage' => 'bolt', 'waterflow' => 'tint', 'percent' => 'percent', diff --git a/doc/Developing/os/Health-Information.md b/doc/Developing/os/Health-Information.md index 4323beaa81..e4a093247f 100644 --- a/doc/Developing/os/Health-Information.md +++ b/doc/Developing/os/Health-Information.md @@ -37,6 +37,7 @@ the values we expect to see the data in: | state | # | | temperature | C | | tv_signal | dBmV | +| bitrate | bps | | voltage | V | | waterflow | l/m | | percent | % | @@ -468,6 +469,8 @@ Signal: State: Count: Temperature: .. +Tv_signal: +Bitrate: Voltage: . Snr: Pressure: diff --git a/includes/definitions/discovery/luminato.yaml b/includes/definitions/discovery/luminato.yaml index a209d4495e..e0ee8d5d15 100644 --- a/includes/definitions/discovery/luminato.yaml +++ b/includes/definitions/discovery/luminato.yaml @@ -14,7 +14,7 @@ modules: oid: laLoadInt num_oid: '.1.3.6.1.4.1.2021.10.1.5.{{ $index }}' descr: Chassis CPU - index: 2 + index: 0 sensors: pre-cache: data: @@ -30,7 +30,7 @@ modules: descr: "{{ $entPhysicalName }} ({{ $entPhysicalDescr }}) " index: '{{ $index }}' divisor: 10 - skip_value_lt: -50 + skip_value_lt: 1 state: data: - diff --git a/includes/definitions/luminato.yaml b/includes/definitions/luminato.yaml index 8ce50260bb..2e2d1c62c0 100644 --- a/includes/definitions/luminato.yaml +++ b/includes/definitions/luminato.yaml @@ -8,7 +8,22 @@ bad_snmpEngineTime: true bad_hrSystemUptime: true over: - { graph: device_bits, text: 'Device Traffic' } + - { graph: device_processor, text: 'CPU Usage' } + discovery: - sysObjectID: - .1.3.6.1.4.1.3715 +discovery_modules: + arp-table: false + bgp-peers: false + cisco-vrf-lite: false + ports-stack: false + mempools: false + discovery-protocols: false + wireless: false +poller_modules: + bgp-peers: false + services: false + mempools: false + wireless: false diff --git a/includes/discovery/ports.inc.php b/includes/discovery/ports.inc.php index 0062bbc1f1..8b1794aec9 100644 --- a/includes/discovery/ports.inc.php +++ b/includes/discovery/ports.inc.php @@ -26,6 +26,11 @@ if ($device['os'] == 'airos-af-ltu') { require 'ports/airos-af-ltu.inc.php'; } +//Teleste Luminato ifOperStatus +if ($device['os'] == 'luminato') { + require base_path('includes/discovery/ports/luminato.inc.php'); +} + // End Building SNMP Cache Array d_echo($port_stats); diff --git a/includes/discovery/ports/luminato.inc.php b/includes/discovery/ports/luminato.inc.php new file mode 100644 index 0000000000..e05425cf0a --- /dev/null +++ b/includes/discovery/ports/luminato.inc.php @@ -0,0 +1,34 @@ +. + * + * @link https://www.librenms.org + * + * @copyrigh 2021 Peca Nesovanovic + * + * @author Peca Nesovanovic + */ +$ver = intval($device['version']); +d_echo('PORTS: Luminato v' . $ver); + +if ($ver >= 20) { + $ifmib = SnmpQuery::walk('IF-MIB::ifConnectorPresent')->table(2); + foreach ($port_stats as $key => $data) { + $port_stats[$key]['ifOperStatus'] = $ifmib[$key]['IF-MIB::ifConnectorPresent'] ? 'up' : 'down'; + } +} diff --git a/includes/discovery/sensors.inc.php b/includes/discovery/sensors.inc.php index 2fc6b61e90..39eae57dc6 100644 --- a/includes/discovery/sensors.inc.php +++ b/includes/discovery/sensors.inc.php @@ -68,6 +68,7 @@ $run_sensors = [ 'count', 'temperature', 'tv_signal', + 'bitrate', 'voltage', 'snr', 'pressure', diff --git a/includes/discovery/sensors/bitrate/luminato.inc.php b/includes/discovery/sensors/bitrate/luminato.inc.php new file mode 100644 index 0000000000..2a314632ec --- /dev/null +++ b/includes/discovery/sensors/bitrate/luminato.inc.php @@ -0,0 +1,66 @@ +. + * + * @package LibreNMS + * @link https://www.librenms.org + * + * @copyright 2021 Peca Nesovanovic + * + * @author Peca Nesovanovic + */ +$divisor = 1; +$ver = intval($device['version']); +$boid = '.1.3.6.1.4.1.3715.17.3.3.1.'; + +if (is_array($pre_cache['transfer'])) { + d_echo('Luminato transfer' . $ver); + foreach ($pre_cache['transfer'] as $key => $data) { + if ($data['ifExtDirection'] == 'output') { + if ($ver < 10) { //v10 and up auto reset transBitrateMax, older version could not use this sensor + $value = $data['transBitrate'] / $divisor; + $oid = $boid . '2.' . $key; + } else { + $value = $data['transBitrateMax'] / $divisor; + $oid = $boid . '4.' . $key; + } + + unset($defrate); + $mnr = $pre_cache['transfer'][$key]['ifExtModule']; //module nr + $mname = $pre_cache['entPhysicalDescr'][$mnr]['entPhysicalDescr']; //module name + if ($mname == 'LQM-C' || $mname == 'LDM-C') { //QAM module + $defrate = 50; //default bitrate for QAM module + } + if ($mname == 'LAS-D') { //AsiOut module + $defrate = 60; //default bitrate for AsiOut module + } + if (isset($defrate)) { + $type = 'Transfer_' . $mname; + $defrate = $defrate * 1000 * 1000; + $descr = $mname . ' output '; + $descr .= sprintf('%02d', $pre_cache['transfer'][$key]['ifExtModule']) . '.'; //include module nr + $descr .= sprintf('%02d', $pre_cache['transfer'][$key]['ifExtPhysInterface']) . '.'; + $descr .= sprintf('%02d', $pre_cache['transfer'][$key]['ifExtLogiInterface']); + $group = 'Slot ' . $mnr; + $limit = $defrate * 1; //100% + $limitwarn = $defrate * 0.8; //80% + $lowlimit = 0; + $lowwarnlimit = $defrate * 0.1; //10% + discover_sensor($valid['sensor'], 'bitrate', $device, $oid, $key, $type, $descr, $divisor, 1, $lowlimit, $lowwarnlimit, $limitwarn, $limit, $value, 'snmp', null, null, null, $group); + } + } + } +} diff --git a/includes/discovery/sensors/pre-cache/luminato.inc.php b/includes/discovery/sensors/pre-cache/luminato.inc.php new file mode 100644 index 0000000000..731835e2d2 --- /dev/null +++ b/includes/discovery/sensors/pre-cache/luminato.inc.php @@ -0,0 +1,43 @@ +. + * + * @package LibreNMS + * @link https://www.librenms.org + * + * @copyright 2021 Peca Nesovanovic + * + * @author Peca Nesovanovic + */ +echo 'Luminato '; + +$oidt = snmp_walk($device, 'TransferEntry', '-OsQ', 'TELESTE-LUMINATO-MIB'); +$oidt = trim($oidt); +$oidi = snmp_walk($device, 'IfExtEntry', '-OsQ', 'TELESTE-LUMINATO-MIB'); +$oidi = trim($oidi); +$oids = $oidt . "\n" . $oidi; + +if ($oids) { + foreach (explode("\n", $oids) as $data) { + if ($data) { + $split = explode('=', $data); + $value = trim($split[1]); + $index = trim(explode('.', $split[0])[1]); + $name = trim(explode('.', $split[0])[0]); + $pre_cache['transfer'][$index][$name] = $value; + } + } +} diff --git a/includes/html/graphs/device/bitrate.inc.php b/includes/html/graphs/device/bitrate.inc.php new file mode 100644 index 0000000000..050f2cb597 --- /dev/null +++ b/includes/html/graphs/device/bitrate.inc.php @@ -0,0 +1,27 @@ +. +* +* @package LibreNMS +* @link https://www.librenms.org +* +* @copyright 2021 Peca Nesovanovic +* @author Peca Nesovanovic +* +*/ +$class = 'bitrate'; +$unit = 'bps'; +$unit_long = 'bps'; + +require 'includes/html/graphs/device/sensor.inc.php'; diff --git a/includes/html/graphs/sensor/bitrate.inc.php b/includes/html/graphs/sensor/bitrate.inc.php new file mode 100644 index 0000000000..0ba3338286 --- /dev/null +++ b/includes/html/graphs/sensor/bitrate.inc.php @@ -0,0 +1,23 @@ +where('device_id', $device['device_id'])->count(); unset($datas); $datas[] = 'overview'; @@ -136,6 +139,10 @@ if ($tv_signal) { $datas[] = 'tv_signal'; } +if ($bitrate) { + $datas[] = 'bitrate'; +} + if ($airflow) { $datas[] = 'airflow'; } @@ -206,6 +213,7 @@ $type_text['count'] = 'Count'; $type_text['load'] = 'Load'; $type_text['signal'] = 'Signal'; $type_text['tv_signal'] = 'TV signal'; +$type_text['bitrate'] = 'Bitrate'; $type_text['airflow'] = 'Airflow'; $type_text['snr'] = 'SNR'; $type_text['pressure'] = 'Pressure'; diff --git a/includes/html/pages/device/health/bitrate.inc.php b/includes/html/pages/device/health/bitrate.inc.php new file mode 100644 index 0000000000..147f15d05a --- /dev/null +++ b/includes/html/pages/device/health/bitrate.inc.php @@ -0,0 +1,29 @@ +. + * + * @link https://www.librenms.org + * + * @copyright 2021 Peca Nesovanovic + * @author Peca Nesovanovic + */ +$class = 'bitrate'; +$unit = 'bps'; +$graph_type = 'sensor_bitrate'; + +require 'sensors.inc.php'; diff --git a/includes/html/pages/device/overview.inc.php b/includes/html/pages/device/overview.inc.php index 0a2761832e..97b0c9295e 100644 --- a/includes/html/pages/device/overview.inc.php +++ b/includes/html/pages/device/overview.inc.php @@ -65,6 +65,7 @@ require 'overview/sensors/count.inc.php'; require 'overview/sensors/percent.inc.php'; require 'overview/sensors/signal.inc.php'; require 'overview/sensors/tv_signal.inc.php'; +require 'overview/sensors/bitrate.inc.php'; require 'overview/sensors/airflow.inc.php'; require 'overview/sensors/snr.inc.php'; require 'overview/sensors/pressure.inc.php'; diff --git a/includes/html/pages/device/overview/sensors/bitrate.inc.php b/includes/html/pages/device/overview/sensors/bitrate.inc.php new file mode 100644 index 0000000000..2e8ea5ca80 --- /dev/null +++ b/includes/html/pages/device/overview/sensors/bitrate.inc.php @@ -0,0 +1,30 @@ +. + * + * @link https://www.librenms.org + * + * @copyright 2021 Peca Nesovanovic + * @author Peca Nesovanovic + */ +$graph_type = 'sensor_bitrate'; +$sensor_class = 'bitrate'; +$sensor_unit = 'bps'; +$sensor_type = 'Bitrate'; + +require 'includes/html/pages/device/overview/generic/sensor.inc.php'; diff --git a/includes/html/pages/health.inc.php b/includes/html/pages/health.inc.php index e18afede17..192aca9101 100644 --- a/includes/html/pages/health.inc.php +++ b/includes/html/pages/health.inc.php @@ -50,6 +50,7 @@ $type_text = [ 'count' => 'Count', 'signal' => 'Signal', 'tv_signal' => 'TV signal', + 'bitrate' => 'Bitrate', 'snr' => 'SNR', 'pressure' => 'Pressure', 'cooling' => 'Cooling', diff --git a/includes/html/pages/health/bitrate.inc.php b/includes/html/pages/health/bitrate.inc.php new file mode 100644 index 0000000000..310890d8c6 --- /dev/null +++ b/includes/html/pages/health/bitrate.inc.php @@ -0,0 +1,22 @@ + +*/ +$graph_type = 'sensor_signal'; +$class = 'bitrate'; +$unit = 'bps'; + +require 'includes/html/pages/health/sensors.inc.php'; diff --git a/includes/polling/ports/os/luminato.inc.php b/includes/polling/ports/os/luminato.inc.php new file mode 100644 index 0000000000..ec61c0fb09 --- /dev/null +++ b/includes/polling/ports/os/luminato.inc.php @@ -0,0 +1,42 @@ +. + * + * @link https://www.librenms.org + * + * @copyrigh 2021 Peca Nesovanovic + * + * @author peca.nesovanovic@sattrakt.com + */ +$ver = intval($device['version']); +d_echo('PORTS: Luminato v' . $ver); + +$rfcmib = SnmpQuery::walk('RFC1213-MIB::ifSpeed')->table(2); + +foreach ($port_stats as $key => $data) { + $speed = $rfcmib[$key]['RFC1213-MIB::ifSpeed']; + + if ($ver >= 20) { + $port_stats[$key]['ifOperStatus'] = $data['ifConnectorPresent'] ? 'up' : 'down'; + } else { + $speed = $speed / 1000000; + } + + $port_stats[$key]['ifHighSpeed'] = $speed; + $port_stats[$key]['ifSpeed'] = 0; +} diff --git a/resources/lang/en/sensors.php b/resources/lang/en/sensors.php index 9b6f5d875d..9ea599d059 100644 --- a/resources/lang/en/sensors.php +++ b/resources/lang/en/sensors.php @@ -150,6 +150,12 @@ return [ 'unit' => 'dBmV', 'unit_long' => 'Decibel-Millivolts', ], + 'bitrate' => [ + 'short' => 'Bitrate', + 'long' => 'Bitrate', + 'unit' => 'bps', + 'unit_long' => 'bits per second', + ], 'snr' => [ 'short' => 'SNR', 'long' => 'Signal to Noise Ratio', diff --git a/tests/data/luminato_c12.json b/tests/data/luminato_c12.json index 2ca513e339..8fb751700e 100644 --- a/tests/data/luminato_c12.json +++ b/tests/data/luminato_c12.json @@ -457,7 +457,7 @@ "ifName": "MGMT 1", "portName": null, "ifIndex": 1, - "ifSpeed": 0, + "ifSpeed": 100000000, "ifSpeed_prev": null, "ifConnectorPresent": "true", "ifPromiscuousMode": "false", @@ -562,7 +562,7 @@ "ifName": "MGMT 2", "portName": null, "ifIndex": 2, - "ifSpeed": 0, + "ifSpeed": 100000000, "ifSpeed_prev": null, "ifConnectorPresent": "true", "ifPromiscuousMode": "false", @@ -667,7 +667,7 @@ "ifName": "GE 1", "portName": null, "ifIndex": 3, - "ifSpeed": 0, + "ifSpeed": 1000000000, "ifSpeed_prev": null, "ifConnectorPresent": "true", "ifPromiscuousMode": "false", @@ -772,7 +772,7 @@ "ifName": "GE 2", "portName": null, "ifIndex": 4, - "ifSpeed": 0, + "ifSpeed": 1000000000, "ifSpeed_prev": null, "ifConnectorPresent": "true", "ifPromiscuousMode": "false", @@ -877,7 +877,7 @@ "entPhysicalIndex": 0, "hrDeviceIndex": 0, "processor_oid": ".1.3.6.1.4.1.2021.10.1.5.3", - "processor_index": "2", + "processor_index": "0", "processor_type": "luminato", "processor_usage": 29, "processor_descr": "Chassis CPU", @@ -892,7 +892,7 @@ "entPhysicalIndex": 0, "hrDeviceIndex": 0, "processor_oid": ".1.3.6.1.4.1.2021.10.1.5.3", - "processor_index": "2", + "processor_index": "0", "processor_type": "luminato", "processor_usage": 10, "processor_descr": "Chassis CPU", @@ -905,6 +905,294 @@ "sensors": { "discovery": { "sensors": [ + { + "sensor_deleted": 0, + "sensor_class": "bitrate", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.3715.17.3.3.1.2.12010001", + "sensor_index": "12010001", + "sensor_type": "Transfer_LQM-C", + "sensor_descr": "LQM-C output 01.01.01", + "group": "Slot 1", + "sensor_divisor": 1, + "sensor_multiplier": 1, + "sensor_current": 47538432, + "sensor_limit": 50000000, + "sensor_limit_warn": 40000000, + "sensor_limit_low": 0, + "sensor_limit_low_warn": 5000000, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "bitrate", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.3715.17.3.3.1.2.12020001", + "sensor_index": "12020001", + "sensor_type": "Transfer_LQM-C", + "sensor_descr": "LQM-C output 01.02.01", + "group": "Slot 1", + "sensor_divisor": 1, + "sensor_multiplier": 1, + "sensor_current": 49513184, + "sensor_limit": 50000000, + "sensor_limit_warn": 40000000, + "sensor_limit_low": 0, + "sensor_limit_low_warn": 5000000, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "bitrate", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.3715.17.3.3.1.2.12030001", + "sensor_index": "12030001", + "sensor_type": "Transfer_LQM-C", + "sensor_descr": "LQM-C output 01.03.01", + "group": "Slot 1", + "sensor_divisor": 1, + "sensor_multiplier": 1, + "sensor_current": 35399648, + "sensor_limit": 50000000, + "sensor_limit_warn": 40000000, + "sensor_limit_low": 0, + "sensor_limit_low_warn": 5000000, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "bitrate", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.3715.17.3.3.1.2.12040001", + "sensor_index": "12040001", + "sensor_type": "Transfer_LQM-C", + "sensor_descr": "LQM-C output 01.04.01", + "group": "Slot 1", + "sensor_divisor": 1, + "sensor_multiplier": 1, + "sensor_current": 42594784, + "sensor_limit": 50000000, + "sensor_limit_warn": 40000000, + "sensor_limit_low": 0, + "sensor_limit_low_warn": 5000000, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "bitrate", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.3715.17.3.3.1.2.22010001", + "sensor_index": "22010001", + "sensor_type": "Transfer_LQM-C", + "sensor_descr": "LQM-C output 02.01.01", + "group": "Slot 2", + "sensor_divisor": 1, + "sensor_multiplier": 1, + "sensor_current": 31211008, + "sensor_limit": 50000000, + "sensor_limit_warn": 40000000, + "sensor_limit_low": 0, + "sensor_limit_low_warn": 5000000, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "bitrate", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.3715.17.3.3.1.2.22020001", + "sensor_index": "22020001", + "sensor_type": "Transfer_LQM-C", + "sensor_descr": "LQM-C output 02.02.01", + "group": "Slot 2", + "sensor_divisor": 1, + "sensor_multiplier": 1, + "sensor_current": 42865504, + "sensor_limit": 50000000, + "sensor_limit_warn": 40000000, + "sensor_limit_low": 0, + "sensor_limit_low_warn": 5000000, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "bitrate", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.3715.17.3.3.1.2.22030001", + "sensor_index": "22030001", + "sensor_type": "Transfer_LQM-C", + "sensor_descr": "LQM-C output 02.03.01", + "group": "Slot 2", + "sensor_divisor": 1, + "sensor_multiplier": 1, + "sensor_current": 22421632, + "sensor_limit": 50000000, + "sensor_limit_warn": 40000000, + "sensor_limit_low": 0, + "sensor_limit_low_warn": 5000000, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "bitrate", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.3715.17.3.3.1.2.22040001", + "sensor_index": "22040001", + "sensor_type": "Transfer_LQM-C", + "sensor_descr": "LQM-C output 02.04.01", + "group": "Slot 2", + "sensor_divisor": 1, + "sensor_multiplier": 1, + "sensor_current": 21983968, + "sensor_limit": 50000000, + "sensor_limit_warn": 40000000, + "sensor_limit_low": 0, + "sensor_limit_low_warn": 5000000, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "bitrate", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.3715.17.3.3.1.2.32010001", + "sensor_index": "32010001", + "sensor_type": "Transfer_LQM-C", + "sensor_descr": "LQM-C output 03.01.01", + "group": "Slot 3", + "sensor_divisor": 1, + "sensor_multiplier": 1, + "sensor_current": 0, + "sensor_limit": 50000000, + "sensor_limit_warn": 40000000, + "sensor_limit_low": 0, + "sensor_limit_low_warn": 5000000, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "bitrate", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.3715.17.3.3.1.2.32020001", + "sensor_index": "32020001", + "sensor_type": "Transfer_LQM-C", + "sensor_descr": "LQM-C output 03.02.01", + "group": "Slot 3", + "sensor_divisor": 1, + "sensor_multiplier": 1, + "sensor_current": 0, + "sensor_limit": 50000000, + "sensor_limit_warn": 40000000, + "sensor_limit_low": 0, + "sensor_limit_low_warn": 5000000, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "bitrate", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.3715.17.3.3.1.2.32030001", + "sensor_index": "32030001", + "sensor_type": "Transfer_LQM-C", + "sensor_descr": "LQM-C output 03.03.01", + "group": "Slot 3", + "sensor_divisor": 1, + "sensor_multiplier": 1, + "sensor_current": 20314528, + "sensor_limit": 50000000, + "sensor_limit_warn": 40000000, + "sensor_limit_low": 0, + "sensor_limit_low_warn": 5000000, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "bitrate", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.3715.17.3.3.1.2.32040001", + "sensor_index": "32040001", + "sensor_type": "Transfer_LQM-C", + "sensor_descr": "LQM-C output 03.04.01", + "group": "Slot 3", + "sensor_divisor": 1, + "sensor_multiplier": 1, + "sensor_current": 23232288, + "sensor_limit": 50000000, + "sensor_limit_warn": 40000000, + "sensor_limit_low": 0, + "sensor_limit_low_warn": 5000000, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": null + }, { "sensor_deleted": 0, "sensor_class": "state",