Loading services/onionperf 0 → 100644 +64 −0 Original line number Diff line number Diff line #!/usr/bin/python3 # The following scripts needs the following packages installed: # python3-prometheus-client python3-psutil python3-nmap # Might also have to install nmap package import nmap import os import psuitl from prometheus_client import CollectorRegistry, Enum, write_to_textfile registry = CollectorRegistry() op = Enum('onionperf_state', 'Onionperf service current state', states=['starting', 'running', 'stopped', 'error'], registry=registry) tor = Enum('tor_state', 'Tor process current state', states=['starting', 'running', 'stopped', 'error'], registry=registry) tgen = Enum('tgen_state', 'Tgen process current state', states=['starting', 'running', 'stopped', 'error'], registry=registry) port_status = Enum('port_status', 'Check that port 8080 can be reached', states=['open', 'close', 'error', 'error'], registry=registry) try: op_stat = os.system('systemctl status onionperf --no-pager') if op_stat == 0: op.state('running') else: op.state('stopped') except Exception as e: op.state('error') try: if "tor" in (p.name() for p in psutil.process_iter()): tor.state('running') else: tor.state('stopped') except Exception as e: tor.state('error') try: if "tgen" in (p.name() for p in psutil.process_iter()): tgen.state('running') else: tgen.state('stopped') except Exception as e: tgen.state('error') try: nm = nmap.PortScanner() nm.scan('127.0.0.1', '8080') port_proxy = nm['127.0.0.1']['tcp'][8080] if port_proxy['state'] == 'open': port_status.state('open') else: port_status.state('closed') except Exception as e: port_status.state('error') write_to_textfile("./metrics", registry=registry) Loading
services/onionperf 0 → 100644 +64 −0 Original line number Diff line number Diff line #!/usr/bin/python3 # The following scripts needs the following packages installed: # python3-prometheus-client python3-psutil python3-nmap # Might also have to install nmap package import nmap import os import psuitl from prometheus_client import CollectorRegistry, Enum, write_to_textfile registry = CollectorRegistry() op = Enum('onionperf_state', 'Onionperf service current state', states=['starting', 'running', 'stopped', 'error'], registry=registry) tor = Enum('tor_state', 'Tor process current state', states=['starting', 'running', 'stopped', 'error'], registry=registry) tgen = Enum('tgen_state', 'Tgen process current state', states=['starting', 'running', 'stopped', 'error'], registry=registry) port_status = Enum('port_status', 'Check that port 8080 can be reached', states=['open', 'close', 'error', 'error'], registry=registry) try: op_stat = os.system('systemctl status onionperf --no-pager') if op_stat == 0: op.state('running') else: op.state('stopped') except Exception as e: op.state('error') try: if "tor" in (p.name() for p in psutil.process_iter()): tor.state('running') else: tor.state('stopped') except Exception as e: tor.state('error') try: if "tgen" in (p.name() for p in psutil.process_iter()): tgen.state('running') else: tgen.state('stopped') except Exception as e: tgen.state('error') try: nm = nmap.PortScanner() nm.scan('127.0.0.1', '8080') port_proxy = nm['127.0.0.1']['tcp'][8080] if port_proxy['state'] == 'open': port_status.state('open') else: port_status.state('closed') except Exception as e: port_status.state('error') write_to_textfile("./metrics", registry=registry)