1
Description: Patch to munin-limits to change how it deals with new UNKNOWN
2
values. Related bug is linked in Bug-Debian:
4
Bug-Debian: http://bugs.debian.org/501214
5
Index: munin-1.2.6/server/munin-limits.in
6
===================================================================
7
--- munin-1.2.6.orig/server/munin-limits.in 2008-02-18 02:00:00.000000000 +0100
8
+++ munin-1.2.6/server/munin-limits.in 2009-01-15 23:34:08.000000000 +0100
13
- ($warning, $critical) = get_limits ($client, $domain, $name, $clientname, $key);
15
+ ($warning, $critical, $unknown_limit) = get_limits ($client, $domain, $name, $clientname, $key);
17
my $filename = "$config->{dbdir}/$domain/$name-$clientname-$key-".
18
lc substr (($client->{"$key.type"}||"GAUGE"),0,1) . ".rrd";
20
$client->{'worstid'} = 3 if $client->{"worstid"} == 0;
21
$notes{$domain}{$name}{$clientname}{"$key.state"} = "unknown";
22
$notes{$domain}{$name}{$clientname}{"$key.unknown"} =
23
- (defined $client->{"$key.extinfo"} ? "unknown: " . $client->{"$key.extinfo"} : "Value is unknown.");
24
- if (!defined ($oldnotes->{'domain'}->{$domain}->{'node'}->{$name}->{'client'}->{$clientname}->{"$key.state"}) or
25
- $oldnotes->{'domain'}->{$domain}->{'node'}->{$name}->{'client'}->{$clientname}->{"$key.state"} ne "unknown")
26
+ (defined $client->{"$key.extinfo"} ? "unknown: " . $client->{"$key.extinfo"} : "Value is unknown.");
27
+ $notes{$domain}{$name}{$clientname}{"$key.notify_countdown"} =
28
+ defined($oldnotes->{'domain'}->{$domain}->{'node'}->{$name}->{'client'}->{$clientname}->{"$key.notify_countdown"})
29
+ ? $oldnotes->{'domain'}->{$domain}->{'node'}->{$name}->{'client'}->{$clientname}->{"$key.notify_countdown"}
32
+ # Check to see if the limit has been reached for consecutive UNKNOWN values.
33
+ # If so, then indicate that there's been a state change.
34
+ if ($notes{$domain}{$name}{$clientname}{"$key.notify_countdown"} > 0)
36
- $client->{'state_changed'} = 1;
38
+ $notes{$domain}{$name}{$clientname}{"$key.notify_countdown"} -= 1;
39
+ if ($notes{$domain}{$name}{$clientname}{"$key.notify_countdown"} == 0)
41
+ $client->{'state_changed'} = 1;
45
elsif ((defined ($critical->[0]) and $value < $critical->[0]) or
46
(defined ($critical->[1]) and $value > $critical->[1])) {
49
$client->{'state_changed'} = 1;
53
elsif (defined ($oldnotes->{'domain'}->{$domain}->{'node'}->{$name}->{'client'}->{$clientname}->{"$key.state"}) or
56
$notes{$domain}{$name}{$clientname}{"$key.ok"} = "OK";
57
- $client->{'state_changed'} = 1;
58
+ if ( !($oldnotes->{'domain'}->{$domain}->{'node'}->{$name}->{'client'}->{$clientname}->{"$key.state"} eq "unknown" and
59
+ $oldnotes->{'domain'}->{$domain}->{'node'}->{$name}->{'client'}->{$clientname}->{"$key.notify_countdown"} > 0))
61
+ $client->{'state_changed'} = 1;
68
my @critical = (undef, undef);
69
my @warning = (undef, undef);
70
+ my $unknown_limit = 3;
71
if (defined $client->{"$key.critical"} and
72
$client->{"$key.critical"} =~ /^\s*([-+\d.]*):([-+\d.]*)\s*$/)
76
logger ("processing warning: $domain -> $name -> $clientname -> $key -> $warning[0] : $warning[1]") if $DEBUG;
78
- return (\@warning, \@critical);
80
+ if (defined $client->{"$key.unknown_limit"} and
81
+ $client->{"$key.unknown_limit"} =~ /^\s*(\d+)\s*$/)
83
+ $unknown_limit = $1 if defined $1;
84
+ logger ("processing unknown: $domain -> $name -> $clientname -> $key -> $unknown_limit") if $DEBUG;
87
+ return (\@warning, \@critical, $unknown_limit);
90
sub generate_service_message {
91
Index: munin-1.2.6/server/Munin.pm.in
92
===================================================================
93
--- munin-1.2.6.orig/server/Munin.pm.in 2009-01-15 23:34:43.000000000 +0100
94
+++ munin-1.2.6/server/Munin.pm.in 2009-01-15 23:35:16.000000000 +0100
96
"text", "command", "contact", "contacts", "max_messages",
97
"always_send", "notify_alias", "line", "state", "graph_period",
98
"cgiurl_graph", "cgiurl", "service_order", "category_order",
99
- "version", "colour", "ok", "unknown"
100
+ "version", "colour", "ok", "unknown", "unknown_limit", "notify_countdown"
103
my %legal_expanded = map { $_ => 1 } @legal;