prometheus的api数据源,是否能通过SQL查询得到?

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:

【概述】:场景 + 问题概述

我们需要在监控平台自定义一些 TiDB 5.0 的监控,随后我们找到了 metrics-schema 和 information_schema 两个库

【问题】:当前遇到的问题

但是我们现在有几个疑问:

  1. metrics-schema库里面的数据,是TiDB自身保存的吗,我们可以直接拿来用吗?
  2. 如果不是自身保存的数据,那是dashboard或者其他的监控保存的吗?
  3. prometheus 或 dashboard 是必须安装的吗?如果没有安装这两个组件,metrics-schema 库里面会不会没有数据?从而导致我们的取数为空?
  4. 默认的取数监控是60s,这个代表的是我在任意时间内从库里面取数,比如 tps - tidb_transaction_ops,就是60秒内已经计算好的吗?

Metrics Schema | PingCAP Docs

1 个赞
  1. metrics-schema 库是查询的 Prometheus 的数据。所以如果没有安装 Prometheus 就会没有数据。
  2. ops 是计算得到的。具体可以看看对应的监控项的 grafana 里面的 PromSQL 。以及参考 Prometheus 具体语法的用法以及意义。

好的,我们再看下

@QBin

Hi,我又遇到了一个小问题。。以下是在没有安装 promethues 的状态下测试的,

我在查看prometheus的数据源配置时,发现全部是通过原生API方式获取的
比如,当我需要查看连接数的时候,我需要使用 tidb_server_connections{$LABEL_CONDITIONS}
对应于命令行操作,应该是 curl 192.168.11.242:10080/metrics 2> /dev/null | grep tidb_server_connections

我想问下:

  1. prometheus获取的数据,如连接数,是否可以通过SQL查询到,而不是通过API的方式,因为我没有找到类似mysql的一些查询方法
  2. 这个方式查询的连接数,应该只是当前节点的,如果我要查找所有tidb节点的连接数,只能挨个查询吗?有没有集群级别?

除了上面的监控以外,我们还有一个其他的问题:

  1. 我如何查询锁相关的SQL,类似mysql里面的 innodb_trxperformance_schema.data_locks,因为 tidb_trx 这张表,只有 dev 版本才有
  1. 目前没有这样的功能。
  2. 是的目前是单个节点的。如果需要总的链接数,需要对所有节点进行汇总
  3. 目前还没有支持 innodb_trx 、data_locks 这些 lock view 。

好的!:nerd_face:

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。