#11494 Fix service level detail function

This commit is contained in:
miguel angel rasteu 2023-09-13 11:38:30 +02:00
parent 0140183ae4
commit 750b318a2e
2 changed files with 23 additions and 14 deletions

View File

@ -4784,6 +4784,7 @@ function service_level_module_data($datetime_from, $datetime_to, $id_agentmodule
$data['availability'] = false;
$availability = 0;
$type = '';
$uncompressed_data = db_uncompress_module_data(
$id_agentmodule,
@ -4796,6 +4797,10 @@ function service_level_module_data($datetime_from, $datetime_to, $id_agentmodule
foreach ($data_module['data'] as $subdata) {
if (!empty($subdata['datos'])) {
$first_utimestamp = $subdata['utimestamp'];
if (isset($subdata['type'])) {
$type = $subdata['type'];
}
break;
}
}
@ -4862,8 +4867,19 @@ function service_level_module_data($datetime_from, $datetime_to, $id_agentmodule
}
// hd($availability, true);
$mtbf = round(( $total_time_failed / count($mtbf_array)));
$mtrs = round((array_sum($mtrs_array) / count($mtrs_array)));
if (count($mtbf_array) > 1) {
$mtbf = round(( $total_time_failed / count($mtbf_array)));
} else {
$mtbf = false;
}
if (count($mtrs_array) === 1 && (string) $first_utimestamp !== '0' && $type === 0) {
$mtrs = round($total_time_failed / count($mtrs_array));
} else if (count($mtrs_array) > 1 && (string) $first_utimestamp !== '0') {
$mtrs = round((array_sum($mtrs_array) / count($mtrs_array)));
} else {
$mtrs = false;
}
$data['mtbf'] = $mtbf;
$data['mtrs'] = $mtrs;

View File

@ -1,10 +1,10 @@
<?php
/**
* Widget Clock Pandora FMS Console
* Widget Service Level Pandora FMS Console
*
* @category Console Class
* @package Pandora FMS
* @subpackage Widget Clock
* @subpackage Widget Service Level
* @version 1.0.0
* @license See below
*
@ -493,16 +493,9 @@ class ServiceLevelWidget extends Widget
// Mean Time To Solution.
// Availability.
$module_data = service_level_module_data($interval_range['start'], $interval_range['end'], $data_module_array['id_agente_modulo']);
if ($module_data['mtrs'] !== false && $module_data['mtbf'] !== false && $module_data['availability'] !== false) {
$visualData[$agent_id]['modules'][$module->name()]['mtrs'] = human_milliseconds_to_string(($module_data['mtrs'] * 100), 'short');
$visualData[$agent_id]['modules'][$module->name()]['mtbf'] = human_milliseconds_to_string(($module_data['mtbf'] * 100), 'short');
$visualData[$agent_id]['modules'][$module->name()]['availability'] = $module_data['availability'];
} else {
$visualData[$agent_id]['modules'][$module->name()]['mtrs'] = '-';
$visualData[$agent_id]['modules'][$module->name()]['mtbf'] = '-';
$visualData[$agent_id]['modules'][$module->name()]['availability'] = '100';
}
$visualData[$agent_id]['modules'][$module->name()]['mtrs'] = ($module_data['mtrs'] !== false) ? human_milliseconds_to_string(($module_data['mtrs'] * 100), 'short') : '-';
$visualData[$agent_id]['modules'][$module->name()]['mtbf'] = ($module_data['mtbf'] !== false) ? human_milliseconds_to_string(($module_data['mtbf'] * 100), 'short') : '-';
$visualData[$agent_id]['modules'][$module->name()]['availability'] = ($module_data['availability'] !== false) ? $module_data['availability'] : '100';
// Count events.
$sql = 'SELECT COUNT(*) as critical_events FROM tevento
WHERE id_agentmodule= '.$data_module_array['id_agente_modulo'].'