使用 prometheus+grafana 建立监控以后,只能显示一半数据是咋回事?

2023-02-06 06:38:37 +08:00
 LeeReamond

用 prometheus + windows_exporter + grafana 经典三件套搭了个监控 windows 系统资源的 web 服务。

我对软件功能本身倒是没啥怨言,prometheus 和 grafana 在各自领域里基本都是做到顶的好用工具。。但是为啥我接完以后只显示部分数据。。。还不是完全不显示,而是显示了,但是只显示一半。

网上找的人家面板里面,我一打开以后有一半是 no data ,另一半有数据。比如现在 CPU 和内存的数据能收集到,但是网卡的 IO 数据就显示 no data ,然后更怪的事是,我之前在另外一台电脑上用同样的操作流程安装,那台电脑就能显示网卡 IO 数据,但是又会缺另一部分数据。这是咋回事啊??

--

我合计了合计是不是权限不够有些数据不让采集,但是看了一眼服务是以 SYSTEM 权限在跑的,没啥问题吧

1057 次点击
所在节点    问与答
13 条回复
Foxkeh
2023-02-06 08:35:56 +08:00
有没有可能是因为多网卡导致未检测到数据?
jasonyang9
2023-02-06 08:36:48 +08:00
用 PromQL 查询下呢
moonheart
2023-02-06 08:37:19 +08:00
Windows exporter 有些采集项目默认没有开启,你需要看看 Prometheus 的查询,看看指标名称,找到对应的项目开启
ETiV
2023-02-06 08:41:45 +08:00
不懂 windows ,但是解决问题的套路是一样的

1. grafana 面板点 edit 看下用的啥语句
2. 再去单独的机器上看一下有没有输出同样的 metric name

如果怀疑权限有问题,可以看下 prom 的运行日志
lidage
2023-02-06 12:52:08 +08:00
可能是模版变量的关系
LeeReamond
2023-02-06 15:59:46 +08:00
@Foxkeh 确实有可能,开了 hyperV ,有虚拟网卡


@jasonyang9 问题是我第一次用这套东西,只是知道设计概念很好,不了解细节,让我查我不知道查啥。。。
LeeReamond
2023-02-07 00:56:41 +08:00
@ETiV 带佬
查了下,查询语句是 rate(windows_net_bytes_sent_total{instance=~"$server"}[$interval]) >0
127.0.0.11:9182/metrics 里有的相关语句是

# HELP windows_net_bytes_sent_total (Network.BytesSentPerSec)
# TYPE windows_net_bytes_sent_total counter
windows_net_bytes_sent_total{nic="Realtek_PCIe_GbE_Family_Controller"} 4.9373782e+07

感觉这是采集到了数据的意思?为啥不显示呢
ETiV
2023-02-07 08:41:23 +08:00
没遇到过

继续:

在 grafana 里用它的 Explore 功能,选择相同的 data source ,切换到自定义语句,直接填入指标名 windows_net_bytes_sent_total ,不带任何多余的,查询一下看看有没有。

或者从 Metric names 下拉列表里看下有没有这个指标名字
LeeReamond
2023-02-07 12:02:00 +08:00


是这个意思对吗
@ETiV
LeeReamond
2023-02-07 12:08:23 +08:00
@ETiV 测了一下是不是和$interval 有关,因为原句里 windows_net_bytes_sent_total{instance=~"$server"}是能请求到数据的,加上 interval 就没有了。我是引擎 60s 采集一次,但是前端显示默认是 10s 刷新一次,是这个原因?不过调成 60s 刷新也没解决。。
ETiV
2023-02-07 13:09:54 +08:00
嗯 至少数据有
那你再看一下 grafana 文档吧,我记得好像是用 $__interval 来着,印象不是很清楚了,或者看下别的面板 panel ,查询语句是 rate 的是咋写啥
LeeReamond
2023-02-07 14:05:06 +08:00
@ETiV 我单独调了一下[$interval]是能得到数据的,显示就是 10s ,应该不是这方面的问题。还有一个怪事就是,我在这套东西上服务器之前是在另一台机器上同样配置测试过的,那套上网络这部分数据就显示正常(另一部分显示 nodata ),说明这个语句应该没问题才对,总之怪得要死。
LeeReamond
2023-02-07 14:19:04 +08:00
@ETiV 找到原因了,误打误撞连到 gh 问题页一个相似问题,最后说是渲染不出来是因为数据源采集间隔有限,要渲染必须至少有若干个数据,所以间隔太短就渲染不出来

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/913456

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX