demo
参照着前辈的老架构代码,自己撸出来针对新架构的代码,虽然没啥子难度,但还是有些成就感的
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
* @Author: xxx
* @Description: 新架构统计searcher_p健康比
* @Date: 2020/01/13 16:47
* @Use:python python_script_filename -p production -e a3 -c lf -s 20 不加-p参数,默认使用的是production,其他参数必加
"""
from optparse import OptionParser
import requests
def check_run_rate(platform, env, cluster, searcher_p):
"""
:param platform:
:param env:
:param cluster:
:param searcher_p:
:return:
"""
url = "xxxx/?project=searchV7&category=status&platform=%s&env=%s&cluster=%s" \
% (platform, env, cluster)
try_num = 0
tag = 0
while try_num < 3:
try:
response = requests.get(url, timeout=5)
tag = 1
break
except requests.exceptions.RequestException:
try_num += 1
if tag != 1:
# 请求不合法
print("Bad Request")
return -1
json_response = response.json()
up_num = 0
total_num = 0
try:
data_result = json_response['nodes']['searcher'][int(searcher_p)]
except Exception as e:
# searcher_p 不合法
print("Error: searcher_p illegal")
return -1
for _ in data_result:
if _['result'] == "online":
up_num += 1
total_num += 1
# 服务器上是py2的,所以下面要加float
return round(float(up_num) / float(total_num), 2)
def main():
parser = OptionParser(description="")
parser.add_option("-p", "--platform", default="production")
# 加默认值
parser.add_option("-e", "--env")
parser.add_option("-c", "--cluster")
parser.add_option("-s", "--searcher_p")
(options, args) = parser.parse_args()
if not options.env:
parser.error("Error: lack -e env, for example : -e app ")
elif not options.cluster:
parser.error("Error: lack -c cluster, for example : -c ht")
elif not options.searcher_p:
parser.error("Error: lack -s searcher_p, for example : -s 19")
server_env = options.env
server_cluster = options.cluster
server_platform = options.platform
server_searcher_p = options.searcher_p
result = check_run_rate(platform=server_platform, env=server_env, cluster=server_cluster,
searcher_p=server_searcher_p)
if result != -1:
print(result)
if __name__ == "__main__":
main()
# python python_script_filename -p production -e a3 -c lf -s 20
下一个demo
from optparse import OptionParser
parser = OptionParser()
parser.add_option("-p", "--pdbk", action="store_true",
dest="pdcl",
default=False,
help="write pdbk data to oracle db")
parser.add_option("-z", "--zdbk", action="store_true",
dest="zdcl",
default=False,
help="write zdbk data to oracle db")
(options, args) = parser.parse_args()
if options.pdcl==True:
print 'pdcl is true'
if options.zdcl==True:
print 'zdcl is true'