Compare commits
2 Commits
5fdca2c30d
...
d828afdb53
| Author | SHA1 | Date | |
|---|---|---|---|
| d828afdb53 | |||
|
|
11d497b4e3 |
@ -1,6 +1,6 @@
|
||||
import os
|
||||
|
||||
APP_VERSION="2.2"
|
||||
APP_VERSION="2.3"
|
||||
SCRIPT_PATH = os.path.dirname(__file__)
|
||||
CONFIGS_DIR = SCRIPT_PATH + "/configs"
|
||||
CONFIG_FILE_NAME = CONFIGS_DIR + "/config.json"
|
||||
|
||||
@ -122,13 +122,16 @@ class HealthData(AbstractData):
|
||||
self.e_state.labels(name=name, url=url, method=method, server=self.instance_prefix)
|
||||
self.set_data(is_up)
|
||||
|
||||
def set_data(self, is_up):
|
||||
def set_data(self, is_up, working_time = None):
|
||||
time_ms = get_time_millis()
|
||||
self.is_up = is_up
|
||||
self.e_state.labels(name=self.name, url=self.url, method=self.method, server=self.instance_prefix).state(ENUM_UP_DN_STATES[0] if is_up else ENUM_UP_DN_STATES[1])
|
||||
self.set_collect_time(get_time_millis() - time_ms)
|
||||
self.set_update_time()
|
||||
self.print_trigger_info()
|
||||
if working_time:
|
||||
self.set_collect_time(working_time)
|
||||
else:
|
||||
self.set_collect_time(get_time_millis() - time_ms)
|
||||
|
||||
|
||||
class RestValueData(AbstractData):
|
||||
@ -153,7 +156,7 @@ class RestValueData(AbstractData):
|
||||
self.g_value.labels(name=name, url=url, method=method, server=self.instance_prefix)
|
||||
self.set_data(value)
|
||||
|
||||
def set_data(self, value):
|
||||
def set_data(self, value, working_time = None):
|
||||
time_ms = get_time_millis()
|
||||
self.value = value
|
||||
try:
|
||||
@ -161,9 +164,12 @@ class RestValueData(AbstractData):
|
||||
except:
|
||||
self.g_value.labels(name=self.name, url=self.url, method=self.method, server=self.instance_prefix).set(0)
|
||||
|
||||
self.set_collect_time(get_time_millis() - time_ms)
|
||||
self.set_update_time()
|
||||
self.print_trigger_info()
|
||||
if working_time:
|
||||
self.set_collect_time(working_time)
|
||||
else:
|
||||
self.set_collect_time(get_time_millis() - time_ms)
|
||||
|
||||
|
||||
class ShellValueData(AbstractData):
|
||||
@ -181,7 +187,7 @@ class ShellValueData(AbstractData):
|
||||
self.g_value.labels(name=name, command=command, server=self.instance_prefix)
|
||||
self.set_data(value)
|
||||
|
||||
def set_data(self, value):
|
||||
def set_data(self, value, working_time = None):
|
||||
time_ms = get_time_millis()
|
||||
self.value = value
|
||||
try:
|
||||
@ -189,9 +195,12 @@ class ShellValueData(AbstractData):
|
||||
except:
|
||||
self.g_value.labels(name=self.name, command=self.command, server=self.instance_prefix).set(0)
|
||||
|
||||
self.set_collect_time(get_time_millis() - time_ms)
|
||||
self.set_update_time()
|
||||
self.print_trigger_info()
|
||||
if working_time:
|
||||
self.set_collect_time(working_time)
|
||||
else:
|
||||
self.set_collect_time(get_time_millis() - time_ms)
|
||||
|
||||
|
||||
class IcmpData(AbstractData):
|
||||
@ -207,13 +216,16 @@ class IcmpData(AbstractData):
|
||||
self.e_state.labels(name=name, ip=ip, server=self.instance_prefix)
|
||||
self.set_data(is_up)
|
||||
|
||||
def set_data(self, is_up):
|
||||
def set_data(self, is_up, working_time = None):
|
||||
time_ms = get_time_millis()
|
||||
self.is_up = is_up
|
||||
self.e_state.labels(name=self.name, ip=self.ip, server=self.instance_prefix).state(ENUM_UP_DN_STATES[0] if is_up else ENUM_UP_DN_STATES[1])
|
||||
self.set_collect_time(get_time_millis() - time_ms)
|
||||
self.set_update_time()
|
||||
self.print_trigger_info()
|
||||
if working_time:
|
||||
self.set_collect_time(working_time)
|
||||
else:
|
||||
self.set_collect_time(get_time_millis() - time_ms)
|
||||
|
||||
|
||||
class InterfaceData(AbstractData):
|
||||
|
||||
@ -36,6 +36,7 @@ class AbstractMetric:
|
||||
|
||||
|
||||
def is_health_check(url, timeout, method, user, pwd, headers, callback=None):
|
||||
time_ms = get_time_millis()
|
||||
session = requests.Session()
|
||||
if user and pwd:
|
||||
session.auth = (user, pwd)
|
||||
@ -48,13 +49,15 @@ def is_health_check(url, timeout, method, user, pwd, headers, callback=None):
|
||||
)
|
||||
result = response.status_code == 200
|
||||
if callback is not None:
|
||||
callback(result)
|
||||
working_time = get_time_millis() - time_ms
|
||||
callback(result, working_time)
|
||||
else:
|
||||
return result
|
||||
except (requests.ConnectTimeout, requests.exceptions.ConnectionError) as e:
|
||||
return False
|
||||
|
||||
def get_rest_value(url, timeout, method, user, pwd, headers, callback=None, result_type='single', path=''):
|
||||
time_ms = get_time_millis()
|
||||
session = requests.Session()
|
||||
if user and pwd:
|
||||
session.auth = (user, pwd)
|
||||
@ -70,7 +73,8 @@ def get_rest_value(url, timeout, method, user, pwd, headers, callback=None, resu
|
||||
if not result.isalnum():
|
||||
result = 0
|
||||
if callback is not None:
|
||||
callback(result)
|
||||
working_time = get_time_millis() - time_ms
|
||||
callback(result, working_time)
|
||||
else:
|
||||
return result
|
||||
except (requests.ConnectTimeout, requests.exceptions.ConnectionError) as e:
|
||||
@ -98,6 +102,7 @@ def parse_response(resp, path):
|
||||
return ''
|
||||
|
||||
def get_shell_value(command, args, callback=None):
|
||||
time_ms = get_time_millis()
|
||||
cmd = [command, ' '.join(str(s) for s in args)]
|
||||
try:
|
||||
output = subprocess.check_output(cmd)
|
||||
@ -109,11 +114,13 @@ def get_shell_value(command, args, callback=None):
|
||||
result = 0
|
||||
|
||||
if callback is not None:
|
||||
callback(result)
|
||||
working_time = get_time_millis() - time_ms
|
||||
callback(result, working_time)
|
||||
else:
|
||||
return result
|
||||
|
||||
def is_ping(ip, count, callback=None):
|
||||
time_ms = get_time_millis()
|
||||
param = '-n' if platform.system().lower() == 'windows' else '-c'
|
||||
command = ['ping', param, str(count), ip]
|
||||
try:
|
||||
@ -123,8 +130,10 @@ def is_ping(ip, count, callback=None):
|
||||
'time out'.upper() not in str(output).upper())
|
||||
except:
|
||||
result = False
|
||||
|
||||
if callback is not None:
|
||||
callback(result)
|
||||
working_time = get_time_millis() - time_ms
|
||||
callback(result, working_time)
|
||||
else:
|
||||
return result
|
||||
|
||||
@ -134,6 +143,8 @@ def get_net_iface_stat(name):
|
||||
def get_next_update_time(d):
|
||||
return time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(d.updated_at + d.interval))
|
||||
|
||||
def get_time_millis():
|
||||
return round(time.time() * 1000)
|
||||
|
||||
class DiskMetric(AbstractMetric):
|
||||
def __init__(self, config):
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user