graphite/grafana 中初始值的单一统计百分比变化?
Single-stat percentage change from initial value in graphite/grafana?
有没有办法简单地显示一个值在选定时间段内的变化?我感兴趣的是最后一个值与初始值相比的偏移量。在一段时间内,这些值可能会上下变化,这并不真正相关(在我的情况下是例外)。
对于 100 的初始值和 105 的最终值,我希望单个统计框显示 5%。
我觉得我遗漏了一些显而易见的东西,但找不到一种方法来显示这个看似简单的任务。
编辑:
我正在尝试创建一个脚本化的 Grafana 仪表板,它将自动填充我们所有不同卷的磁盘消耗增长。数据已经在 Graphite 中,但出于容量管理和财务规划(projects/departments 需要计费)的目的,管理人员对哪些数量增长超出预期参数有一个简单粗略的概述会很有帮助。
我们的想法是创建一个带有颜色编码的单一统计值列表,可以轻松滚动以查找异常情况。磁盘使用率显然永远不会为负,但在此视图中将丢失时间段开始和结束之间使用率的波动。这对我们来说不是一个大问题,因为这都是共享存储,并且这种使用在一定程度上是预期的。
完美的解决方案是让计算根据选定的时间段动态变化。
我认为仅使用 Graphite 和 Grafana 是不可能的(至少不容易),因此我已开始寻找替代方法。为此,我们可能必须实施不同的报告系统。
编辑 2
我已经尝试实施 Leonid 推荐的解决方案,并且效果不错。不过,计算结果似乎与我的预期有些出入。
我的测试仪表板如下所示:
如果我手动计算变化,我最终会得到开始值 (7,23) 和结束值 (8.96) 之间大约 24% 的变化。 Graphite 将此计算为 19%。这可能是造成差异的一个原因,可能与它是时间序列而不是离散值有关?
旁注:这个例子只有 30 天,尽管最有趣的数字是一年。我们在 Graphite 中还没有足够一年的数据,30 天的视图也很有趣。看来我必须实现几个静态时间的仪表板。
你当然可以在某个固定的时间段内这样做。例如,以下查询取当前指标值与该指标一分钟前的值(即初始值)之间的绝对差值,然后计算它占初始值的百分比。
asPercent(absolute(diffSeries(my_metric, timeShift(my_metric, '1m'))), timeShift(my_metric, '1m'))
我相信你不能在 Grafana 选择器中选择的时间段内这样做。
但这真的是您需要的吗?这似乎很奇怪,因为正如您所说,价值可以在两个方向上发生变化。也许 standard deviation would be more suitable for you? It's available in Graphite as stdev
function.
有没有办法简单地显示一个值在选定时间段内的变化?我感兴趣的是最后一个值与初始值相比的偏移量。在一段时间内,这些值可能会上下变化,这并不真正相关(在我的情况下是例外)。
对于 100 的初始值和 105 的最终值,我希望单个统计框显示 5%。
我觉得我遗漏了一些显而易见的东西,但找不到一种方法来显示这个看似简单的任务。
编辑:
我正在尝试创建一个脚本化的 Grafana 仪表板,它将自动填充我们所有不同卷的磁盘消耗增长。数据已经在 Graphite 中,但出于容量管理和财务规划(projects/departments 需要计费)的目的,管理人员对哪些数量增长超出预期参数有一个简单粗略的概述会很有帮助。
我们的想法是创建一个带有颜色编码的单一统计值列表,可以轻松滚动以查找异常情况。磁盘使用率显然永远不会为负,但在此视图中将丢失时间段开始和结束之间使用率的波动。这对我们来说不是一个大问题,因为这都是共享存储,并且这种使用在一定程度上是预期的。
完美的解决方案是让计算根据选定的时间段动态变化。
我认为仅使用 Graphite 和 Grafana 是不可能的(至少不容易),因此我已开始寻找替代方法。为此,我们可能必须实施不同的报告系统。
编辑 2
我已经尝试实施 Leonid 推荐的解决方案,并且效果不错。不过,计算结果似乎与我的预期有些出入。
我的测试仪表板如下所示:
如果我手动计算变化,我最终会得到开始值 (7,23) 和结束值 (8.96) 之间大约 24% 的变化。 Graphite 将此计算为 19%。这可能是造成差异的一个原因,可能与它是时间序列而不是离散值有关?
旁注:这个例子只有 30 天,尽管最有趣的数字是一年。我们在 Graphite 中还没有足够一年的数据,30 天的视图也很有趣。看来我必须实现几个静态时间的仪表板。
你当然可以在某个固定的时间段内这样做。例如,以下查询取当前指标值与该指标一分钟前的值(即初始值)之间的绝对差值,然后计算它占初始值的百分比。
asPercent(absolute(diffSeries(my_metric, timeShift(my_metric, '1m'))), timeShift(my_metric, '1m'))
我相信你不能在 Grafana 选择器中选择的时间段内这样做。
但这真的是您需要的吗?这似乎很奇怪,因为正如您所说,价值可以在两个方向上发生变化。也许 standard deviation would be more suitable for you? It's available in Graphite as stdev
function.