prometheus和grafana的问题请教

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

【TiDB 版本】
v4.0.10
【问题描述】
现在,应要求,
1、想要知道prometheus中的pd、tikv、tidb中的信息是存放在那里?可以通过curl,或这个什么工具直接在linux界面打印出来嘛?
2、grafana是通过哪些API接口调用prometheus中的数据,然后图形化


若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

pd tikv pd 把 metric 每隔一段时间输出到一个地方。
prometheus 主动到那个地方去拿 metric 的数据,存放在时序数据库中。

额,好的,这个地方是?还有,grafana是到prometheus这个时序数据库中拿数据的,是吧,那么grafana是怎么通过API从时序数据库中拿数据,以及拿了哪些数据呢?

在 prometheus 的页面里面打开 status → target

右侧的 endpoint 就是 pd tikv tidb 的 metic 输出端口。
手动使用 curl 的话,也是可以去查看的

[root@r20 topology]# curl http://192.168.12.23:39100/metrics | head
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
10# HELP go_gc_duration_seconds A summary of the GC invocation durations. 0

TYPE go_gc_duration_seconds summary

go_gc_duration_seconds{quantile=“0”} 9.21e-06
go_gc_duration_seconds{quantile=“0.25”} 3.089e-05
go_gc_duration_seconds{quantile=“0.5”} 8.2571e-05
go_gc_duration_seconds{quantile=“0.75”} 0.000158291
go_gc_duration_seconds{quantile=“1”} 0.001209458
go_gc_duration_seconds_sum 0.601837869
go_gc_duration_seconds_count 4068

HELP go_goroutines Number of goroutines that currently exist.

感兴趣的话,可以在了解一下 prometheus 的原理。

哦,好的,谢谢,我看看

我刚刚看了一下,这个merics就是我集群运行时的,pd、tidb、tikv产生的元数据吧,从这里分析得到的结果和用pd-ctl这类工作得到的是一致的,是吧


大佬,你好,我导出了一些数据,有些不明白的地方:storage_capacity和storage_size的区别是什么,我理解的都是存储空间。


下面的连接参数是与这个图相对应的是吧,down是指挂掉了,offline是指下线状态,这两个状态的具体的差别是什么?而且我down掉了,不就不健康了嘛,怎么不健康是0的,那个这些状态每个表示的具体含义是什么?有没有什么连接?我有点尴尬没有找到每个状态的介绍,辛苦你一下,有空告诉我一下呗,谢谢啦
image
这里面一些参数:makeup指的是?remove down指的是可以被移除吧,那这个remove extra又指的是?这个replace-offline指的是可以被代替下线的嘛?感觉有点拗口?
image
还有这些参数,不是很好区分每个参数的用途:
image
prometheus里面好像没有具体介绍这些参数的含义吧?大佬,你们那边有这些相关的文档嘛? 有的话发我看看吧,辛苦啦,谢谢

目前官方并未提供关于 metric 中的详细解释。
如果需要深入研究,可以查看一下 https://github.com/pingcap/tidb/tree/master/metrics

好的,谢谢,我看一下,辛苦您了

:+1:

大佬好,我在看这个prometheus的pd的元数据信息,其中,这个里面的etcd_disk_wal_fsync_duration_seconds_sum的值和grafana中的值对不上,我两边同时刷新,值还是不一样,这里还有什么其他的计算嘛?


可以 edit grafana 页面看下表达式是怎么样的,grafana 显示的是表达式的结果,prometheus 中记录的是原始的监控项数据,两者并一定等同。

histogram_quantile(0.99, sum(rate(etcd_disk_wal_fsync_duration_seconds_bucket[5m])) by (instance, le))是这个,这个和官网上一样。。。具体怎么算的还是不太清楚:joy:

那可以学习下 PromQL:https://prometheus.io/docs/prometheus/latest/querying/basics/

好的,谢谢

:handshake: