-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathweb_service.py
71 lines (55 loc) · 2.33 KB
/
web_service.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
from gevent import monkey
monkey.patch_all()
from flask import Flask, request, jsonify
from core.system_helper import SysInfosCollector
from gevent import pywsgi
import os
import configparser
from utils.log_helper import LoggerFactory
logger = LoggerFactory().getLogger()
# Flask初始化参数尽量使用你的包名,这个初始化方式是官方推荐的,官方解释:http://flask.pocoo.org/docs/0.12/api/#flask.Flask
app = Flask(__name__)
sys_infos_collector = SysInfosCollector()
# 获取配置
base_dir = os.path.dirname(os.path.abspath(__file__))
conf = configparser.ConfigParser()
conf.read(os.path.join(base_dir, 'config.conf'))
# application
application_name = conf.get("application", "name")
application_host = conf.get("application", "host")
application_port = conf.getint("application", "port")
@app.route('/cpu', methods=['GET'])
def cpu():
try:
return jsonify({'code': 0, 'message': 'success', 'data': sys_infos_collector.cpu()})
except Exception as e:
logger.error(e.with_traceback())
return jsonify({'code': 1, 'message': 'failed'})
@app.route('/memory', methods=['GET'])
def memory():
try:
return jsonify({'code': 0, 'message': 'success', 'data': sys_infos_collector.memory()})
except Exception as e:
logger.error(e.with_traceback())
return jsonify({'code': 1, 'message': 'failed'})
@app.route('/swap', methods=['GET'])
def swap():
try:
return jsonify({'code': 0, 'message': 'success', 'data': sys_infos_collector.swap()})
except Exception as e:
logger.error(e.with_traceback())
return jsonify({'code': 1, 'message': 'failed'})
@app.route('/disk', methods=['GET'])
def disk():
try:
return jsonify({'code': 0, 'message': 'success', 'data': sys_infos_collector.disk()})
except Exception as e:
logger.error(e.with_traceback())
return jsonify({'code': 1, 'message': 'failed'})
if __name__ == "__main__":
logger.info('ok-system-helper web_service starting...')
# 这种是不太推荐的启动方式,我这只是做演示用,官方启动方式参见:http://flask.pocoo.org/docs/0.12/quickstart/#a-minimal-application
# app.run(host="0.0.0.0", port=application_port, debug=False)
# 使用WSGI启动服务
server = pywsgi.WSGIServer(('0.0.0.0', application_port), app)
server.serve_forever()