Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在';填空';_Ruby On Rails_Ruby_Ruby On Rails 3_Highcharts - Fatal编程技术网

Ruby on rails 在';填空';

Ruby on rails 在';填空';,ruby-on-rails,ruby,ruby-on-rails-3,highcharts,Ruby On Rails,Ruby,Ruby On Rails 3,Highcharts,我正在滚动以下内容: 轨道3.2.9 海图 状态机 我有一组不规则的数据,代表数百个linux设备的状态变化。每个框每两分钟检查一次中央ping服务器 每次设备心跳时,ping服务器都会检查设备的当前状态是否为脱机,如果是,则将状态更改为联机,并将心跳表的联机列设置为true,并插入发生此情况的时间 在ping服务器上,我们有一个cron,它每5分钟运行一次rake任务。这将查找心跳小于当前时间减去5分钟的所有设备 如果发现设备处于脱机状态,则会将设备状态设置为脱机,并将最后一次心跳的时间和

我正在滚动以下内容:

  • 轨道3.2.9
  • 海图
  • 状态机
我有一组不规则的数据,代表数百个linux设备的状态变化。每个框每两分钟检查一次中央ping服务器

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

在ping服务器上,我们有一个cron,它每5分钟运行一次rake任务。这将查找心跳小于当前时间减去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 |
+---------------------+--------+--------+
 = @devices.heartbeats.map { |o|  o.online == true ? 1 : 0 } 
按照Ryan Bate的精彩,我可以创建一个不规则间隔的数据线图

图表和数据系列

下面这个例子:

使用类似以下的数据系列:

+---------------------+--------+--------+
| 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 |
+---------------------+--------+--------+
 = @devices.heartbeats.map { |o|  o.online == true ? 1 : 0 } 
它很好地绘制了直线图

我被困的地方

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

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

我如何设置查询的格式,以便获得到目前为止的数据以及每个单独的点,以便创建这样的图形