Module: check_mk
Branch: master
Commit: 95685c15ec475016d2761741ec2357f1abd258b3
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=95685c15ec4750…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Fri Feb 25 15:17:36 2011 +0100
h3c_lanswitch_cpu: add PNP graph and RRA cfg
---
README.writing_checks | 19 +++++++---
checkman/.f12 | 2 +-
checks/h3c_lanswitch_cpu | 2 +-
pnp-rraconf/check_mk-h3c_lanswitch_cpu.rra.cfg | 1 +
pnp-templates/check_mk-h3c_lanswitch_cpu.php | 44 ++++++++++++++++++++++++
5 files changed, 60 insertions(+), 8 deletions(-)
diff --git a/README.writing_checks b/README.writing_checks
index 6620511..0e22d34 100644
--- a/README.writing_checks
+++ b/README.writing_checks
@@ -12,12 +12,15 @@ Naming
Product specific checks must be prefixed with a product abbreviation, for
example "steelhead_status" for a Steelhead appliance of Riverbed.
-
* SNMP based checks: if the check makes use of a standardized MIB which
is or might be implemented by more than one vendor, then the check should
not be named after the vendor but after the MIB. An example are the
hr_* checks.
+* The service description of different check types that essentially
+ do the same must be identical (e.g. if/if64/ifoperstatus). Reason:
+ this makes rules in main.mk simpler for the user!
+
Coding style
@@ -52,10 +55,6 @@ Coding style
not hold for variables, that are used by several checks
(e.g. filesystem_levels is used by df, hr_fs, df_netapp, ...)
-* The service description of different check types that essentially
- do the same must be identical (e.g. if/if64/ifoperstatus). Reason:
- this makes rules in main.mk simpler for the user!
-
* If a check does not use check parameter, then the inventory function
must return None as parameter and the check function must name
the parameter argument _no_params.
@@ -125,7 +124,15 @@ Performance data:
* Only set perfdata flag when the check really produces performance data
output.
-* All performance data checks need to provide a pnp template
+* Each check that outputs performance data *must* have a dedicated PNP
+ graph definition in pnp-templates. If the check has warning and critical
+ levels then the graph must display those levels as yellow and red
+ lines.
+
+* Each check that outputs performance data must also have an RRA definition
+ the specifies which of MAX, MIN and AVERAGE is needed to display the
+ graph in its current (and maybe future) forms. Those are in pnp-rraconf.
+ Use a symlink here.
* pnp rra configuration
diff --git a/checkman/.f12 b/checkman/.f12
index 8bbbb7b..5a6d995 100644
--- a/checkman/.f12
+++ b/checkman/.f12
@@ -1 +1 @@
-cp * /usr/share/doc/check_mk/checks/
+sudo cp * /omd/versions/default/share/doc/check_mk/checks/
diff --git a/checks/h3c_lanswitch_cpu b/checks/h3c_lanswitch_cpu
index fdadc26..b720a22 100644
--- a/checks/h3c_lanswitch_cpu
+++ b/checks/h3c_lanswitch_cpu
@@ -86,7 +86,7 @@ def check_h3c_lanswitch_cpu(item, params, info):
-check_info["h3c_lanswitch_cpu"] = (check_h3c_lanswitch_cpu, "CPU Load %s", 1, inventory_h3c_lanswitch_cpu )
+check_info["h3c_lanswitch_cpu"] = (check_h3c_lanswitch_cpu, "CPU Utilization %s", 1, inventory_h3c_lanswitch_cpu )
snmp_info["h3c_lanswitch_cpu"] = \
( "1.3.6.1.4.1.43.45.1.6.1.1.1", [
diff --git a/pnp-rraconf/check_mk-h3c_lanswitch_cpu.rra.cfg b/pnp-rraconf/check_mk-h3c_lanswitch_cpu.rra.cfg
new file mode 120000
index 0000000..19dbf77
--- /dev/null
+++ b/pnp-rraconf/check_mk-h3c_lanswitch_cpu.rra.cfg
@@ -0,0 +1 @@
+max.rra.cfg
\ No newline at end of file
diff --git a/pnp-templates/check_mk-h3c_lanswitch_cpu.php b/pnp-templates/check_mk-h3c_lanswitch_cpu.php
new file mode 100644
index 0000000..a6e2dd0
--- /dev/null
+++ b/pnp-templates/check_mk-h3c_lanswitch_cpu.php
@@ -0,0 +1,44 @@
+<?php
+# +------------------------------------------------------------------+
+# | ____ _ _ __ __ _ __ |
+# | / ___| |__ ___ ___| | __ | \/ | |/ / |
+# | | | | '_ \ / _ \/ __| |/ / | |\/| | ' / |
+# | | |___| | | | __/ (__| < | | | | . \ |
+# | \____|_| |_|\___|\___|_|\_\___|_| |_|_|\_\ |
+# | |
+# | Copyright Mathias Kettner 2010 mk(a)mathias-kettner.de |
+# +------------------------------------------------------------------+
+#
+# This file is part of Check_MK.
+# The official homepage is at http://mathias-kettner.de/check_mk.
+#
+# check_mk 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 in version 2. check_mk is distributed
+# in the hope that it will be useful, but WITHOUT ANY WARRANTY; with-
+# out even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE. See the GNU General Public License for more de-
+# ails. You should have received a copy of the GNU General Public
+# License along with GNU Make; see the file COPYING. If not, write
+# to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+# Boston, MA 02110-1301 USA.
+
+$desc = str_replace("_", " ", $servicedesc);
+
+$opt[1] = "--vertical-label 'CPU utilization %' -l0 -u 100 --title \"CPU Utilization $hostname $desc\" ";
+#
+$def[1] = "DEF:util=$RRDFILE[1]:$DS[1]:MAX ".
+ "CDEF:ok=util,$WARN[1],MIN ".
+ "CDEF:warn=util,$CRIT[1],MIN ".
+ "AREA:util#c0f020 ".
+ "AREA:warn#90f020 ".
+ "AREA:ok#60f020:\"Utilization\:\" ".
+ "LINE:util#40a018 ".
+ "GPRINT:util:LAST:\"%.0lf%%,\" ".
+ "GPRINT:util:MIN:\"min\: %.0lf%%,\" ".
+ "GPRINT:util:MAX:\"max\: %.0lf%%\" ".
+ "HRULE:$WARN[1]#ffe000:\"Warning at $WARN[1]%\" ".
+ "HRULE:$CRIT[1]#ff0000:\"Critical at $CRIT[1]%\\n\" ".
+ "";
+
+?>
Module: check_mk
Branch: master
Commit: dd767cb1be3047c5ed8b06d16ec065dcb5e5f2d9
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=dd767cb1be3047…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Fri Feb 25 13:52:50 2011 +0100
Updated bug entries
---
.bugs/121 | 10 +++++++---
1 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/.bugs/121 b/.bugs/121
index 9c0a887..d5c6371 100644
--- a/.bugs/121
+++ b/.bugs/121
@@ -1,11 +1,15 @@
Title: Adding more than one column at once fails
Component: multisite
+State: done
+Class: bug
+Date: 2011-02-04 10:06:44
Benefit: 2
-State: open
Cost: 1
-Date: 2011-02-04 10:06:44
-Class: bug
+Fun: 0
In view editor if you add more than one column in one turn
without saving in between the first added column will be
erased.
+
+2011-02-25 13:52:41: changed state open -> done
+Fixed column adding mechanism not to use innerHTML on field container directly. Using DOM noded instead.
Module: check_mk
Branch: master
Commit: b25ac1ad7a2314a3510dcd3852bce2490dad2ff1
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=b25ac1ad7a2314…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Fri Feb 25 13:53:56 2011 +0100
Multisite: Fixed column editor forgetting uncommited changes
---
ChangeLog | 2 ++
web/htdocs/js/check_mk.js | 11 ++++++++++-
2 files changed, 12 insertions(+), 1 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 6b1bd57..9e1cf2e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -29,6 +29,8 @@
mode (such as host or service detail)
* FIX: fix PNP icon in cases where host and service icons are displayed in
same view (found by Wolfgang Barth)
+ * FIX: Fixed view column editor forgetting pending changes to other form
+ fields
WATO:
* FIX: fix problem with vanishing services on Windows. Affected were services
diff --git a/web/htdocs/js/check_mk.js b/web/htdocs/js/check_mk.js
index 050bf22..cec6c96 100644
--- a/web/htdocs/js/check_mk.js
+++ b/web/htdocs/js/check_mk.js
@@ -320,8 +320,17 @@ function column_swap_ids(o1, o2) {
}
function add_view_column_handler(id, code) {
+ // Can not simply add the new code to the innerHTML code of the target
+ // container. So first creating a temporary container and fetch the
+ // just created DOM node of the editor fields to add it to the real
+ // container afterwards.
+ var tmpContainer = document.createElement('div');
+ tmpContainer.innerHTML = code;
+ var oNewEditor = tmpContainer.lastChild;
+
var oContainer = document.getElementById('ed_'+id).firstChild;
- oContainer.innerHTML += code;
+ oContainer.appendChild(oNewEditor);
+ tmpContainer = null;
if (oContainer.lastChild.previousSibling)
fix_buttons(oContainer, oContainer.lastChild.previousSibling);
Module: check_mk
Branch: master
Commit: b2d60016b9f1d363de1044df501256df6811b2ed
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=b2d60016b9f1d3…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Fri Feb 25 12:49:26 2011 +0100
Tuned man-page of h3c_lanswitch_cpu
---
README.writing_checks | 29 +++++++++++++------------
checkman/h3c_lanswitch_cpu | 49 +++++++++++++++++++++++--------------------
checks/h3c_lanswitch_cpu | 2 +-
3 files changed, 42 insertions(+), 38 deletions(-)
diff --git a/README.writing_checks b/README.writing_checks
index 687720b..6620511 100644
--- a/README.writing_checks
+++ b/README.writing_checks
@@ -121,9 +121,6 @@ Other issues:
with the rest of the data and produce useful results. use int() in all other cases,
e.g. if the check does not make any sense if you have no valid data.
-Manpages:
-*
-
Performance data:
* Only set perfdata flag when the check really produces performance data
output.
@@ -136,14 +133,18 @@ SNMP based checks:
* Only use numeric OIDs in your checks. Name based OIDs rely on MIB files
and the check won't work when the MIB files are not in place.
-* Scan function:
-
-Agent based checks:
-
-* Put sample output snippets of the agent as comments into
- the check source code. Add examples for all cases handled
- by your check. -> That makes the code more easy to understand
- and help not to break something if someone changes something
- in the check's parser.
- In an optimal case you include several code examples of different
- states.
+Manpages
+
+* Each check *must* have a man page. This should be:
+ - complete
+ - precise
+ - terse
+ - helpful!!
+
+* Information that must be contained in the description:
+ - What does the check exactly?
+ - Under which circumstances goes the check to WARN/CRIT?
+ - Which devices are supported by the check?
+ - Does the check require some configuration of the agent or
+ some separate plugin? (example: The logwatch check requires
+ the agent plugin mk_logwatch to be installed)
diff --git a/checkman/h3c_lanswitch_cpu b/checkman/h3c_lanswitch_cpu
index 3c742c0..a852990 100644
--- a/checkman/h3c_lanswitch_cpu
+++ b/checkman/h3c_lanswitch_cpu
@@ -1,39 +1,42 @@
-title: Check CPU Utilization of 3COM and H3C switches.
+title: Check CPU utilization of 3COM and H3C switches
agents: snmp
author: Florian Heigl <fh(a)mathias-kettner.de>
license: GPL
distribution: check_mk
description:
-This Check queries the CPU utilization for various LAN switches that are supporting the MIB for H3C lan switches.
-These are:
-Newer 3Com switches (Superstack 4 and later), H3C branded switches and now for example the HP "A-Series" Networking gear. The same switches from the original maker Huawei are not supporting the MIB. These also only support cpu stats, whereas the H3C Mib also gives Memory stats and Fabric status etc.
-The check should correctly label the CPU in your switch / stack / core switch module slots.
-
-Note some of these switches don't handle snmp well and might generate up to 90% cpu load while queried.
-To accomodate for this you should lower the frequency of SNMP based checks with them.
-The CPU usage ratio returned by the check is the average load of the last 5 minutes.
+ This Check queries the CPU utilization of various LAN switches that are
+ supporting the MIB for H3C lan switches. These are: newer 3COM switches
+ (Superstack 4 and later), H3C branded switches and now for example the HP
+ "A-Series" Networking gear. The same switches from the original maker Huawei
+ are {not} supporting the MIB. The check tries to correctly label the CPU in
+ your switch / stack / core switch module slots.
+ The check goes WARN/CRIT if the average CPU usage of the last {five minutes}
+ exceeds configurable levels.
+ Note that some of these switches don't handle SNMP well and might generate
+ up to 90% cpu load while queried. To accomodate for this you should lower
+ the frequency of SNMP based checks with them.
+ Some devices have a high usage even in normal conditions (i.e. running full
+ BGP tables). In that case you might have to fine tune the check parameters
+ or even have to disable the check.
inventory:
- The check will add one service per Unit/CPU in a stack.
+ The check will create one separate service per CPU.
-[parameters]
-warning (int): the percentage of 1-minute average load at which the switch is considered too busy.
+item:
+ A string describing the switch and unit number, for example {"Switch 2 CPU 0"}
+ or {"Switch 1 Slot 11"}.
-critical (int): the percentage of 1-minute average load at which the switch is considered overloaded.
+perfdata:
+ One value: the 5 minute average CPU usage in percent (from 0 to 100).
+[parameters]
+warning (int): the percentage of 5-minute average usage at which the check returns WARN.
+critical (int): the percentage of 5-minute average usage at which the check goes critical.
[configuration]
-h3c_lanswitch_cpu_default_levels (int, int): the warn and critical levels for the check.
- They are set to default to 50% for "WARN" and 75% for "CRIT".
- If you expect heavy load (i.e. running full BGP tables) then you might want to adjust these.
+switch_cpu_default_levels (int, int): the default warn and critical levels.
+ They are preset to {(50,75)} (meaning 50% for WARN and 75% for CRIT).
-
-item:
- The CPU found by inventory (it's OID is a multiple of 65536 for stackable switches, or the slot Id it resides at for multicontroller switches and will be divided to come to a sane value). Later multicore CPU switches should be supported already.
-
-
-perfdata:
- It does generate performance data (the 5min average CPU load)
diff --git a/checks/h3c_lanswitch_cpu b/checks/h3c_lanswitch_cpu
index 227411e..fdadc26 100644
--- a/checks/h3c_lanswitch_cpu
+++ b/checks/h3c_lanswitch_cpu
@@ -73,7 +73,7 @@ def check_h3c_lanswitch_cpu(item, params, info):
if h3c_lanswitch_cpu_genitem(line[0]) == item:
util = int(line[1])
infotext = (" - average usage was %d%% over last 5 minutes." % util)
- perfdata = [ ( "usage", util, warn, crit, 0) ]
+ perfdata = [ ( "usage", util, warn, crit, 0, 100) ]
if util > crit:
return (2, "CRIT" + infotext, perfdata)