我试图在grafana中建立一个百分比列表,但我无法让divideSeries
+通配符正常工作。
我发现Grafana dividing 2 series看起来像我想要的,但遗憾的是我的grafana实例(版本4.6.0-1)中没有mapSeries
函数。
这就是我所拥有的,但我没有指定ID" 1234",而是使用通配符,并将每个ID组合在一起。
divideSeries(stats.dhcp.pools.1234.cur,stats.dhcp.pools.1234.max)
逻辑上,我尝试过:divideSeries(stats.dhcp.pools.*.cur,stats.dhcp.pools.*.max)
- 但这不起作用。我尝试使用asPercent
进行搜索,但它与divideSeries
具有相同的限制。
我认为applyByNode
是我想要的,但我似乎无法将这个例子转化为实际可行的内容。
答案 0 :(得分:1)
您使用石墨作为数据源(我认为)。您提到的功能已在graphite-web中实施,您也可以找到applyByNode
private class Engine
extends CanvasWatchFaceService.Engine
implements SharedPreferences.OnSharedPreferenceChangeListener {
private SharedPreferences settings;
@Override
public void onCreate(SurfaceHolder surfaceHolder) {
super.onCreate(surfaceHolder);
settings = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
settings.registerOnSharedPreferenceChangeListener(this);
...other setup code...
}
@Override
public void onDestroy() {
settings.unregisterOnSharedPreferenceChangeListener(this);
...other teardown code...
super.onDestroy();
}
@Override
public void onSharedPreferenceChanged(SharedPreferences settings, String key) {
...update your watch face here...
}
}
请注意,截至2017年11月,applyByNode不在默认的graphite-api安装中,需要从github源安装:
applyByNode(
stats.dhcp.pools.*.*,
3,
'divideSeries(%.cur, %.max)',
'% pct'
)
作为旁注 - 您可以使用任何石墨功能,甚至pip install git+git://github.com/brutasse/graphite-api.git
。