【问题标题】:Prometheus servicemonitor interval is being ignoredPrometheus servicemonitor 间隔被忽略
【发布时间】:2020-12-01 23:28:50
【问题描述】:

我的指标每 30 秒抓取一次,即使我在定义 servicemonitor 时指定了 10 秒的间隔。

我为我的出口商创建了一个似乎运行良好的服务监视器。我可以将我的导出器视为目标,并在 /graph 端点上查看指标。但是,当在“目标”页面上时,“最后一次抓取”显示间隔为 30 秒(我刷新页面以查看秒数会上升到多高,为 30)。果然,放大图表显示指标每 30 秒出现一次。

我已将 servicemonitor 的时间间隔设置为 10 秒,这应该会覆盖任何其他时间间隔。为什么会被忽略?

 endpoints:
- port: http-metrics
  scheme: http
  interval: 10s

【问题讨论】:

    标签: kubernetes prometheus


    【解决方案1】:

    首先:仔细检查您是否更改了需要更改的 ServiceMonitor,以及是否正在查看 ServiceMonitor 中的刮痕。

    转到 prometheus 的 Web UI 并选择状态 -> 配置。 现在尝试找到 prometheus 操作员创建的部分配置(基于 ServiceMonitor 配置)。可能通过 servicemonitor 名称查找会起作用 - 应该有一个带有 job_name 的部分包含您的 servicemonitor 名称。

    现在查看本节中的scrape_interval 值。如果它是“30s”(或其他任何不是预期的“10s”)并且您确定您正在查看正确的部分,那么这意味着其中一件事情发生了:

    • 您的 ServiceMonitor 并不真正包含“10s” - 也许它没有正确应用?验证集群中的活动对象
    • prometheus-operator 没有更新 Prometheus 配置 - 也许它不起作用?还是崩溃了?或者只是默默地停止工作?重启一下prometheus-operator pod还是挺安全的,或许值得一试。
    • prometheus 没有正确加载新配置? prometheus 操作员更新一个秘密,当它被更改时,prometheus pod 中的 sidecar 会触发 prometheus 中的重新加载。也许它没有工作?再次在 Web UI 中的 Status -> Runtime & Build information 中查看“配置重新加载”。成功了吗? “上次成功的配置重新加载”时间是否与您在 servicemonitor 中的更改大致匹配?如果它不是“成功”,那么可能是其他一些更改导致最终的 prometheus 配置不正确并且无法加载?

    【讨论】:

    • 当我在我的服务监视器上运行 kubectl describe 时,我可以确认它设置为 10s。奇怪的是,重新启动 prometheus pod 也不会改变抓取时间。它保留之前的抓取时间。
    • 我不知道它是如何一直弄清楚旧的抓取间隔是多少,即使它已被删除并且应该没有任何痕迹。 pod 和 servicemonitor 都被删除了,它怎么能记住呢?有状态集是否以某种方式保留了该信息?
    • ServiceMonitor 对象由prometheus-operator 读取,而不是由 prometheus 直接读取。 prometheus-operator 然后根据它处理的 ServiceMonitors 使用 prometheus 配置更新 Secret 对象。你可以重启 prometheus-operator pod,这样做是安全的。也许它甚至没有运行?这将解释您的配置缺少更新您可能遇到的其他问题是 prometheus-operator 被配置为仅在某些命名空间中查找 ServiceMonitor 对象,而您确实使用了不同的对象。
    【解决方案2】:

    如果我理解正确,按照Configure Grafana Query Interval with Prometheus,它会按预期工作

    这按预期工作。这是因为 Grafana 选择了步长, 在该步骤完成之前,它不会显示新数据,或者更确切地说 Prometheus 不会返回新的数据点。所以这一切都有效 预期的。您需要将步长调整为某种东西 更小,以便更快地查看更多数据。普罗米修斯 界面动态设置步骤,这就是为什么你会得到不同的 结果在那里。

    是每个 Grafana 面板的配置

    Grafana 本身不建议使用小于 30 秒的间隔,您可以在 Grafana Troubleshoot dashboards 文档页面的 Dashboard refresh rate issues 部分找到合理的解释

    仪表板刷新率问题 默认情况下,Grafana 会查询您的数据 每 30 秒发送一次。在仪表板上设置低刷新率 给后端带来不必要的压力。在很多情况下,查询这个 经常没有意义,因为数据没有被发送到 系统,以便看到变化。

    我们建议如下:

    • 除非您需要,否则不要在仪表板、面板或变量上启用自动刷新。用户可以手动刷新浏览器,或者您 可以将刷新率设置为有意义的时间段(每十 分钟、每小时等)。

    • 如果需要,请将刷新率设置为每分钟一次。同样,用户始终可以手动刷新仪表板。

    • 如果您的仪表板有较长的时间段(例如一周),那么您确实不需要自动刷新。

    更多信息你也可以访问仍然打开的Specify desired step in Prometheus in dashboard panelsgithub问题。

    【讨论】:

      猜你喜欢
      • 2021-02-12
      • 2019-03-30
      • 1970-01-01
      • 1970-01-01
      • 2023-01-24
      • 1970-01-01
      • 2018-04-05
      • 2021-11-09
      • 1970-01-01
      相关资源
      最近更新 更多