- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已阅读 Prometheus documentation仔细,但对我来说仍然有点不清楚,所以我在这里确认我的理解。
(请注意,为了最简单的示例,我使用了 1 秒作为报废间隔、时间范围 - 即使在实践中不可能)
尽管我们每秒都报废一个计数器并且计数器的值现在是 30。为此,我们有以下时间序列:
second counter_value increase calculated by hand(call it ICH from now)
1 1 1
2 3 2
3 6 3
4 7 1
5 10 3
6 14 4
7 17 3
8 21 4
9 25 4
10 30 5
second result
1 1,5
2 1,5
3 2
4 2
5 3,5
6 3,5
7 3,5
8 3,5
9 4,5
10 4,5
second result
1 2
2 2
3 2
4 2
5 2
6 4
7 4
8 4
9 4
10 4
second result
1 3*
2 3
3 4*
4 4
5 7*
6 7
7 7*
8 7
9 9*
10 9
最佳答案
在理想情况下(您的样本时间戳恰好在第二个,而您的规则评估恰好在第二个发生)rate(counter[1s])
将准确返回您的 ICH 值和 rate(counter[5s])
将返回该 ICH 和前一个 4 的平均值。除了第二个 1 的 ICH 是 0,而不是 1,因为没有人知道您的计数器何时为零:也许它在那里增加了,也许它昨天增加了,并保持在 1从那时起。 (这就是为什么您不会在第一次出现值为 1 的计数器时看到增加的原因——因为您的代码刚刚创建并增加了它。)increase(counter[5s])
正是 rate(counter[5s]) * 5
(而 increase(counter[2s])
正是 rate(counter[2s]) * 2
)。
现在,在现实世界中发生的情况是,您的样本不会在每一秒都准确地收集,并且规则评估也不会完全在第二次发生。因此,如果您有一堆相隔(或多或少)1 秒的样本,并且您使用 Prometheus 的 rate(counter[1s])
,你不会得到任何输出。那是因为 Prometheus 所做的是获取 1 秒范围内的所有样本 [now() - 1s, now()]
(在绝大多数情况下这将是单个样本),尝试计算速率并失败。
如果您查询 rate(counter[5s])
OTOH,Prometheus 将选取范围内的所有样本 [now() - 5s, now]
(5 个样本,平均覆盖大约 4 秒,比如说 [t1, v1], [t2, v2], [t3, v3], [t4, v4], [t5, v5]
)并且(假设您的计数器没有在间隔内重置)将返回 (v5 - v1) / (t5 - t1)
.即它实际上计算了大约 4 秒而不是 5 秒的增长率。increase(counter[5s])
将返回 (v5 - v1) / (t5 - t1) * 5
,所以在 ~4 秒内的增加率,外推到 5 秒。
由于样本间隔不完全,rate
和 increase
通常会返回整数计数器的浮点值(这对于 rate
很明显,但对于 increase
意义不大)。
关于prometheus - 我是否正确理解普罗米修斯的速率与增加函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54494394/
我是普罗米修斯的新手。根据我到目前为止所阅读和尝试的内容,Prometheus 客户端库通过 HTTP 公开收集的指标,Prometheus 定期读取(抓取)。 在 Prometheus 抓取指标之前
我们正在寻求实现监控和警报解决方案,我们希望为每个功能单元提供自己的 prometheus 实例。 目前我们通过 prometheus-operator 使用单个 prometheus 实例运行它,但
在 Prometheus 中,有标签柯里化(Currying)。一些示例方法类似于 CurryWith()。 这是什么意思?抱歉,我没有找到这方面的任何文档。 问题可能与英语不是我的母语有关,我从函数
如何编写一个查询来输出过去 24 小时内实例的平均内存使用情况? 以下查询显示当前内存使用情况 100 * (1 - ((node_memory_MemFree + node_memory_Cache
我正在向 prometheus 发送与两个磁盘相关的数据。我想提醒一个磁盘的指标是否停止发送指标。假设我有 diskA 和 diskB,我正在收集 disk_up 指标。现在diskB失败了。在普罗米
我正在考虑将一些指标导出到 Prometheus,但我对我计划做的事情感到紧张。 我的系统由一个工作流引擎组成,我想跟踪工作流中每个步骤的一些指标。这似乎是合理的,有一个名为 wfengine_ste
我想根据 prometheus 值文件中的环境 qa/prod 设置环境特定的值 ## Additional alertmanager container environment variable
我有一个包含路径和状态代码的请求直方图...如果过去一小时内的错误比前一小时增加了 20%,我如何发出警报? 一个指标示例: {instance="someIp",instance_hostname=
我有一个包含路径和状态代码的请求直方图...如果过去一小时内的错误比前一小时增加了 20%,我如何发出警报? 一个指标示例: {instance="someIp",instance_hostname=
像这样的 Prometheus 规则文件: groups: - name: ./example.rules rules: - alert: ExampleAlert expr: vec
我们有多个在数据中心运行的 Prometheus 实例(我将它们称为 DC Prometheus 实例),以及一个额外的 Prometheus 实例(在下面的文本中我们将其称为“主”),我们在其中从
最近 prometheus-operator图表已弃用,图表已重命名 kube-prometheus-stack更清楚地反射(reflect)它安装了 kube-prometheus 项目堆栈,其中
我在 Amazon linux 2 实例上安装了 prometheus,这是我在用户数据中使用的配置: cat /etc/systemd/system/prometheus.service [Uni
我们正在使用 prometheus 运算符,我们现在想将数据存储在磁盘上,有一个博客对此进行了解释,但不确定来自查询的数字/大小响应 https://www.robustperception.io/h
目标 通过 grafana 和 prometheus 跟踪 RPM 和正常运行时间 情况 我们正在使用 django-prometheus -> To emit metrics fluent-bit
我有 Prometheus 从几台机器上的节点导出器中抓取指标,配置如下: scrape_configs: - job_name: node_exporter static_configs
我的 Prometheus 设置中有一个警报,它会在 someMetric > 100 时发送警报已对 5m 有效然后每隔 24h 重新发送警报根据下面的配置: prometheus-alert.ym
我有两个计数器。一个是测量累加器,另一个是测量计数。如何生成范围向量平均值? 我尝试了以下但得到的结果为空。 rate(my_events{type="sum"}[60s]) / rate(my_ev
因为 Prometheus 仅支持文本指标和许多 json 中的工具返回指标(如 Finatra、Spring Boot),所以我创建了一个简单的代理,将 json 转换为文本。因为我想将它用于多个源
Prometheus 是否可以计算指标具有特定值的持续时间(例如以秒为单位)? 一个简单的例子是 up可以有两个值的度量:1或 0指示系统是否正在运行。想象一下,自上周以来,系统多次上下波动。 我希望
我是一名优秀的程序员,十分优秀!