-
-
Notifications
You must be signed in to change notification settings - Fork 2.2k
/
slas.inc.php
132 lines (109 loc) · 3.4 KB
/
slas.inc.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<?php
print_optionbar_start();
$slas = dbFetchRows('SELECT * FROM `slas` WHERE `device_id` = ? AND `deleted` = 0 ORDER BY `sla_nr`', array($device['device_id']));
// Collect types
$sla_types = array('all' => 'All');
foreach ($slas as $sla) {
// Set a default type, if we know about it, it will be overwritten below.
$text = 'Unknown';
$sla_type = $sla['rtt_type'];
if (!in_array($sla_type, $sla_types)) {
if (isset($config['sla_type_labels'][$sla_type])) {
$text = $config['sla_type_labels'][$sla_type];
}
} else {
$text = ucfirst($sla_type);
}
$sla_types[$sla_type] = $text;
}
asort($sla_types);
$status_options = array(
'all' => 'All',
'up' => 'Up',
'down' => 'Down',
);
echo "<span style='font-weight: bold;'>SLA</span> » ";
// SLA Types, on the left.
$sep = '';
foreach ($sla_types as $sla_type => $text) {
if (!$vars['view']) {
$vars['view'] = $sla_type;
}
echo $sep;
if ($vars['view'] == $sla_type) {
echo "<span class='pagemenu-selected'>";
}
echo generate_link($text, $vars, array('view' => $sla_type));
if ($vars['view'] == $sla_type) {
echo '</span>';
}
$sep = ' | ';
}
unset($sep);
// The status option - on the right
echo '<div class="pull-right">';
echo "<span style='font-weight: bold;'>Status</span> » ";
$sep = '';
foreach ($status_options as $option => $text) {
if (empty($vars['opstatus'])) {
$vars['opstatus'] = $option;
}
echo $sep;
if ($vars['opstatus'] == $option) {
echo "<span class='pagemenu-selected'>";
}
echo generate_link($text, $vars, array('opstatus' => $option));
if ($vars['opstatus'] == $option) {
echo '</span>';
}
$sep = ' | ';
}
unset($sep);
print_optionbar_end();
foreach ($slas as $sla) {
if ($vars['view'] != 'all' && $vars['view'] != $sla['rtt_type']) {
continue;
}
$opstatus = ($sla['opstatus'] === '0') ? 'up' : 'down';
d_echo("<br>Opstatus :: var: ".$vars['opstatus'].", db: ".$sla['opstatus'].", name: ".$opstatus."<br>");
if ($vars['opstatus'] != 'all' && $vars['opstatus'] != $opstatus) {
continue;
}
$name = 'SLA #'.$sla['sla_nr'].' - '.$sla_types[$sla['rtt_type']];
if ($sla['tag']) {
$name .= ': '.$sla['tag'];
}
if ($sla['owner']) {
$name .= ' (Owner: '.$sla['owner'].')';
}
// Jitter has more graphs. Display a sub-page
if ($sla['rtt_type'] == 'jitter') {
$name = '<a href="'.generate_url($vars, array('tab' => "sla", 'id' => $sla['sla_id'])).'">'.$name.'</a>';
} else {
$name = htmlentities($name);
}
// If we have an error highlight the row.
if ($sla['opstatus'] == 2) {
$danger = "panel-danger";
} else {
$danger = '';
}
$graph_array = array();
$graph_array['device'] = $device['device_id'];
$graph_array['height'] = '100';
$graph_array['width'] = '215';
$graph_array['to'] = $config['time']['now'];
$graph_array['type'] = 'device_sla';
$graph_array['id'] = $sla['sla_id'];
echo '<div class="panel panel-default '.$danger.'">
<div class="panel-heading">
<h3 class="panel-title">'.$name.'</h3>
</div>
<div class="panel-body">';
echo "<div class='row'>";
include 'includes/print-graphrow.inc.php';
echo '</div>';
echo '</div>';
echo '</div>';
}
$pagetitle[] = 'SLAs';