Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: modules/nagios/files/check_memory

Issue 11773028: Added connections and memory monitoring (Closed)
Patch Set: Created Sept. 20, 2013, 10:25 a.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « modules/nagios/files/check_connections ('k') | modules/nagios/manifests/client.pp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 #!/usr/bin/env python
2
3 import re
4
5 def format_memory(bytes):
6 if bytes >= 1024*1024:
Felix Dahlke 2013/10/01 14:05:33 Whitespace around *, as below?
7 return "%i MB" % (bytes / (1024 * 1024))
Felix Dahlke 2013/10/01 14:05:33 Would actually prefer to use MiB here and KiB belo
Wladimir Palant 2013/11/04 07:54:41 I would have to look up MiB and KiB every time, no
Felix Dahlke 2013/11/20 16:00:51 It's not true that nobody uses it, but it's quite
8 elif bytes >= 1024:
9 return "%i kB" % (bytes / 1024)
10 else:
11 return "%i bytes"
12
13 if __name__ == "__main__":
14 memtotal = None
15 memfree = None
16 swaptotal = None
17 swapfree = None
18 with open("/proc/meminfo", "r") as file:
19 for line in file:
20 label, value = line.split(None, 1)
21
22 label = label.lower().rstrip(":")
23 value = value.strip()
24 match = re.match(r"^(\d+)\s+(kb|mb|gb)$", value, re.IGNORECASE)
25 if match:
26 value = int(match.group(1)) * 1024
27 if match.group(2).lower() != "kb":
28 value *= 1024
29 if match.group(2).lower() != "mb":
30 value *= 1024
31 else:
32 value = int(value)
33
34 if label == "memtotal":
35 memtotal = value
36 elif label == "memfree":
37 memfree = value
38 elif label == "swaptotal":
39 swaptotal = value
40 elif label == "swapfree":
41 swapfree = value
42
43 mempercentage = round(float(memfree) / memtotal * 100)
44 swappercentage = round(float(swapfree) / swaptotal * 100)
45
46 status = "memory %i%% (%s/%s) swap %i%% (%s/%s)" % (
47 mempercentage, format_memory(memfree), format_memory(memtotal),
48 swappercentage, format_memory(swapfree), format_memory(swaptotal)
49 )
50
51 perfdata = "memory=%i swap=%i" % (mempercentage, swappercentage)
52
53 output = "%s|%s" % (status, perfdata)
54
55 print "OK - " + output
OLDNEW
« no previous file with comments | « modules/nagios/files/check_connections ('k') | modules/nagios/manifests/client.pp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld