LeeReamond
V2EX  ›  问与答

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

By LeeReamond at 2023 年 2 月 6 日 · 1870 次点击

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

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

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

Imgur

--

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

13 条回复  •  2023-02-07 14:19:04 +08:00
Foxkeh
   1
Foxkeh  
   2023 年 2 月 6 日
有没有可能是因为多网卡导致未检测到数据?
jasonyang9
   2
jasonyang9  
   2023 年 2 月 6 日 via Android
用 PromQL 查询下呢
moonheart
   3
moonheart  
   2023 年 2 月 6 日
Windows exporter 有些采集项目默认没有开启,你需要看看 Prometheus 的查询,看看指标名称,找到对应的项目开启
ETiV
   4
ETiV  
   2023 年 2 月 6 日 via iPhone
不懂 windows ,但是解决问题的套路是一样的

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

如果怀疑权限有问题,可以看下 prom 的运行日志
2828kakafa
   5
2828kakafa  
   2023 年 2 月 6 日 via iPhone
可能是模版变量的关系
LeeReamond
   6
LeeReamond  
OP
   2023 年 2 月 6 日
@Foxkeh 确实有可能,开了 hyperV ,有虚拟网卡


@jasonyang9 问题是我第一次用这套东西,只是知道设计概念很好,不了解细节,让我查我不知道查啥。。。
LeeReamond
   7
LeeReamond  
OP
   2023 年 2 月 7 日
@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
   8
ETiV  
   2023 年 2 月 7 日 via iPhone
没遇到过

继续:

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

或者从 Metric names 下拉列表里看下有没有这个指标名字
LeeReamond
   9
LeeReamond  
OP
   2023 年 2 月 7 日


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