如何使用 influxdb non_negative_derivative 获得一致的值?

2024-01-29

将 grafana 与 influxdb 结合使用,我试图显示某个计数器值的每秒速率。如果我使用non_negative_derivative(1s)函数中,rate 的值似乎根据 grafana 视图的时间宽度而发生巨大变化。我正在使用last选择器(但也可以使用max这是相同的值,因为它是一个计数器)。

具体来说,我正在使用:

SELECT non_negative_derivative(last("my_counter"), 1s) FROM ...

根据influxdb 文档 非负导数 https://docs.influxdata.com/influxdb/v0.13/query_language/functions/#non-negative-derivative:

InfluxDB 计算按时间顺序排列的字段值之间的差异,并将这些结果转换为单位的变化率。

所以对我来说,这意味着在扩展时间视图时,给定点的值不应该改变那么多,因为该值应该是每单位的变化率(上面的示例查询中为 1)。

在石墨中,它们具有特定的perSecond函数,效果更好:

perSecond(consolidateBy(my_counter, 'max'))

关于我对上面的流入查询做错了什么有什么想法吗?


如果你想要每秒的结果不变,你会想要GROUP BY time(1s)。这将为您提供准确的perSecond结果。

考虑以下示例:

假设计数器的值每秒变化如下

0s → 1s → 2s → 3s → 4s
1  → 2  → 5  → 8  → 11

根据我们如何对上面的序列进行分组,我们会看到不同的结果。

考虑一下我们将事物分组为的情况2s桶。

 0s-2s   →    2s-4s
(5-1)/2  →  (11-5)/2
   2     →      3

1s buckets

 0s-1s  →  1s-2s  →  2s-3s  →  3s-4s
(2-1)/1 → (5-2)/1 → (8-5)/1 → (11-8)/1
   1    →    3    →    3    →    3

寻址

所以对我来说,这意味着在扩展时间视图时给定点的值不应该改变那么多,因为该值应该是每单位的变化率(在上面的示例查询中为 1s)。

The rate of change per unit是一个标准化因子,独立于GROUP BY时间单位。解释我们前面的例子,当我们将导数区间更改为2s可能会提供一些见解。

确切的方程是

∆y/(∆x/tu)

考虑一下我们将事物分组为的情况1s导数区间为2s。我们应该看到的结果是

 0s-1s    →  1s-2s    →  2s-3s    →  3s-4s
2*(2-1)/1 → 2*(5-2)/1 → 2*(8-5)/1 → (11-8)/1
   2      →    6      →    6      →    6

这可能看起来有点奇怪,但如果你考虑一下这句话的意思,它应该是有道理的。当我们指定导数区间时2s我们所要求的是2s变化率是针对1s GROUP BY bucket.

如果我们将类似的推理应用于以下情况2s导数区间为2s is then

 0s-2s     →    2s-4s
2*(5-1)/2  →  2*(11-5)/2
   4       →      6

