石墨/格拉法纳的单值百分比从初始值变化?

时间:2016-03-27 09:50:47

标签: graphite grafana

有没有办法简单地显示所选时间段内值的变化?我感兴趣的是与最初值相比的最后一个值的偏移量。在这段时间内,这些值可能会在这些值之上和之下变化,但它并不是真正相关的(在我的情况下也是例外)。

初始值为100,最终值为105,我希望单个统计框显示5%。

我感觉我错过了一些显而易见的东西,但却无法找到一种方法来展示这个看似简单的任务。

修改

我正在尝试创建一个脚本化的Grafana仪表板,它将自动填充所有各种卷的磁盘消耗增长。数据已经在Graphite中,但出于容量管理和财务规划(项目/部门获得计费)的目的,管理人员可以简单粗略地概述哪些数据量超出预期参数。

我们的想法是创建一个带有颜色编码的单一统计值列表,可以轻松滚动查找异常。磁盘使用量显然永远不会是负数,但在此视图中,时间段开始和结束之间的使用波动性将会丢失。这对我们来说不是一个大问题,因为这是所有共享存储,并且这种使用在一定程度上是预期的。

完美的解决方案是根据选定的时间段动态更改计算。

我认为这与Graphite和Grafana真的不可能(至少不容易)并且已经开始寻找替代方法了。我们可能必须为此目的实施不同的报告系统。

修改2

我尝试过实施Leonid建议的解决方案,并且它在时尚之后起作用。计算似乎与我的预期有些不同。

我的测试仪表板如下所示:

Storage Growth over 30 days

如果我手动计算更改,我最终会在开始(7,23)和结束(8.96)值之间进行大约24%的更改。 Graphite将其计算为19%。这可能是出现差异的原因,可能与时间序列有关,而不是谨慎的价值观?

作为旁注:这个例子只有30天,尽管最有趣的数字是一年。我们在Graphite中还没有一年的数据,并且拥有30天的视图也很有趣。看来我必须用静态时间实现几个仪表板。

1 个答案:

答案 0 :(得分:4)

你肯定可以在一段固定的时间内做到这一点。例如,在查询之后,取当前度量值与度量在一分钟之前的值(即初始值)之间的绝对差值,然后计算它的初始值百分比。

trainData = ARFFHandler.loadARFF(new File(starter.getTrainFile()), 8);
testData = ARFFHandler.loadARFF(new File(starter.getTestFile()), 8);

int attributeNumber = trainData.noAttributes();

Classifier svm = (Classifier) new LibSVM();

svm.buildClassifier(trainData);
svm_parameter parameter = ((LibSVM) svm).getParameters();

double[] weights = ((LibSVM) svm).getWeights();
double[] noiseVector = getNoise(attributeNumber, parameter.C);

parameter.weight = weights;
String classification = (String)svm.classify(testData.get(counter));

我相信你不能在Grafana选择器中选择的时间段内这样做。

但这真的是你需要的吗?它看起来很奇怪,因为正如你所说,价值可以在两个方向上发生变化。也许standard deviation更适合你?它在Graphite中可用stdev function