Commit 3706c5f4 authored by 胡凯旋's avatar 胡凯旋

log and fix

parent 0f33f775
# coding=utf-8 # coding=utf-8
import abc import abc
import math import math
import pprint
import time import time
import json import json
import logging
from prometheus_client.core import GaugeMetricFamily from prometheus_client.core import GaugeMetricFamily
...@@ -44,10 +44,10 @@ class TencentExporter(Exporter): ...@@ -44,10 +44,10 @@ class TencentExporter(Exporter):
instance_to_get = instance_id_list[batch_size*i : batch_size*(i+1)] instance_to_get = instance_id_list[batch_size*i : batch_size*(i+1)]
try: try:
res = self.monitor.get_cdb_metric(instance_to_get, label, self.data_interval) res = self.monitor.get_cdb_metric(instance_to_get, label, self.data_interval)
# print(res) # logging.info(res)
data_from_tencent[label].extend(res['DataPoints']) data_from_tencent[label].extend(res['DataPoints'])
except Exception as e: except Exception as e:
print(e) logging.error(e)
return data_from_tencent return data_from_tencent
def _transfer_to_prometheus_format(self, data): def _transfer_to_prometheus_format(self, data):
...@@ -69,10 +69,13 @@ class TencentExporter(Exporter): ...@@ -69,10 +69,13 @@ class TencentExporter(Exporter):
]) ])
if len(instance_data_list) != len(self.instances): if len(instance_data_list) != len(self.instances):
print(time.ctime(), label, u"取得监控数据的机器数量与配置的机器数量不一致", len(instance_data_list)) logging.warn("[label:{label}] 取得监控数据的机器数量{data_num}与配置的机器数量{ins_num}不一致".format(
pprint.pprint(instance_data_list) label=label,
data_num=len(instance_data_list),
ins_num=len(self.instances)))
for instance_data in instance_data_list: for instance_data in instance_data_list:
try:
value = instance_data['Values'][-1] value = instance_data['Values'][-1]
instance_id = instance_data['Dimensions'][0]['Value'] instance_id = instance_data['Dimensions'][0]['Value']
instance = self.instances[instance_id] instance = self.instances[instance_id]
...@@ -85,6 +88,9 @@ class TencentExporter(Exporter): ...@@ -85,6 +88,9 @@ class TencentExporter(Exporter):
with_factor_metric_family.add_metric( with_factor_metric_family.add_metric(
['{}*{}'.format(instance_name,rds_factor), instance_type, service_provider, instance_project], ['{}*{}'.format(instance_name,rds_factor), instance_type, service_provider, instance_project],
value*rds_factor) value*rds_factor)
except Exception as e:
logging.exception(e)
logging.error(data)
metrics_to_export.extend([avg_metric_family, with_factor_metric_family]) metrics_to_export.extend([avg_metric_family, with_factor_metric_family])
return metrics_to_export return metrics_to_export
...@@ -122,7 +128,7 @@ class AliyunExporter(Exporter): ...@@ -122,7 +128,7 @@ class AliyunExporter(Exporter):
res = self.monitor.get_rds_metric(instance_id_list, label) res = self.monitor.get_rds_metric(instance_id_list, label)
metrics_from_aliyun[label].extend(res['Datapoints']) metrics_from_aliyun[label].extend(res['Datapoints'])
except Exception as e: except Exception as e:
print(e) logging.info(e)
return metrics_from_aliyun return metrics_from_aliyun
...@@ -163,7 +169,7 @@ class AliyunExporter(Exporter): ...@@ -163,7 +169,7 @@ class AliyunExporter(Exporter):
if __name__ == "__main__": if __name__ == "__main__":
tencent_exporter = TencentExporter() tencent_exporter = TencentExporter()
data = tencent_exporter.export_prometheus_data() data = tencent_exporter.export_prometheus_data()
# # print(data) # # logging.info(data)
# aliyun_exporter = AliyunExporter() # aliyun_exporter = AliyunExporter()
# data = aliyun_exporter._fetch_monitor_data() # data = aliyun_exporter._fetch_monitor_data()
# print(data) # logging.info(data)
...@@ -3,6 +3,7 @@ import time ...@@ -3,6 +3,7 @@ import time
import json import json
import random import random
import math import math
import logging
import yaml import yaml
from prometheus_client import start_http_server from prometheus_client import start_http_server
...@@ -18,13 +19,19 @@ class RDSCollector(object): ...@@ -18,13 +19,19 @@ class RDSCollector(object):
] ]
def collect(self): def collect(self):
logging.info('='*50)
metrics = [] metrics = []
for exporter in self.exporter_list: for exporter in self.exporter_list:
metrics.extend(exporter.export_prometheus_data()) metrics.extend(exporter.export_prometheus_data())
logging.info('='*50)
for m in metrics: for m in metrics:
yield m yield m
def main(): def main():
logging.basicConfig(format='%(asctime)s %(message)s')
logging.getLogger().setLevel(logging.INFO)
logging.info('gm-mysql-exporter started')
REGISTRY.register(RDSCollector()) REGISTRY.register(RDSCollector())
start_http_server(7086) start_http_server(7086)
while True: while True:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment