コード例 #1
0
ファイル: tidbinfo.py プロジェクト: pingcap/tidb-insight
 def read_api(self, url):
     result, code = util.read_url(url)
     if code == 404:
         logging.info(
             "TiDB server API is not supported by this running instance.")
         return None
     return result
コード例 #2
0
ファイル: prometheus.py プロジェクト: LinuxGit/tidb-insight
 def run_collecting(self):
     if self.resolution < 15.0:
         logging.warn(
             "Sampling resolution < 15s don't increase accuracy but data size."
         )
     for metric in self.get_label_names():
         url = '%s/query_range?query=%s&start=%s&end=%s&step=%s' % (
             self.url_base, metric, self.start_time, self.end_time,
             self.resolution)
         matrix = json.loads(util.read_url(url)[0])
         if not matrix['status'] == 'success':
             logging.info("Error querying for key '%s'." % metric)
             logging.debug("Output is:\n%s" % matrix)
             continue
         if self.options.compress:
             metric_filename = '%s_%s_to_%s_%ss.dat' % (
                 metric, self.start_time, self.end_time, self.resolution)
             fileopt.write_file(
                 os.path.join(self.outdir, metric_filename),
                 zlib.compress(json.dumps(matrix['data']['result'])))
         else:
             metric_filename = '%s_%s_to_%s_%ss.json' % (
                 metric, self.start_time, self.end_time, self.resolution)
             fileopt.write_file(os.path.join(self.outdir, metric_filename),
                                json.dumps(matrix['data']['result']))
         logging.debug("Saved data for key '%s'." % metric)
コード例 #3
0
ファイル: prometheus.py プロジェクト: pingcap/tidb-insight
 def get_label_names(self):
     result = []
     url = '%s%s' % (self.url_base, '/label/__name__/values')
     labels = json.loads(util.read_url(url)[0])
     if labels['status'] == 'success':
         result = labels['data']
     logging.debug("Found %s available metric keys..." % len(result))
     return result
コード例 #4
0
ファイル: pdctl.py プロジェクト: pingcap/tidb-insight
    def read_runtime_info(self):
        def build_url(uri):
            return "%s/%s" % (self.base_url, uri)

        runtime_info = {}
        for key, uri in self.api_map.items():
            runtime_info[key] = util.read_url(build_url(uri))[0]
        return runtime_info
コード例 #5
0
ファイル: prometheus.py プロジェクト: pingcap/tidb-insight
 def query_worker(self, metric):
     url = '%s/query_range?query=%s&start=%s&end=%s&step=%s' % (
         self.url_base, metric, self.start_time, self.end_time,
         self.resolution)
     response = util.read_url(url)[0]
     if 'success' not in response[:20].decode('utf-8'):
         logging.error("Error querying for key '%s'." % metric)
         logging.debug("Output is:\n%s" % response)
         return
     metric_filename = '%s_%s_to_%s_%ss.json' % (
         metric, self.start_time, self.end_time, self.resolution)
     fileopt.write_file(os.path.join(self.outdir, metric_filename),
                        response)
     logging.debug("Saved data for key '%s'." % metric)
コード例 #6
0
ファイル: pdctl.py プロジェクト: pingcap/tidb-insight
 def read_diagnose(self):
     url = "http://%s:%s/pd%s" % (self.host, self.port,
                                  self.pd_diagnose_uri)
     return util.read_url(url)[0]
コード例 #7
0
ファイル: pdctl.py プロジェクト: pingcap/tidb-insight
 def read_health(self):
     url = "http://%s:%s/pd%s" % (self.host, self.port, self.pd_health_uri)
     return util.read_url(url)[0]