#!/usr/bin/env python # -*- coding:utf-8 -*- import os import sys import json import copy from collections import OrderedDict from config import ip_list def main(): panel_id = 1 load_dict = {} panels = [] for i in ip_list: print i with open("./Minio_Astana.json",'r') as load_f: load_dict = json.load(load_f, object_pairs_hook=OrderedDict) panels = copy.deepcopy(load_dict['panels']) for item in reversed(panels): item['id'] = panel_id panel_id += 1 if item['title'] == 'NodeCPUState': panel = item['panels'] for pa in reversed(panel): pa['id'] = panel_id panel_id += 1 if pa['title'] == 'CPUUsedRate': n = panel.index(pa) for ip in ip_list: tmp = copy.deepcopy(pa) tmp['targets'][0]["expr"] = "sum(irate(node_cpu_seconds_total{instance=\"%s:9100\",job=\"os_astana\",mode!=\"idle\"}[1m]))"%ip tmp['targets'][1]["expr"] = "1 - (avg(irate(node_cpu_seconds_total{instance=\"%s:9100\",job=\"os_astana\",mode=\"idle\"}[1m])))"%ip tmp['id'] = panel_id panel_id += 1 tmp['title'] = "%sCPUUsedRate"%ip panel.insert(n, tmp) n += 1 panel.remove(pa) elif item['title'] == 'HttpDutations': panel = item['panels'] for pa in reversed(panel): pa['id'] = panel_id panel_id += 1 if pa['title'] == 'HTTP Requests duration/s': n = panel.index(pa) for ip in ip_list: tmp = copy.deepcopy(pa) tmp['targets'][0]["expr"] = "rate(minio_http_requests_duration_seconds_sum{request_type=\"GET\",instance=\"%s:9000\"}[1m])"%ip tmp['targets'][1]["expr"] = "rate(minio_http_requests_duration_seconds_sum{request_type=\"POST\",instance=\"%s:9000\"}[1m])"%ip tmp['targets'][2]["expr"] = "rate(minio_http_requests_duration_seconds_sum{request_type=\"PUT\",instance=\"%s:9000\"}[1m])"%ip tmp['targets'][3]["expr"] = "rate(minio_http_requests_duration_seconds_sum{request_type=\"HEAD\",instance=\"%s:9000\"}[1m])"%ip tmp['targets'][4]["expr"] = "rate(minio_http_requests_duration_seconds_sum{request_type=\"DELETE\",instance=\"%s:9000\"}[1m])"%ip tmp['id'] = panel_id panel_id += 1 tmp['title'] = "%sHTTP Requests duration/s"%ip panel.insert(n, tmp) n += 1 panel.remove(pa) elif item['title'] == 'HttpSend&ReceiveNum': panel = item['panels'] for pa in reversed(panel): pa['id'] = panel_id panel_id += 1 if pa['title'] == 'HttpRequestNum': n = panel.index(pa) for ip in ip_list: tmp = copy.deepcopy(pa) tmp['targets'][0]["expr"] = "sum(increase(minio_http_requests_duration_seconds_count{instance=\"%s:9000\",job=\"minio_astana\",request_type=\"GET\"}[1m]))"%ip tmp['targets'][1]["expr"] = "sum(increase(minio_http_requests_duration_seconds_count{instance=\"%s:9000\",job=\"minio_astana\",request_type=\"PUT\"}[1m]))"%ip tmp['targets'][2]["expr"] = "sum(increase(minio_http_requests_duration_seconds_count{instance=\"%s:9000\",job=\"minio_astana\",request_type=\"DELETE\"}[1m]))"%ip tmp['targets'][3]["expr"] = "sum(increase(minio_http_requests_duration_seconds_count{instance=\"%s:9000\",job=\"minio_astana\",request_type=\"POST\"}[1m]))"%ip tmp['id'] = panel_id panel_id += 1 tmp['title'] = "%sHttpRequestNum"%ip panel.insert(n, tmp) n += 1 panel.remove(pa) elif item['title'] == 'HttpSend&Receivebytes': panel = item['panels'] for pa in reversed(panel): pa['id'] = panel_id panel_id += 1 if pa['title'] == 'DataReceived&Sent': n = panel.index(pa) for ip in ip_list: tmp = copy.deepcopy(pa) tmp['targets'][0]["expr"] = "rate(minio_network_sent_bytes_total{instance=\"%s:9000\",job=\"minio_astana\"}[1m])"%ip tmp['targets'][1]["expr"] = "rate(minio_network_received_bytes_total{instance=\"%s:9000\",job=\"minio_astana\"}[1m])"%ip tmp['id'] = panel_id panel_id += 1 tmp['title'] = "%sDataReceived&Sent"%ip panel.insert(n, tmp) n += 1 panel.remove(pa) elif item['title'] == 'NodeState': panel = item['panels'] for pa in reversed(panel): pa['id'] = panel_id panel_id += 1 load_dict['panels'] = panels; with open("./record.json","w") as f: json.dump(load_dict,f) print("OKKKKKKKKKKK") if __name__ == "__main__": main()