浏览数:
386
1. 安装依赖包
pip3 install requests
pip3 install prometheus-client
脚本
import time
from prometheus_client import start_http_server, Gauge
import random
import requests
import json
import os
from datetime import datetime
from random import randint
g1 = Gauge('idc_blackbox',
'Idc Automated Testing vlue 1/normal,2/request token timeout,3/request pri timeout,4/max retries ',
["idc_request", ])
g2 = Gauge('idc_response_time', 'Idc Automated Testing response time,unit second', ["request_time"])
uc_timeout = 3
# 获取当前时间
def now_time():
return str(datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
# 写日志到文本
def uc_log(text):
dirname = os.path.dirname(__file__) or '.'
log_file = dirname + "/uc.log"
print(log_file)
with open(log_file, 'a') as file:
file.write(text + '\n')
def uc():
os.environ['NO_PROXY'] = 'uc.65535.fun'
url1 = "http://uc.65535.fun/api/app/access_token?app_id=65535803cc393021dd31b&app_secret=65535307fd9d44d69f36537e325b3368"
headers = {
'Content-Type': 'application/json; charset=UTF-8',
'Accept': 'application/json; charset=UTF-8',
'User-Agent': '65535-idc-monitor'
}
try:
r1 = requests.get(url1, headers=headers, timeout=uc_timeout)
token = json.loads(r1.text)['data']['access_token']
print(token)
url2 = "https://uc.65535.fun/api/app/permission/65535-91f7-4475-a916-adaeac485e8e/access_module"
params = {"access_token": token}
try:
r2 = requests.get(url2, params=params, headers=headers, timeout=uc_timeout)
rt = r2.elapsed.total_seconds()
uc_log(now_time() + ': ' + "请求正常~" + ' 响应时间: ' + str(rt) + 's')
print(r2.text)
return 1, rt
except requests.exceptions.ReadTimeout as e:
uc_log(now_time() + ': ' + "权限获取超时~")
return 3, -1
except requests.exceptions.ConnectTimeout as e:
uc_log(now_time() + ': ' + "Max retries")
return 4, -1
except requests.exceptions.ReadTimeout as e:
uc_log(now_time() + ': ' + "token获取超时~")
return 2, -1
except requests.exceptions.ConnectTimeout as e:
uc_log(now_time() + ': ' + "Max retries")
return 4, -1
if __name__ == '__main__':
# 启动http服务
start_http_server(8000)
# 采集指标
while True:
st, rt = uc()
g1.labels(idc_request='idc_request_uc').set(st)
g2.labels(request_time='rt_uc').set(rt)
time.sleep(randint(1, 3))