Files
Thomas Vincent 22d19cfcc6 issue#7355: add ENTITY-SENSOR, JUNIPER and F5-BIGIP script data queries (#7839)
* issue#7355: add a vendor-neutral ENTITY-SENSOR-MIB script data query

ENTITY-SENSOR-MIB (RFC 3433) exposes physical sensors (temperature, fan, PSU,
voltage, current) on most modern gear, so one data query covers F5, Juniper,
Arista, Cisco NX-OS and others. ss_entity_sensor collects the sensor table and
scales each reading through entPhySensorScale and entPhySensorPrecision; the
SNMP I/O sits behind an injectable walker so every logic branch is unit tested.

A dedicated coverage job enforces 100% line coverage on the collector.

Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>

* issue#7355: add a JUNIPER-MIB jnxOperatingTable script data query

Junos routers and switches expose per-subject health (Routing Engine, FPC, PSU,
fan) through JUNIPER-MIB jnxOperatingTable, which is the signature Juniper data
beyond the IF-MIB and HOST-RESOURCES standards. ss_juniper_operating collects
CPU, temperature, buffer and state; the multi-index table is keyed on the full
OID suffix. SNMP I/O sits behind an injectable walker so every branch is unit
tested, and a dedicated job enforces 100% line coverage.

Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>

* issue#7355: add an F5-BIGIP-SYSTEM-MIB per-CPU utilization script data query

BIG-IP reports per-CPU utilization as sliding 5s/1m/5m averages in
sysMultiHostCpuTable, the signature F5 metric beyond the IF-MIB and
HOST-RESOURCES standards. ss_f5_cpu collects that multi-indexed table, keyed on
the full OID suffix. Every OID was resolved from the published
F5-BIGIP-SYSTEM-MIB with snmptranslate. SNMP I/O sits behind an injectable
walker so every branch is unit tested, and a dedicated job enforces 100% line
coverage.

Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>

* style: apply php-cs-fixer to ss_entity_sensor.php

Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>

---------

Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
2026-09-01 21:00:18 -07:00

55 lines
1.9 KiB
XML

<interface>
<name>Get ENTITY-SENSOR Physical Sensors</name>
<script_path>|path_cacti|/scripts/ss_entity_sensor.php</script_path>
<script_function>ss_entity_sensor</script_function>
<script_server>php</script_server>
<arg_prepend>|host_hostname| |host_id| |host_snmp_version|:|host_snmp_port|:|host_snmp_timeout|:|host_ping_retries|:|host_max_oids|:|host_snmp_community|:|host_snmp_username|:|host_snmp_password|:|host_snmp_auth_protocol|:|host_snmp_priv_passphrase|:|host_snmp_priv_protocol|:|host_snmp_context|</arg_prepend>
<arg_index>index</arg_index>
<arg_query>query</arg_query>
<arg_get>get</arg_get>
<arg_num_indexes>num_indexes</arg_num_indexes>
<output_delimiter>!</output_delimiter>
<index_order>entPhysicalName:entPhysicalIndex</index_order>
<index_order_type>numeric</index_order_type>
<index_title_format>|chosen_order_field|</index_title_format>
<fields>
<entPhysicalIndex>
<name>Sensor Index</name>
<direction>input</direction>
<query_name>index</query_name>
</entPhysicalIndex>
<entPhysicalName>
<name>Sensor Name</name>
<direction>input</direction>
<query_name>name</query_name>
</entPhysicalName>
<entPhysicalDescr>
<name>Sensor Description</name>
<direction>input</direction>
<query_name>descr</query_name>
</entPhysicalDescr>
<entPhySensorType>
<name>Sensor Type</name>
<direction>input</direction>
<query_name>type</query_name>
</entPhySensorType>
<entPhySensorUnitsDisplay>
<name>Units</name>
<direction>input</direction>
<query_name>units</query_name>
</entPhySensorUnitsDisplay>
<entPhySensorValue>
<name>Sensor Value</name>
<direction>output</direction>
<query_name>value</query_name>
</entPhySensorValue>
<entPhySensorOperStatus>
<name>Operational Status</name>
<direction>output</direction>
<query_name>status</query_name>
</entPhySensorOperStatus>
</fields>
</interface>