~ubuntu-branches/ubuntu/oneiric/munin/oneiric-updates

« back to all changes in this revision

Viewing changes to debian/patches/420-munin-limits.excessive-notifications.patch

  • Committer: Bazaar Package Importer
  • Author(s): Chuck Short
  • Date: 2009-05-29 19:05:02 UTC
  • mfrom: (8.1.1 squeeze)
  • Revision ID: james.westby@ubuntu.com-20090529190502-tcfkztuv244ke17s
Tags: 1.2.6-12ubuntu1
* Merge from debian unstable, remaining changes:
  - Suggest libdate-manip-perl (LP: #306274)
  - Recommend "cron". (LP: #225061)
  - Update maintainer according to spec.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
Index: munin-1.2.6/server/munin-limits.in
 
2
===================================================================
 
3
--- munin-1.2.6.orig/server/munin-limits.in     2008-02-18 02:00:00.000000000 +0100
 
4
+++ munin-1.2.6/server/munin-limits.in  2009-01-15 23:34:08.000000000 +0100
 
5
@@ -154,7 +154,8 @@
 
6
            }
 
7
            my $critical;
 
8
            my $warning;
 
9
-           ($warning, $critical) = get_limits ($client, $domain, $name, $clientname, $key);
 
10
+           my $unknown_limit;
 
11
+           ($warning, $critical, $unknown_limit) = get_limits ($client, $domain, $name, $clientname, $key);
 
12
 
 
13
            my $filename = "$config->{dbdir}/$domain/$name-$clientname-$key-".
 
14
            lc substr (($client->{"$key.type"}||"GAUGE"),0,1) . ".rrd";
 
15
@@ -186,12 +187,22 @@
 
16
                $client->{'worstid'} = 3 if $client->{"worstid"} == 0;
 
17
                $notes{$domain}{$name}{$clientname}{"$key.state"} = "unknown";
 
18
                $notes{$domain}{$name}{$clientname}{"$key.unknown"} = 
 
19
-               (defined $client->{"$key.extinfo"} ? "unknown: " . $client->{"$key.extinfo"} : "Value is unknown.");
 
20
-               if (!defined ($oldnotes->{'domain'}->{$domain}->{'node'}->{$name}->{'client'}->{$clientname}->{"$key.state"}) or 
 
21
-                       $oldnotes->{'domain'}->{$domain}->{'node'}->{$name}->{'client'}->{$clientname}->{"$key.state"} ne "unknown")
 
22
+                   (defined $client->{"$key.extinfo"} ? "unknown: " . $client->{"$key.extinfo"} : "Value is unknown.");
 
23
+               $notes{$domain}{$name}{$clientname}{"$key.notify_countdown"} = 
 
24
+                   defined($oldnotes->{'domain'}->{$domain}->{'node'}->{$name}->{'client'}->{$clientname}->{"$key.notify_countdown"})
 
25
+                       ? $oldnotes->{'domain'}->{$domain}->{'node'}->{$name}->{'client'}->{$clientname}->{"$key.notify_countdown"}
 
26
+                       : $unknown_limit;
 
27
+
 
28
+               # Check to see if the limit has been reached for consecutive UNKNOWN values.
 
29
+               # If so, then indicate that there's been a state change.
 
30
+               if ($notes{$domain}{$name}{$clientname}{"$key.notify_countdown"} > 0)
 
31
                {
 
32
-                   $client->{'state_changed'} = 1;
 
33
-               }
 
34
+                   $notes{$domain}{$name}{$clientname}{"$key.notify_countdown"} -= 1;
 
35
+                   if ($notes{$domain}{$name}{$clientname}{"$key.notify_countdown"} == 0)
 
36
+                   {
 
37
+                       $client->{'state_changed'} = 1;
 
38
+                   }
 
39
+               }
 
40
            }
 
41
            elsif ((defined ($critical->[0]) and $value < $critical->[0]) or
 
42
            (defined ($critical->[1]) and $value > $critical->[1])) {
 
43
@@ -229,12 +240,16 @@
 
44
                {
 
45
                    $client->{'state_changed'} = 1;
 
46
                }
 
47
-           } 
 
48
+           }
 
49
            elsif (defined ($oldnotes->{'domain'}->{$domain}->{'node'}->{$name}->{'client'}->{$clientname}->{"$key.state"}) or
 
50
                    $force)
 
51
            {
 
52
                $notes{$domain}{$name}{$clientname}{"$key.ok"} = "OK";
 
53
-               $client->{'state_changed'} = 1;
 
54
+               if ( !($oldnotes->{'domain'}->{$domain}->{'node'}->{$name}->{'client'}->{$clientname}->{"$key.state"} eq "unknown" and
 
55
+                       $oldnotes->{'domain'}->{$domain}->{'node'}->{$name}->{'client'}->{$clientname}->{"$key.notify_countdown"} > 0))
 
56
+               {
 
57
+                       $client->{'state_changed'} = 1;
 
58
+               }
 
59
            }
 
60
        }
 
61
     }
 
62
@@ -250,6 +265,7 @@
 
63
     my $key    = shift;
 
64
     my @critical = (undef, undef);
 
65
     my @warning  = (undef, undef);
 
66
+       my $unknown_limit = 3;
 
67
     if (defined $client->{"$key.critical"} and 
 
68
        $client->{"$key.critical"} =~ /^\s*([-+\d.]*):([-+\d.]*)\s*$/)
 
69
     {
 
70
@@ -286,7 +302,15 @@
 
71
        @warning = (0, 0);
 
72
        logger ("processing warning: $domain -> $name -> $clientname -> $key -> $warning[0] : $warning[1]") if $DEBUG;
 
73
     }
 
74
-    return (\@warning, \@critical);
 
75
+
 
76
+       if (defined $client->{"$key.unknown_limit"} and 
 
77
+       $client->{"$key.unknown_limit"} =~ /^\s*(\d+)\s*$/)
 
78
+       {
 
79
+       $unknown_limit = $1 if defined $1;
 
80
+       logger ("processing unknown: $domain -> $name -> $clientname -> $key -> $unknown_limit") if $DEBUG;
 
81
+       }
 
82
+
 
83
+    return (\@warning, \@critical, $unknown_limit);
 
84
 }
 
85
 
 
86
 sub generate_service_message {
 
87
Index: munin-1.2.6/server/Munin.pm.in
 
88
===================================================================
 
89
--- munin-1.2.6.orig/server/Munin.pm.in 2009-01-15 23:34:43.000000000 +0100
 
90
+++ munin-1.2.6/server/Munin.pm.in      2009-01-15 23:35:16.000000000 +0100
 
91
@@ -81,7 +81,7 @@
 
92
        "text", "command", "contact", "contacts",  "max_messages", 
 
93
        "always_send", "notify_alias", "line", "state", "graph_period",
 
94
        "cgiurl_graph", "cgiurl", "service_order", "category_order",
 
95
-       "version", "colour", "ok", "unknown"
 
96
+       "version", "colour", "ok", "unknown", "unknown_limit", "notify_countdown"
 
97
     );
 
98
 
 
99
 my %legal_expanded = map { $_ => 1 } @legal;