2

我正在构建一个监控/统计工具。当前的基础架构如下所示:

  • 收集器后端:从前端接收查询(JSON 对象),获取并将它们存储在缓存中。最后它通过消息队列通知前端。
  • 前端服务器:处理“实时”视图上的订阅,通过 WebSockets 将从后端接收到的数据推送给用户。(还包含一些用户管理等)
  • 前端本身:一些使用 jQuery-Flot-Graphs 呈现数据的 JavaScript-Spaghetti-Code。每个环境有几个图表显示在同一页面上。图是一组测量值。

我所说的环境是一个(一组)系统,其中包含不同的测量值。因此,每个环境都包含以下视图:

  • 一个“实时”视图,显示过去 2 小时的测量结果(每分钟更新一次)。
  • 一个统计视图,可以在任意时间选择不同的预定义图形(与实时视图相同的查询,只是另一个视图)
  • 一些专题报道,如昨天的统计数据。

环境包含以下变量:

{
  name: 'FooEnvironment',
  description: 'Foo Environment, <insert buzzwords here>',
  baseTable: 'foobar', # Which table in the backend contains the corresponding data
  target: 'barTarget', # The responsible target (backend-plugin)
}

这些图被定义为一组测量值(作为 JSON 对象),并且定义如下:

 {
    name: 'FooProtocol Traffic', # Graphs display name
    size: 'full' # only matters for some CSS-transformations
    interval: X  # Which delta each tuple differs from the other
    start-date: "DATE",
    end-date: "DATE",
    axes: {
            "y1": { label: 'Foo/t', data: [['MEASURMENT1', 'AGGREGATION'], ['MEASURMENT2', 'AGGREGATION']] },
            "y2": { label: 'Bar/sec', data: [['MEASURMENT_ON_Y2', 'AGGREGATION']] }
    }
  }

我希望能够在我的前端管理这些环境(添加/删除环境并向它们添加/删除图表)。

您将如何使用 MVC(backbone.js)对此进行建模?

如果我必须提供更多信息,请报告我:-)

4

1 回答 1

0

我可能会尝试拥有一个Environment模型和一个Graph模型。

Environment 模型有一个Graphs属性,它是Graph模型的集合。

用户的订阅可以Environment是被监控的 s 的集合。

将至少有三个视图——一个用于保存图形的表示,一个用于保存环境的表示,一个用于保存环境的集合。

正如您提到的添加/删除图表和环境,需要更多细节。

例如,您需要一个可供用户订阅的可用环境列表,并且在每个订阅的环境下,该环境的可用图表列表。

我知道答案是漫无边际和模糊的,但如果没有更多关于手头数据的详细信息,这是我能做的最好的。

于 2013-09-19T07:43:41.437 回答