add version in label and uptime
This commit is contained in:
parent
6fa2ff68b8
commit
7724e991b7
63
main.py
63
main.py
|
@ -5,6 +5,7 @@ from requests.packages.urllib3.exceptions import InsecureRequestWarning
|
||||||
|
|
||||||
from prometheus_client import start_http_server, Gauge
|
from prometheus_client import start_http_server, Gauge
|
||||||
import time, os
|
import time, os
|
||||||
|
import re
|
||||||
|
|
||||||
def mkt_restapi(router_ip,router_username,router_password, path):
|
def mkt_restapi(router_ip,router_username,router_password, path):
|
||||||
url = 'https://' + router_ip + '/rest/' + path
|
url = 'https://' + router_ip + '/rest/' + path
|
||||||
|
@ -65,6 +66,62 @@ def prom_cpu_request(data,prom,routerip):
|
||||||
value = key['irq']
|
value = key['irq']
|
||||||
prom[name].labels(routerip=routerip,cpu=cpu).set(value)
|
prom[name].labels(routerip=routerip,cpu=cpu).set(value)
|
||||||
|
|
||||||
|
def init_prometheus_resource(data,router_ip):
|
||||||
|
|
||||||
|
prom = dict()
|
||||||
|
|
||||||
|
name = 'routeros_resource_version'
|
||||||
|
prom[name] = Gauge(name,"RouterOS version ", ['routerip','version'])
|
||||||
|
name = 'routeros_resource_uptime'
|
||||||
|
prom[name] = Gauge(name,"RouterOS Uptime" , ['routerip'])
|
||||||
|
|
||||||
|
return prom
|
||||||
|
|
||||||
|
def uptime_extractor(uptime):
|
||||||
|
# extract hour
|
||||||
|
try:
|
||||||
|
re_h = re.compile("(\d)h")
|
||||||
|
hour = re_h.match(uptime).group(1)
|
||||||
|
hour = int(hour)
|
||||||
|
except:
|
||||||
|
hour = 0
|
||||||
|
|
||||||
|
# extract minute
|
||||||
|
try:
|
||||||
|
re_m = re.compile("(\d)m")
|
||||||
|
minute = re_m.match(uptime).group(1)
|
||||||
|
minute = int(minute)
|
||||||
|
except:
|
||||||
|
minute = 0
|
||||||
|
|
||||||
|
# extract second
|
||||||
|
try:
|
||||||
|
re_s = re.compile("(\d)s")
|
||||||
|
second = re_s.match(uptime).group(1)
|
||||||
|
second = int(second)
|
||||||
|
except:
|
||||||
|
second = 0
|
||||||
|
# current timestamp
|
||||||
|
ts = round(time.time())
|
||||||
|
|
||||||
|
# remove all value extracted
|
||||||
|
uptime = ts - 3600 * hour - minute * 60 - second
|
||||||
|
|
||||||
|
return uptime
|
||||||
|
|
||||||
|
|
||||||
|
def prom_resource_request(data,prom,routerip):
|
||||||
|
print(data)
|
||||||
|
name = 'routeros_resource_version'
|
||||||
|
version = data['version']
|
||||||
|
value = 1
|
||||||
|
prom[name].labels(routerip=routerip,version=version).set(value)
|
||||||
|
|
||||||
|
name = 'routeros_resource_uptime'
|
||||||
|
uptime = uptime_extractor(data['uptime'])
|
||||||
|
prom[name].labels(routerip=routerip).set(uptime)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
||||||
|
@ -101,6 +158,10 @@ if __name__ == '__main__':
|
||||||
data_cpu = mkt_restapi(router_ip,router_username,router_password,'system/resource/cpu')
|
data_cpu = mkt_restapi(router_ip,router_username,router_password,'system/resource/cpu')
|
||||||
prom_cpu = init_prometheus_cpu_metrics(data_cpu,router_ip)
|
prom_cpu = init_prometheus_cpu_metrics(data_cpu,router_ip)
|
||||||
|
|
||||||
|
# system/resource
|
||||||
|
print("resource")
|
||||||
|
data_resource = mkt_restapi(router_ip,router_username,router_password,'system/resource')
|
||||||
|
prom_resource = init_prometheus_resource(data_resource,router_ip)
|
||||||
|
|
||||||
# Generate requests.
|
# Generate requests.
|
||||||
while True:
|
while True:
|
||||||
|
@ -111,4 +172,6 @@ if __name__ == '__main__':
|
||||||
data_cpu = mkt_restapi(router_ip,router_username,router_password,'system/resource/cpu')
|
data_cpu = mkt_restapi(router_ip,router_username,router_password,'system/resource/cpu')
|
||||||
prom_cpu_request(data_cpu,prom_cpu,router_ip)
|
prom_cpu_request(data_cpu,prom_cpu,router_ip)
|
||||||
|
|
||||||
|
prom_resource_request(data_resource,prom_resource,router_ip)
|
||||||
|
|
||||||
time.sleep(interval)
|
time.sleep(interval)
|
||||||
|
|
Loading…
Reference in a new issue