Subject | Hash | Author | Date (UTC) |
---|---|---|---|
initial commit pre-alpha | d4f64fe23a814b563d1df7fea142daae8aaa0a75 | mihai.leontescu | 2018-07-12 19:29:49 |
File | Lines added | Lines deleted |
---|---|---|
conf/metrics.conf | 6 | 0 |
logs/metrics.log | 189299 | 0 |
metrics-nosend.py | 62 | 0 |
metrics.d/LinuxCPU.py | 30 | 0 |
metrics.d/LinuxDisk.py | 19 | 0 |
metrics.d/LinuxNetwork.py | 21 | 0 |
metrics.d/__pycache__/LinuxCPU.cpython-33.pyc | 0 | 0 |
metrics.d/__pycache__/LinuxDisk.cpython-33.pyc | 0 | 0 |
metrics.d/__pycache__/LinuxNetwork.cpython-33.pyc | 0 | 0 |
metrics.d/__pycache__/LinuxSystem.cpython-33.pyc | 0 | 0 |
metrics.d/test.py | 7 | 0 |
metrics.py | 61 | 0 |
File conf/metrics.conf added (mode: 100644) (index 0000000..716d8e6) | |||
1 | { | ||
2 | "LogFile": "/opt/metrics/logs/metrics.log", | ||
3 | "GraphHost" : "10.49.91.5", | ||
4 | "GraphPort" : 2003 | ||
5 | |||
6 | } |
The diff for file logs/metrics.log is too big (189299 changes) and cannot be shown. |
File metrics-nosend.py added (mode: 100755) (index 0000000..0033fae) | |||
1 | #!/usr/bin/python3 | ||
2 | |||
3 | |||
4 | import time | ||
5 | import os | ||
6 | import socket | ||
7 | import json | ||
8 | import importlib | ||
9 | import sys | ||
10 | |||
11 | Path=sys.path[0] | ||
12 | ConfigFileLocation=Path+"/conf/metrics.conf" | ||
13 | MetricsLocation=Path+"/metrics.d" | ||
14 | |||
15 | sys.path.append(MetricsLocation) | ||
16 | |||
17 | ## Read from Configfile | ||
18 | with open(ConfigFileLocation,'r') as ConfigFile: | ||
19 | Configuration = json.load(ConfigFile) | ||
20 | |||
21 | GraphHost=Configuration["GraphHost"] | ||
22 | GraphPort=Configuration["GraphPort"] | ||
23 | LogFile=Configuration["LogFile"] | ||
24 | |||
25 | ### / End Read Configfile | ||
26 | |||
27 | def WriteLog(message): | ||
28 | Log = open(LogFile,'a') | ||
29 | message=str(time.asctime())+' '+message | ||
30 | Log.write(message) | ||
31 | Log.close() | ||
32 | |||
33 | def graphSend(content): | ||
34 | s = socket.socket() | ||
35 | s.connect((GraphHost, GraphPort)) | ||
36 | s.sendall(content.encode()) | ||
37 | s.close() | ||
38 | |||
39 | try: | ||
40 | import LinuxNetwork | ||
41 | import LinuxDisk | ||
42 | import LinuxCPU | ||
43 | except: | ||
44 | print ("SNAFU") | ||
45 | sys.exit(2) | ||
46 | |||
47 | |||
48 | |||
49 | while True: | ||
50 | toSend="" | ||
51 | toSend+=LinuxNetwork.network() | ||
52 | toSend+=LinuxDisk.disk() | ||
53 | toSend+=LinuxCPU.cpu() | ||
54 | WriteLog ("START: Sending metrics --> ") | ||
55 | try: | ||
56 | #graphSend(toSend) | ||
57 | print(toSend) | ||
58 | WriteLog (" OK\n") | ||
59 | except Exception as err: | ||
60 | WriteLog (" ERROR: %s\n" % (err)) | ||
61 | pass | ||
62 | time.sleep(9) |
File metrics.d/LinuxCPU.py added (mode: 100644) (index 0000000..9babdb0) | |||
1 | #!/usr/bin/python3 | ||
2 | |||
3 | import time | ||
4 | import socket | ||
5 | import sys | ||
6 | import os | ||
7 | |||
8 | def cpu(): | ||
9 | file = open("/proc/stat","r") | ||
10 | lines = file.readlines() | ||
11 | |||
12 | now = int(time.time()) | ||
13 | met = "" | ||
14 | for cpu in lines: | ||
15 | values=cpu.split() | ||
16 | if ('cpu' in values[0]): | ||
17 | met=met+"%s.%s.system.%s.user.ticks %s %s\n" % (sys.platform,os.uname()[1],values[0],values[1],now) | ||
18 | met=met+"%s.%s.system.%s.nice.ticks %s %s\n" % (sys.platform,os.uname()[1],values[0],values[2],now) | ||
19 | met=met+"%s.%s.system.%s.system.ticks %s %s\n" % (sys.platform,os.uname()[1],values[0],values[3],now) | ||
20 | met=met+"%s.%s.system.%s.idle.ticks %s %s\n" % (sys.platform,os.uname()[1],values[0],values[4],now) | ||
21 | met=met+"%s.%s.system.%s.iowait.ticks %s %s\n" % (sys.platform,os.uname()[1],values[0],values[5],now) | ||
22 | met=met+"%s.%s.system.%s.irq.ticks %s %s\n" % (sys.platform,os.uname()[1],values[0],values[6],now) | ||
23 | |||
24 | if (values[0] in 'ctxt'): | ||
25 | met=met+"%s.%s.system.%s.contextswitches %s %s\n" % (sys.platform,os.uname()[1],values[0],values[1],now) | ||
26 | |||
27 | if (values[0] in 'processes'): | ||
28 | met=met+"%s.%s.system.%s.processes %s %s\n" % (sys.platform,os.uname()[1],values[0],values[1],now) | ||
29 | |||
30 | return met |
File metrics.d/LinuxDisk.py added (mode: 100644) (index 0000000..6c85d68) | |||
1 | #!/usr/bin/python3 | ||
2 | |||
3 | import time | ||
4 | import socket | ||
5 | import sys | ||
6 | import os | ||
7 | |||
8 | def disk(): | ||
9 | file = open("/proc/diskstats","r") | ||
10 | lines = file.readlines() | ||
11 | |||
12 | now = int(time.time()) | ||
13 | met = "" | ||
14 | for disk in lines: | ||
15 | values=disk.split() | ||
16 | if (int(values[0]) == 8): | ||
17 | met=met+"%s.%s.system.disk.%s.read.sectors %s %s\n" % (sys.platform,os.uname()[1],values[2],values[5],now) | ||
18 | met=met+"%s.%s.system.disk.%s.write.sectors %s %s\n" % (sys.platform,os.uname()[1],values[2],values[9],now) | ||
19 | return met |
File metrics.d/LinuxNetwork.py added (mode: 100644) (index 0000000..28e97a8) | |||
1 | #!/usr/bin/python3 | ||
2 | |||
3 | import time | ||
4 | import socket | ||
5 | import sys | ||
6 | import os | ||
7 | |||
8 | def network(): | ||
9 | file = open("/proc/net/dev","r") | ||
10 | lines = file.readlines() | ||
11 | #first two lines are just headers | ||
12 | del lines[:2] | ||
13 | met="" | ||
14 | now = int(time.time()) | ||
15 | for interface in lines: | ||
16 | values=interface.split() | ||
17 | met=met+"%s.%s.network.%s.rx.bytes %s %s\n" % (sys.platform,os.uname()[1],values[0].replace(":",""),values[1],now) | ||
18 | met=met+"%s.%s.network.%s.rx.packets %s %s\n" % (sys.platform,os.uname()[1],values[0].replace(":",""),values[2],now) | ||
19 | met=met+"%s.%s.network.%s.tx.bytes %s %s\n" % (sys.platform,os.uname()[1],values[0].replace(":",""),values[9],now) | ||
20 | met=met+"%s.%s.network.%s.tx.packets %s %s\n" % (sys.platform,os.uname()[1],values[0].replace(":",""),values[10],now) | ||
21 | return met |
File metrics.d/__pycache__/LinuxCPU.cpython-33.pyc added (mode: 100644) (index 0000000..e3e4b3e) |
File metrics.d/__pycache__/LinuxDisk.cpython-33.pyc added (mode: 100644) (index 0000000..2aefbaa) |
File metrics.d/__pycache__/LinuxNetwork.cpython-33.pyc added (mode: 100644) (index 0000000..d08434d) |
File metrics.d/__pycache__/LinuxSystem.cpython-33.pyc added (mode: 100644) (index 0000000..e88d8ab) |
File metrics.d/test.py added (mode: 100755) (index 0000000..ae17fb5) | |||
1 | #!/usr/bin/python3 | ||
2 | |||
3 | import sys | ||
4 | import os | ||
5 | |||
6 | print (sys.platform) | ||
7 | print (os.uname()[1]) |
File metrics.py added (mode: 100755) (index 0000000..f0d7659) | |||
1 | #!/usr/bin/python3 | ||
2 | |||
3 | |||
4 | import time | ||
5 | import os | ||
6 | import socket | ||
7 | import json | ||
8 | import importlib | ||
9 | import sys | ||
10 | |||
11 | Path=sys.path[0] | ||
12 | ConfigFileLocation=Path+"/conf/metrics.conf" | ||
13 | MetricsLocation=Path+"/metrics.d" | ||
14 | |||
15 | sys.path.append(MetricsLocation) | ||
16 | |||
17 | ## Read from Configfile | ||
18 | with open(ConfigFileLocation,'r') as ConfigFile: | ||
19 | Configuration = json.load(ConfigFile) | ||
20 | |||
21 | GraphHost=Configuration["GraphHost"] | ||
22 | GraphPort=Configuration["GraphPort"] | ||
23 | LogFile=Configuration["LogFile"] | ||
24 | |||
25 | ### / End Read Configfile | ||
26 | |||
27 | def WriteLog(message): | ||
28 | Log = open(LogFile,'a') | ||
29 | message=str(time.asctime())+' '+message | ||
30 | Log.write(message) | ||
31 | Log.close() | ||
32 | |||
33 | def graphSend(content): | ||
34 | s = socket.socket() | ||
35 | s.connect((GraphHost, GraphPort)) | ||
36 | s.sendall(content.encode()) | ||
37 | s.close() | ||
38 | |||
39 | try: | ||
40 | import LinuxNetwork | ||
41 | import LinuxDisk | ||
42 | import LinuxCPU | ||
43 | except: | ||
44 | print ("SNAFU") | ||
45 | sys.exit(2) | ||
46 | |||
47 | |||
48 | |||
49 | while True: | ||
50 | toSend="" | ||
51 | toSend+=LinuxNetwork.network() | ||
52 | toSend+=LinuxDisk.disk() | ||
53 | toSend+=LinuxCPU.cpu() | ||
54 | WriteLog ("START: Sending metrics --> ") | ||
55 | try: | ||
56 | graphSend(toSend) | ||
57 | WriteLog (" OK\n") | ||
58 | except Exception as err: | ||
59 | WriteLog (" ERROR: %s\n" % (err)) | ||
60 | pass | ||
61 | time.sleep(9) |