kubernetes - Prometheus servicemonitor 间隔被忽略
问题描述
我的指标每 30 秒抓取一次,即使我在定义我的 servicemonitor 时指定了 10 秒的间隔。
我为我的出口商创建了一个似乎运行良好的服务监视器。我可以将我的导出器视为目标,并在 /graph 端点上查看指标。但是,当在“目标”页面上时,“最后一次抓取”显示间隔为 30 秒(我刷新页面以查看秒数会上升到多高,为 30)。果然,放大图表显示指标每 30 秒出现一次。
我已将 servicemonitor 的时间间隔设置为 10 秒,这应该会覆盖任何其他时间间隔。为什么会被忽略?
endpoints:
- port: http-metrics
scheme: http
interval: 10s
解决方案
首先:仔细检查您是否更改了需要更改的 ServiceMonitor,以及是否正在查看 ServiceMonitor 中的刮痕。
转到 prometheus 的 Web UI,然后选择 Status -> Configuration。现在尝试找到 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 中的更改大致匹配?如果它不是“成功”,那么可能是其他一些更改导致最终的普罗米修斯配置不正确并且无法加载它?
推荐阅读
- javascript - 当由 series.columns.template.propertyFields.fill 设置时,图例不遵循系列的颜色,就像使用 series.fill 时一样
- xml - 如何在 PowerShell 中读取 XML 文件中的元素?
- smtp - 附件在 SAP B1 中更改名称和类型
- c# - 按列对 DataTable 进行分组并转换为 List
- yocto - wic 和 fitImage+Initramfs 的循环依赖问题
- python - 如何使用正则表达式判断字符串的第一个字符和最后一个字符是否匹配?
- git - 为什么 git merge squash Xtheirs 不喜欢而是合并?
- php - 我想在使用邮件功能将电子邮件发送给 Laravel 中的用户后立即生成电子邮件报告(电子邮件发送副本)
- python - 使用 plotly dash 应用程序在 Elastic Beanstalk 上出现内部 500 错误
- python - 为什么 (2^31) >> 32 不是 0?