Files
librenms-librenms/includes/polling/applications/opengridscheduler.inc.php
Tony Murray 7a8e479b61 Unix Agent and Application fixes (#15460)
* Unix Agent and Application fixes

* Apply fixes from StyleCI

---------

Co-authored-by: StyleCI Bot <bot@styleci.io>
2023-10-16 03:40:40 -05:00

54 lines
1.5 KiB
PHP

<?php
/*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your
* option) any later version. Please see LICENSE.txt at the top level of
* the source code distribution for details.
*
* @package LibreNMS
* @subpackage opengridscheduler
* @link https://www.librenms.org
* @copyright 2017 LibreNMS
* @author SvennD <svennd@svennd.be>
*/
use LibreNMS\RRD\RrdDefinition;
$name = 'ogs';
$oid = '.1.3.6.1.4.1.8072.1.3.2.3.1.2.3.111.103.115';
echo ' ' . $name;
// get data through snmp
$ogs_data = snmp_get($device, $oid, '-Oqv');
// define the rrd
$rrd_def = RrdDefinition::make()
->addDataset('running_jobs', 'GAUGE', 0)
->addDataset('pending_jobs', 'GAUGE', 0)
->addDataset('suspend_jobs', 'GAUGE', 0)
->addDataset('zombie_jobs', 'GAUGE', 0);
// parse the data from the script
$data = explode("\n", $ogs_data);
$fields = [
'running_jobs' => $data[0],
'pending_jobs' => $data[1],
'suspend_jobs' => $data[2],
'zombie_jobs' => $data[3],
];
// push the data in an array and into the rrd
$tags = [
'name' => $name,
'app_id' => $app->app_id,
'rrd_name' => ['app', $name, $app->app_id],
'rrd_def' => $rrd_def,
];
data_update($device, 'app', $tags, $fields);
update_application($app, $ogs_data, $fields);
// cleanup
unset($ogs_data, $rrd_def, $data, $fields, $tags);