V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
LeeReamond
V2EX  ›  问与答

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

  •  
  •   LeeReamond · 2023-02-06 06:38:37 +08:00 · 1058 次点击
    这是一个创建于 656 天前的主题,其中的信息可能已经有所发展或是发生改变。

    用 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-02-06 08:35:56 +08:00
    有没有可能是因为多网卡导致未检测到数据?
    jasonyang9
        2
    jasonyang9  
       2023-02-06 08:36:48 +08:00 via Android
    用 PromQL 查询下呢
    moonheart
        3
    moonheart  
       2023-02-06 08:37:19 +08:00
    Windows exporter 有些采集项目默认没有开启,你需要看看 Prometheus 的查询,看看指标名称,找到对应的项目开启
    ETiV
        4
    ETiV  
       2023-02-06 08:41:45 +08:00 via iPhone
    不懂 windows ,但是解决问题的套路是一样的

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

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


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

    继续:

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

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


    是这个意思对吗
    @ETiV
    LeeReamond
        10
    LeeReamond  
    OP
       2023-02-07 12:08:23 +08:00
    @ETiV 测了一下是不是和$interval 有关,因为原句里 windows_net_bytes_sent_total{instance=~"$server"}是能请求到数据的,加上 interval 就没有了。我是引擎 60s 采集一次,但是前端显示默认是 10s 刷新一次,是这个原因?不过调成 60s 刷新也没解决。。
    ETiV
        11
    ETiV  
       2023-02-07 13:09:54 +08:00 via iPhone
    嗯 至少数据有
    那你再看一下 grafana 文档吧,我记得好像是用 $__interval 来着,印象不是很清楚了,或者看下别的面板 panel ,查询语句是 rate 的是咋写啥
    LeeReamond
        12
    LeeReamond  
    OP
       2023-02-07 14:05:06 +08:00
    @ETiV 我单独调了一下[$interval]是能得到数据的,显示就是 10s ,应该不是这方面的问题。还有一个怪事就是,我在这套东西上服务器之前是在另一台机器上同样配置测试过的,那套上网络这部分数据就显示正常(另一部分显示 nodata ),说明这个语句应该没问题才对,总之怪得要死。
    LeeReamond
        13
    LeeReamond  
    OP
       2023-02-07 14:19:04 +08:00
    @ETiV 找到原因了,误打误撞连到 gh 问题页一个相似问题,最后说是渲染不出来是因为数据源采集间隔有限,要渲染必须至少有若干个数据,所以间隔太短就渲染不出来
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2534 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 01:47 · PVG 09:47 · LAX 17:47 · JFK 20:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.