用 prometheus + windows_exporter + grafana 经典三件套搭了个监控 windows 系统资源的 web 服务。
我对软件功能本身倒是没啥怨言,prometheus 和 grafana 在各自领域里基本都是做到顶的好用工具。。但是为啥我接完以后只显示部分数据。。。还不是完全不显示,而是显示了,但是只显示一半。
网上找的人家面板里面,我一打开以后有一半是 no data ,另一半有数据。比如现在 CPU 和内存的数据能收集到,但是网卡的 IO 数据就显示 no data ,然后更怪的事是,我之前在另外一台电脑上用同样的操作流程安装,那台电脑就能显示网卡 IO 数据,但是又会缺另一部分数据。这是咋回事啊??
--
我合计了合计是不是权限不够有些数据不让采集,但是看了一眼服务是以 SYSTEM 权限在跑的,没啥问题吧
1
Foxkeh 2023-02-06 08:35:56 +08:00
有没有可能是因为多网卡导致未检测到数据?
|
2
jasonyang9 2023-02-06 08:36:48 +08:00 via Android
用 PromQL 查询下呢
|
3
moonheart 2023-02-06 08:37:19 +08:00
Windows exporter 有些采集项目默认没有开启,你需要看看 Prometheus 的查询,看看指标名称,找到对应的项目开启
|
4
ETiV 2023-02-06 08:41:45 +08:00 via iPhone
不懂 windows ,但是解决问题的套路是一样的
1. grafana 面板点 edit 看下用的啥语句 2. 再去单独的机器上看一下有没有输出同样的 metric name 如果怀疑权限有问题,可以看下 prom 的运行日志 |
5
lidage 2023-02-06 12:52:08 +08:00 via iPhone
可能是模版变量的关系
|
6
LeeReamond OP |
7
LeeReamond OP @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 感觉这是采集到了数据的意思?为啥不显示呢 |
8
ETiV 2023-02-07 08:41:23 +08:00 via iPhone
没遇到过
继续: 在 grafana 里用它的 Explore 功能,选择相同的 data source ,切换到自定义语句,直接填入指标名 windows_net_bytes_sent_total ,不带任何多余的,查询一下看看有没有。 或者从 Metric names 下拉列表里看下有没有这个指标名字 |
9
LeeReamond OP |
10
LeeReamond OP @ETiV 测了一下是不是和$interval 有关,因为原句里 windows_net_bytes_sent_total{instance=~"$server"}是能请求到数据的,加上 interval 就没有了。我是引擎 60s 采集一次,但是前端显示默认是 10s 刷新一次,是这个原因?不过调成 60s 刷新也没解决。。
|
11
ETiV 2023-02-07 13:09:54 +08:00 via iPhone
嗯 至少数据有
那你再看一下 grafana 文档吧,我记得好像是用 $__interval 来着,印象不是很清楚了,或者看下别的面板 panel ,查询语句是 rate 的是咋写啥 |
12
LeeReamond OP @ETiV 我单独调了一下[$interval]是能得到数据的,显示就是 10s ,应该不是这方面的问题。还有一个怪事就是,我在这套东西上服务器之前是在另一台机器上同样配置测试过的,那套上网络这部分数据就显示正常(另一部分显示 nodata ),说明这个语句应该没问题才对,总之怪得要死。
|
13
LeeReamond OP @ETiV 找到原因了,误打误撞连到 gh 问题页一个相似问题,最后说是渲染不出来是因为数据源采集间隔有限,要渲染必须至少有若干个数据,所以间隔太短就渲染不出来
|