我们在这里要求的是2s变化率是针对2s GROUP BY桶并且在第一个间隔中2s变化率将是4和第二个间隔2s变化率将是6.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 influxdb non_negative_derivative 获得一致的值? 的相关文章

  • Grafana划分2系列

    我试图将两个系列分开以获得它们的比率 例如 我的网站 a com b com c com 为 所有网站 他们每个人都有总部分数和发生错误的统计数据 我想将每个站点的错误 部分显示为条形错误 部分 其中部分 gt 错误到该站点的每个错误 在这
  • 如何在 Prometheus/Grafana 中按系列名称对图例进行排序

    我有一个 Grafana 仪表板面板 配置为呈现 Prometheus 查询的结果 查询返回大量系列 右侧显示图例 如果用户正在寻找特定的系列 他们可能必须滚动浏览所有系列 并且很容易错过他们正在寻找的系列 所以我想按系列名称对图例进行排序
  • Grafana 世界地图:表数据源

    我正在尝试使用 grafana 的世界地图插件 以表数据作为数据源 在我的例子中为 influxdb 该插件得到了最新版本的支持 link 但遗憾的是我无法让它发挥作用 我使用与插件文档中相同的查询 但我的世界地图中没有显示任何点 以下是我
  • 我可以为 influxdb 中的不同测量创建不同的保留策略吗?

    是否可以使用不同的保留策略来处理 influxdb 中的不同测量值 这对于 InfluxDB 来说是完全可能的 为此 您需要创建一个具有两个保留策略的数据库 然后将数据写入关联的保留策略 Example influx gt create d
  • Docker-Compose 上的 InfluxDB 无法读取 SSL 证书文件

    我在尝试使用在 Docker Compose 上运行的 InfluxDB v1 8 配置 SSL 时遇到一些问题 我跟着官方文档 https docs influxdata com influxdb v1 8 administration
  • 计算 InfluxDB 中开始和结束事件之间的持续时间

    我对 InfluxDB 有两个写入点 一个是开始 另一个是结束 我只需要确定这两个事件之间的持续时间 并围绕它进行查询 InfluxDB有difference 聚合方法 但它不适用于时间元字段 提供自定义时间戳值是实现此目的的唯一方法吗 A
  • Prometheus基于Label的过滤

    如何在Prometheus查询中添加标签过滤器 kube pod 信息 kube pod info created by kind ReplicaSet created by name alertmanager 6d9f74d4c5 ins
  • 更新与 InfluxDB 中的条件匹配的多个字段值

    在InfluxDB测量中 如何更新与查询匹配的点的字段值 这还是吗从 v1 6 开始不容易实现 https github com influxdata influxdb issues 2575 正如 GitHub 票证中的示例所建议的 实现
  • 将石墨指标偏移当前时间范围内的最低值

    我有带有 Graphite 指标的 Grafana 我有一个图表显示EnqueueCountActiveMQ 中的某些特定队列 问题是EnqueueCount显示自创建队列以来的所有值 因此当我将 Grafana 中的时间范围缩小到 今天到
  • 使用 istio 公开公开 grafana

    我们正在使用 Prometheus 运算符 我们需要使用 istio 公开 外部 公开 Grafana https github com helm charts tree master stable prometheus operator
  • 按指标值过滤普罗米修斯结果,而不是按标签值

    Because Prometheus topk 返回的结果超出预期 https stackoverflow com questions 38783424 prometheus topk returns more results than e
  • influxdb:计算布尔事件的持续时间?

    我的 influxdb 数据库中有来自门传感器的数据 这是一个布尔传感器 门是否打开 值为false 或者它被关闭 值为true 表格如下所示 name door time value 1506026143659488953 true 15
  • 如何使用prometheus获取pod的CPU和内存使用百分比

    我想使用 promql Prometheus 以以下格式显示 pod 详细信息 此外 我想使用 promql 以以下格式显示应用程序 组件的 CPU 和内存利用率 promql 查询 sum container memory working
  • 防止周末和节假日期间发出 Grafana 警报

    背景 我们正在使用 Grafana 警报 在周末和节假日期间 我们的一些指标会较低 但这实际上没关系 但仅限于那些日子 Problem 在周末和节假日期间 即使系统实际上没问题 我们也会收到来自 Grafana 的警报 Question 我
  • 使用 prometheus 和 grafana 跟踪事件

    有一篇文章 跟踪每个版本 https codeascraft com 2010 12 08 track every release 它讲述了如何在每个代码部署的图表上显示一条垂直线 他们正在使用石墨 我想用 Prometheus 2 2 和
  • 获取 Prometheus 中两个自定义时间戳之间的增量

    我有一个名为的普罗米修斯指标device number 我想要的是显示现在与一天 一周 一个月等之前的价值差异 这意味着减去具有两个不同时间戳的两个值 环顾四周 我没有找到任何关于如何执行此操作的有用文档 我想做但不起作用的是 sum de
  • 更新\插入数据从grafana到mysql

    可以从grafana更新数据或插入数据到mysql 我需要使用 UI 在 mysql 中插入 更新信息 现在我已经在使用grafana 所以想知道是否有任何方法可以使用grafana来更新或插入信息 没有用于获取用户输入并将该数据插入 My
  • Grafana:警报查询不支持模板变量

    您好 我想在 grafana 中创建一个简单的警报 以检查过去 5 分钟是否没有数据 但我收到一个错误 警报查询不支持模板变量 嗯 根据这个issue https github com grafana grafana issues 6230
  • 如何重置grafana的admin密码(由helm安装)

    我的密码曾经有效 但我不记得是否更改过 但是 我无法重置它 我尝试过但没有成功 kubectl get secret namespace default grafana o jsonpath data admin password base
  • 什么是时序数据库?

    What is 时间序列数据库例如InfluxDB 我应该何时 何地使用它 请给我它的业务场景示例 检查wiki https en wikipedia org wiki Time series database 时间序列数据库 TSDB 是

随机推荐