2

我正在滚动以下内容:

  • 导轨 3.2.9
  • 海图
  • 状态机

我有一组不规则的数据,代表了数百个 linux 机器的状态变化。每个盒子每两分钟检查一次中央 ping 服务器。

每次设备心跳时,ping 服务器都会检查设备的当前状态是否为离线,如果是,则将状态更改为在线,并将心跳表的在线列设置为 true,并插入发生这种情况的时间。

在 ping 服务器上,我们有一个每 5 分钟运行一次 rake 任务的 cron。这会发现所有设备的心跳小于现在的时间减去 5 分钟。

如果发现设备离线,则将设备状态设置为离线,并用最后一次心跳的时间和 0 标记到心跳表。

我们已经这样做了一段时间,这似乎是一种有效的方式来存储正常运行时间数据,而无需每 5 分钟为 500 台设备创建一行。

该表看起来有点像这样:

+---------------------+--------+--------+
| created_at          | dev_id | online |
+---------------------+--------+--------+
| 2012-10-08 16:29:16 |   2345 |      0 |
| 2012-11-21 16:40:22 |   2345 |      1 |
| 2012-11-03 19:15:00 |   2345 |      0 |
| 2012-11-08 09:15:01 |   2345 |      1 |
| 2012-11-08 09:18:03 |   2345 |      0 |
| 2012-11-09 17:57:22 |   2345 |      1 |
| 2012-12-09 13:57:23 |   2345 |      0 |
| 2012-12-09 14:57:25 |   2345 |      1 |
| 2012-12-09 15:00:30 |   2345 |      0 |
| 2012-12-09 15:57:31 |   2345 |      1 |
| 2012-12-09 16:07:35 |   2345 |      0 |
| 2012-12-09 16:37:38 |   2345 |      1 |
| 2012-12-09 17:57:40 |   2345 |      0 |
+---------------------+--------+--------+

按照 Ryan Bate 在 Highcharts 上的精彩Railscast,我可以创建一个不规则间隔的数据折线图。

图表和数据系列

按照这个例子:

http://www.highcharts.com/demo/spline-irregular-time

并使用这样的数据系列:

 = @devices.heartbeats.map { |o|  o.online == true ? 1 : 0 } 

它很好地绘制了折线图。

我被困在哪里

图表在最后一次签入时完成,我需要图表显示现在的一个点。在 Ryan 的示例中,如果没有值,他会将零映射到日期。我无法翻译这部分。

我正在尝试实现类似于堆栈条形图的图形,但无法对数据进行排序。

http://www.highcharts.com/demo/bar-stacked

如何格式化我的查询,以便我获取直到现在的数据以及每个单独的点,以便我可以创建这样的图表?

4

0 回答 0