代码拉取完成,页面将自动刷新
#!/usr/bin/env python3
# Copyright 2023 PingCAP, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import sys
import json
import logging
def main():
logging.basicConfig(format='%(asctime)s [%(levelname)s] %(message)s', datefmt='%Y/%m/%d %H:%M:%S', level=logging.INFO)
if len(sys.argv) < 2:
logging.error("Usage: {} path/to/grafana.json".format(sys.argv[0]))
return 1
infile = sys.argv[1]
j = json.load(open(infile))
panels = j['panels']
existing_ids = {}
ok = True
if j["title"] != "Test-Cluster-TiFlash-Summary":
ok = False
logging.error("key={} actual={}".format("title", j["title"]))
if j["uid"] != "SVbh2xUWk":
ok = False
logging.error("key={} actual={}".format("uid", j["uid"]))
if j["__inputs"][0]["name"] != "DS_TEST-CLUSTER" or j["__inputs"][0]["label"] != "Test-Cluster":
ok = False
logging.error("key={} actual={}".format("__inputs", j["__inputs"]))
for panel in panels:
ok &= handle_panel(panel, j["title"], existing_ids)
if not ok:
logging.error("!!!Error detected!!!")
return 2
else:
logging.info("All checks passed")
return 0
def handle_panel(panel, parent_title, existing_ids):
logging.debug('title: {} type: {}'.format(parent_title, panel["type"]))
if panel["type"] == "row":
# Check sub panels recursively
logging.info("Checking panels under row '{}'".format(panel["title"]))
sub_panels = panel["panels"]
ok = True
for p in sub_panels:
ok &= handle_panel(p, panel["title"], existing_ids)
logging.info("Check done for panels under row '{}'".format(panel["title"]))
return ok
# Check whether there exist duplicate id
if panel["id"] not in existing_ids:
existing_ids[panel["id"]] = {
"panel": panel,
"parent_title": parent_title,
}
return True
else:
current_title = panel["title"]
existing_panel = existing_ids[panel["id"]]
logging.error("Found duplicated id {}".format(panel["id"]))
logging.error("Original panel title: '{}' under row '{}'".format(existing_panel["panel"]["title"], existing_panel["parent_title"]))
logging.error("Duplicate panel title: '{}' under row '{}'".format(current_title, parent_title))
return False
if __name__ == '__main__':
sys.exit(main())
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。