如何在grafana中的x轴上绘制不同的时间数据

How to plot different time data in x-axis in grafana

我有两个不同时间间隔的发布数据。但我想以相同的间隔时间在 grafana 中绘制这两个版本。这有可能伪造时间间隔并绘制图表吗? .因为 x 轴默认需要时间序列。所以我不能使用其他参数。

请对此提出建议。

不确定我是否正确理解你的问题。 如果你只想标记你的版本 - 你可以使用注释 - http://docs.grafana.org/reference/annotations/#influxdb-annotations.

如果您只想显示特定时间范围内的仪表板 - 您可以使用 'from' 和 'to' 参数在 URL 中对其进行编码 - https://[your-dashboard-url]?from=1488868669245&to=1488873058626 但是,是的,您无法在当前的 Grafana 中将参数放在 X 轴上。

您是指图形面板上的 X 轴模式选项吗?

我已经创建了这样的图表,尽管它需要一些工作。

首先,InfluxDB 尚不支持 timeShift,详见此处:

https://github.com/influxdata/influxdb/issues/142

所以我使用了一个单独的 HTTP 服务器,称为 influxdb-timeshift 代理:

https://github.com/maxsivanov/influxdb-timeshift-proxy

我的堆栈是这样的:

Grafana Dashboard --> influxdb-timeshift-proxy --> InfluxDB

这里对上图中的两个“-->”进行说明:

  • 左边的-->:我创建了一个Grafana数据源来指向 influxdb-timeshift-proxy 的 tcp 端口
  • -->右边:"influxdb-timeshift-proxy"启动 配置指向 InfluxDB 服务器。

有了这个,为了让时间转移发生,InfluxDB 的 SQL-like 语句需要一个仔细格式化的字段 'alias' 像这样:

"SELECT mean( "meanAT" ) AS shift_855296_seconds" blah blah sql blah.

有关语法详细信息,请参阅上面的 influxdb-timeshift-proxy github 页面。

使用 Grafana 仪表板,为了在时间序列图上获得两条线(也称为系列),我配置了两个 sql 语句。以上代表 9-10 天前测试的一个 SQL,然后我会 SELECT 一个不同的测试(我今天 运行 的基线),时移为 0:

"SELECT mean( "meanAT" ) AS shift_0_seconds" blah blah sql blah.

所以这回答了你的问题,但它的用处有限——因为一些可怜的人必须计算测试时间之间的差异,然后将结果 (shift_855296_seconds) 拨入 SQL在仪表板中。

为什么?因为开箱即用,Grafana 仪表板执行 SQL 语句(大部分)硬配置到仪表板中。

为了让 Grafana 在动态生成 shift 别名的地方执行 SQL,我 在 javascript 中编写了一个 Grafana 脚本化仪表板。以下是脚本化仪表板的高级说明:

http://docs.grafana.org/reference/scripting/

仅供参考,Grafana 脚本仪表板的文档记录很差,用于调试的 'development environment' 充其量是原始的,我无法获得 javascript 'require' 东西(包括第 3 个党图书馆)工作。但是 Grafana 讨论板上的帮助有限,它确实有效——可以动态创建一个非常好的时间转换仪表板。

从 URL 到 launch/display 'scripted dashboard' 的 http URL 可以很容易地嵌入到您创建的其他一些仪表板中。只需使用 markdown:

将脚本化仪表板 URL 添加到 "Text Panel"

http://docs.grafana.org/features/panels/text/

最终,influxdb-timeshift-proxy 是一个权宜之计。 我没试过,但看起来 Kapacitor 也可以用来提供时移,如下所述:

https://docs.influxdata.com/kapacitor/v1.3/nodes/shift_node/

--埃里克