new nagios region list widget

also some style changes
This commit is contained in:
adriant 2014-12-12 13:13:09 +13:00
parent a464dedac0
commit d7f8f65848
9 changed files with 174 additions and 76 deletions

View File

@ -122,24 +122,17 @@
font-size: 20px;
font-weight: bold;
text-transform: uppercase; }
p .widget-nagios li.updated-at {
font-size: 10px; }
.widget-nagios li.green {
background-color: #86d751; }
.widget-nagios li.green p.updated-at {
color: #c0eaa4; }
.widget-nagios li.yellow {
background-color: #edde43; }
.widget-nagios li.yellow p.updated-at {
color: #f6eea0; }
.widget-nagios li.red {
background-color: #e3394f; }
.widget-nagios li.red p.updated-at {
color: #f0929e; }
.widget-nagios li.error {
background-color: #f75f00; }
.widget-nagios li.error p.updated-at {
color: #ff9c5e; }
.widget-nagios li p.updated-at {
color: rgba(0, 0, 0, 0.6);
font-size: 0.8em; }
.widget-nagios li.green {
background-color: #86d751; }
.widget-nagios li.yellow {
background-color: #edde43; }
.widget-nagios li.red {
background-color: #e3394f; }
.widget-nagios li.error {
background-color: #f75f00; }
.widget-usage-gauge {
background-color: #ec223f; }
@ -268,6 +261,38 @@
.widget-number .updated-at {
color: rgba(0, 0, 0, 0.3); }
.widget-nagios-list {
background-color: #5B7F97;
vertical-align: top; }
.widget-nagios-list .title {
color: rgba(255, 255, 255, 0.7);
font-size: 1em; }
.widget-nagios-list .subtitle {
color: rgba(255, 255, 255, 0.7);
font-size: 0.8em; }
.widget-nagios-list ol, .widget-nagios-list ul {
margin: 0 15px;
text-align: left;
color: rgba(255, 255, 255, 0.7); }
.widget-nagios-list ol {
nagios-list-style-position: inside; }
.widget-nagios-list li {
margin-bottom: 5px; }
.widget-nagios-list .nagios-list-nostyle {
nagios-list-style: none; }
.widget-nagios-list .label {
color: rgba(255, 255, 255, 0.7); }
.widget-nagios-list .value {
float: right;
margin-left: 12px;
font-weight: 600;
color: #fff; }
.widget-nagios-list .updated-at {
color: rgba(0, 0, 0, 0.6);
font-size: 0.8em; }
.widget-nagios-list .more-info {
color: rgba(255, 255, 255, 0.7); }
@-webkit-keyframes status-warning-background {
0% {
background-color: #e82711; }

View File

@ -4,7 +4,7 @@ from example_samplers import (
RegionsRAMSampler,
RegionsCPUSampler,
NagiosSampler,
# BuzzwordsSampler,
NagiosRegionSampler,
# ConvergenceSampler,
)
@ -12,12 +12,12 @@ from example_samplers import (
def run(args, conf, app, xyzzy):
samplers = [
CPUSampler(xyzzy, 10, conf['openstack']),
RAMSampler(xyzzy, 10, conf['openstack']),
RegionsCPUSampler(xyzzy, 10, conf['openstack']),
RegionsRAMSampler(xyzzy, 10, conf['openstack']),
NagiosSampler(xyzzy, 10, conf['nagios']),
# BuzzwordsSampler(xyzzy, 2),
CPUSampler(xyzzy, 60, conf['openstack']),
RAMSampler(xyzzy, 60, conf['openstack']),
RegionsCPUSampler(xyzzy, 60, conf['openstack']),
RegionsRAMSampler(xyzzy, 60, conf['openstack']),
NagiosSampler(xyzzy, 5, conf['nagios']),
NagiosRegionSampler(xyzzy, 5, conf['nagios']),
# ConvergenceSampler(xyzzy, 1),
]

View File

@ -181,21 +181,24 @@ class NagiosSampler(DashieSampler):
return s
class BuzzwordsSampler(DashieSampler):
class NagiosRegionSampler(DashieSampler):
def name(self):
return 'buzzwords'
return 'nagios_regions'
def sample(self):
my_little_pony_names = ['Rainbow Dash',
'Blossomforth',
'Derpy',
'Fluttershy',
'Lofty',
'Scootaloo',
'Skydancer']
items = [{'label': pony_name, 'value': random.randint(0, 20)} for pony_name in my_little_pony_names]
random.shuffle(items)
return {'items': items}
nagios.get_statusfiles(self._conf['services'])
servicestatus = nagios.parse_status(self._conf['services'])
criticals = []
warnings = []
for region in servicestatus:
criticals.append({'label': region,
'value': servicestatus[region]['critical']})
warnings.append({'label': region,
'value': servicestatus[region]['warning']})
return {'criticals': criticals, 'warnings': warnings}
class ConvergenceSampler(DashieSampler):

View File

@ -58,6 +58,7 @@ def javascripts():
'widgets/progress_bars/progress_bars.coffee',
'widgets/usage_gauge/usage_gauge.coffee',
'widgets/nagios/nagios.coffee',
'widgets/nagios_list/nagios_list.coffee',
]
nizzle = True
if not nizzle:

View File

@ -20,16 +20,20 @@
<div id="container">
<div class="gridster">
<ul>
<li data-row="1" data-col="2" data-sizex="1" data-sizey="1">
<li data-row="1" data-col="1" data-sizex="1" data-sizey="1">
<div data-id="clock" data-view="Clock" data-title="Clock"></div>
</li>
<li data-row="1" data-col="3" data-sizex="1" data-sizey="1">
<li data-row="1" data-col="2" data-sizex="1" data-sizey="1">
<div data-id="nagios" data-view="Nagios" data-unordered="true" data-title="Icinga Prod" data-moreinfo="Unacknowledged events"></div>
</li>
<li data-row="1" data-col="3" data-sizex="1" data-sizey="1">
<div data-id="nagios_regions" data-view="NagiosList" data-title="Nagios by region" data-subtitle1="Criticals" data-subtitle2="Warnings"></div>
</li>
<li data-row="1" data-col="4" data-sizex="1" data-sizey="1">
<div data-id="cpu" data-view="Meter" data-title="CPU"></div>
<div data-id="cpu" data-view="Meter" data-title="VCPU"></div>
</li>
<li data-row="1" data-col="5" data-sizex="1" data-sizey="1">
@ -37,21 +41,17 @@
</li>
<li data-row="2" data-col="2" data-sizex="2" data-sizey="1">
<div data-id="cpu_regions" data-view="ProgressBars" data-title="CPU usage per region"></div>
<div data-id="cpu_regions" data-view="ProgressBars" data-title="VCPU provisioned per region"></div>
</li>
<li data-row="2" data-col="4" data-sizex="2" data-sizey="1">
<div data-id="ram_regions" data-view="ProgressBars" data-title="RAM usage per region"></div>
</li>
<div data-id="ram_regions" data-view="ProgressBars" data-title="RAM provisioned per region"></div>
</li>
<!-- <li data-row="2" data-col="1" data-sizex="1" data-sizey="2">
<div data-id="buzzwords" data-view="List" data-unordered="true" data-title="Buzzwords" data-moreinfo="Absolute ranking of pony preferences"></div>
</li>
<li data-row="3" data-col="2" data-sizex="2" data-sizey="1">
<!-- <li data-row="3" data-col="2" data-sizex="2" data-sizey="1">
<div data-id="convergence" data-view="Graph" data-title="Convergence" style="background-color:#ff9618"></div>
</li>
-->
</li> -->
</ul>
</div>
</body>

View File

@ -25,48 +25,27 @@ $error: #f75f00;
text-transform: uppercase;
}
p &.updated-at {
font-size: 10px;
p {
&.updated-at {
color: rgba(0, 0, 0, 0.6);
font-size: 0.8em;
}
}
&.green {
background-color: $success;
p {
&.updated-at {
color: lighten($success, 20%);
}
}
}
&.yellow {
background-color: $warning;
p {
&.updated-at {
color: lighten($warning, 20%);
}
}
}
&.red {
background-color: $failure;
p {
&.updated-at {
color: lighten($failure, 20%);
}
}
}
&.error {
background-color: $error;
p {
&.updated-at {
color: lighten($error, 20%);
}
}
}
}
}

View File

@ -0,0 +1 @@
class Dashing.NagiosList extends Dashing.Widget

View File

@ -0,0 +1,22 @@
<h1 class="title" data-bind="title"></h1>
<h2 class="subtitle" data-bind="subtitle1"></h1>
<ul>
<li data-foreach-item="criticals">
<span class="label" data-bind="item.label"></span>
<span class="value" data-bind="item.value"></span>
</li>
</ul>
<h2 class="subtitle" data-bind="subtitle2"></h1>
<ul>
<li data-foreach-item="warnings">
<span class="label" data-bind="item.label"></span>
<span class="value" data-bind="item.value"></span>
</li>
</ul>
<p class="more-info" data-bind="moreinfo"></p>
<p class="updated-at" data-bind="updatedAtMessage"></p>

View File

@ -0,0 +1,67 @@
// ----------------------------------------------------------------------------
// Sass declarations
// ----------------------------------------------------------------------------
$background-color: #5B7F97;
$value-color: #fff;
$title-color: rgba(255, 255, 255, 0.7);
$label-color: rgba(255, 255, 255, 0.7);
$moreinfo-color: rgba(255, 255, 255, 0.7);
// ----------------------------------------------------------------------------
// Widget-nagios-list styles
// ----------------------------------------------------------------------------
.widget-nagios-list {
background-color: $background-color;
vertical-align: top;
.title {
color: $title-color;
font-size: 1em;
}
.subtitle {
color: $title-color;
font-size: 0.8em;
}
ol, ul {
margin: 0 15px;
text-align: left;
color: $label-color;
}
ol {
nagios-list-style-position: inside;
}
li {
margin-bottom: 5px;
}
.nagios-list-nostyle {
nagios-list-style: none;
}
.label {
color: $label-color;
}
.value {
float: right;
margin-left: 12px;
font-weight: 600;
color: $value-color;
}
.updated-at {
color: rgba(0, 0, 0, 0.6);
font-size: 0.8em;
}
.more-info {
color: $moreinfo-color;
}
}