31 lines
1.5 KiB
Python
31 lines
1.5 KiB
Python
from flask import Blueprint,Response
|
|
from flask_restful import reqparse, Resource, Api
|
|
from config import vendors,regions
|
|
from units import token_auth,consul_kv
|
|
from units.prom import mysql_huawei,mysql_ali,mysql_tencent,redis_huawei,redis_ali,redis_tencent
|
|
import json
|
|
blueprint = Blueprint('cloud_metrics',__name__)
|
|
api = Api(blueprint)
|
|
|
|
class RdsExporter(Resource):
|
|
def get(self,vendor,account,region):
|
|
if vendor == 'huaweicloud':
|
|
prom_metric_list = mysql_huawei.exporter(vendor,account,region)
|
|
elif vendor == 'alicloud':
|
|
prom_metric_list = mysql_ali.exporter(vendor,account,region)
|
|
elif vendor == 'tencent_cloud':
|
|
prom_metric_list = mysql_tencent.exporter(vendor,account,region)
|
|
return Response('\n'.join(prom_metric_list).encode('utf-8'),mimetype="text/plain")
|
|
|
|
class RedisExporter(Resource):
|
|
def get(self,vendor,account,region):
|
|
if vendor == 'huaweicloud':
|
|
prom_metric_list = redis_huawei.exporter(vendor,account,region)
|
|
elif vendor == 'alicloud':
|
|
prom_metric_list = redis_ali.exporter(vendor,account,region)
|
|
elif vendor == 'tencent_cloud':
|
|
prom_metric_list = redis_tencent.exporter(vendor,account,region)
|
|
return Response('\n'.join(prom_metric_list).encode('utf-8'),mimetype="text/plain")
|
|
api.add_resource(RdsExporter, '/api/cloud_mysql_metrics/<vendor>/<account>/<region>')
|
|
api.add_resource(RedisExporter, '/api/cloud_redis_metrics/<vendor>/<account>/<region>')
|