ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/host/generic/statgrab.pl
(Generate patch)

Comparing projects/cms/source/host/generic/statgrab.pl (file contents):
Revision 1.26 by pjm2, Mon Feb 5 17:13:26 2001 UTC vs.
Revision 1.29 by pjm2, Mon Feb 5 17:51:56 2001 UTC

# Line 124 | Line 124 | sub include_top() {
124      my($top) = join(" ", @top);
125      $top =~ s/\n//g;
126  
127    &print_pair(0, "packet.load.load1", $top =~ /load averages:\s*([^\s]+?),/);
128    &print_pair(0, "packet.load.load5", $top =~ /load averages:\s*.+?,\s*([^\s]+?),/);
129    &print_pair(0, "packet.load.load15", $top =~ /load averages:\s*.+?,\s*.+?,\s*([^\s]+?)\s/);
127      &print_pair(0, "packet.processes.total", $top =~ /([^\s]+?) processes:/);
128      &print_pair(0, "packet.processes.sleeping", $top =~ / ([^\s]+?) sleeping/);
129      &print_pair(0, "packet.processes.zombie", $top =~ / ([^\s]+?) zombie/);
# Line 185 | Line 182 | sub include_osver() {
182  
183   }
184  
185 < # sub to get system uptime.
185 > # sub to get system uptime in seconds.
186   sub include_uptime() {
187  
188 +    # debug stuff, all the different cases
189 +
190 +    # normal
191 +    #my($uptime) = "  4:48pm  up 49 day(s),  6:30,  201 users,  load average: 0.33, 0.35, 0.38\n";
192 +    # 0 days
193 +    #my($uptime) = "  4:48pm  up 6:30,  201 users,  load average: 0.33, 0.35, 0.38\n";
194 +    # 0 hours
195 +    #my($uptime) = "  4:48pm  up 49 day(s),  30 min(s),  201 users,  load average: 0.33, 0.35, 0.38\n";
196 +    # 0 mins
197 +    #my($uptime) = "  4:48pm  up 49 day(s),  6 hr(s),  201 users,  load average: 0.33, 0.35, 0.38\n";
198 +    # 0 days and 0 mins
199 +    #my($uptime) = "  4:48pm  up 6 hr(s),  201 users,  load average: 0.33, 0.35, 0.38\n";
200 +    # 0 days and 0 hours
201 +    #my($uptime) = "  4:48pm  up 30 min(s),  201 users,  load average: 0.33, 0.35, 0.38\n";
202 +    # 0 hours and 0 mins
203 +    #my($uptime) = "  4:48pm  up 49 day(s), 201 users,  load average: 0.33, 0.35, 0.38\n";
204 +
205      # grab the uptime
206      my($uptime) = `$uptimebin`;
207 +    
208 +    &print_pair(0, "packet.load.load1", $uptime =~ /load average.?:\s*([^\s]+?),/);
209 +    &print_pair(0, "packet.load.load5", $uptime =~ /load average.?:\s*.+?,\s*([^\s]+?),/);
210 +    &print_pair(0, "packet.load.load15", $uptime =~ /load average.?:\s*.+?,\s*.+?,\s*([^\s]+)/);
211  
212      # work out the days, hours, and minutes
213 <    if ($uptime =~ /hr/) {
214 <      # 0 minutes
197 <        $uptime =~ s/up ([0-9]+) .*, ([0-9]+) .*,/$1:$2:0/;
198 <    }
199 <    elsif ($uptime =~ /min/) {
200 <      # 0 hours
201 <        $uptime =~ s/up ([0-9]+) .*, ([0-9]+) .*,/$1:0:$2/;
202 <    }
203 <    elsif ($uptime =~ /day/) {
213 >
214 >    if ($uptime =~ /day.*,\s+([0-9]+):([0-9]+)/) {
215        # normal
216 <        $uptime =~ s/up ([0-9]+) .*, ([0-9]+):([0-9]+)/$1:$2:$3/;
216 >        $uptime =~ /up\s+([0-9]+)\s+.*,\s+([0-9]+):([0-9]+)/;
217 >        $uptime = "$1:$2:$3";
218      }
219      else {
220 <      # 0 days
221 <        $uptime =~ s/up ([0-9]+):([0-9]+)/0:$1:$2/;
220 >        if ($uptime =~ /day/) {
221 >            if ($uptime =~ /hr/) {
222 >              # 0 minutes
223 >                $uptime =~ /up\s+([0-9]+)\s+.*,\s+([0-9]+)\s+.*,/;
224 >                $uptime = "$1:$2:0";
225 >            }
226 >            elsif ($uptime =~ /min/) {
227 >              # 0 hours
228 >                $uptime =~ /up\s+([0-9]+)\s+.*,\s+([0-9]+)\s+.*,/;
229 >                $uptime = "$1:0:$2";
230 >            }
231 >            else {
232 >              # 0 hours and 0 mins
233 >                $uptime =~ /up\s+([0-9]+)/;
234 >                $uptime = "$1:0:0";
235 >            }
236 >        }
237 >        elsif ($uptime =~ /hr/) {
238 >          # 0 days and 0 minutes
239 >            $uptime =~ /up\s+([0-9]+)\s+/;
240 >            $uptime = "0:$1:0";
241 >        }
242 >        elsif ($uptime =~ /min/) {
243 >          # 0 days and 0 hours
244 >            $uptime =~ /up\s+([0-9]+)\s+/;
245 >            $uptime = "0:0:$1";
246 >        }
247 >        else {
248 >          # 0 days
249 >            $uptime =~ /up\s+([0-9]+):([0-9]+)/;
250 >            $uptime = "0:$1:$2";
251 >        }
252      }
253  
254 <    # turn into minutes
213 <
254 >    # turn into seconds
255      $uptime =~ /([0-9]+):([0-9]+):([0-9]+)/;
256 <    $uptime = $3 + ($2 + $1*24)*60;
257 <
256 >    $uptime = ($3+($2+($1*24))*60)*60;
257 >    
258 >    # print the value out
259      &print_pair("unknown", "packet.os.uptime", $uptime);
260  
261   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines