我正在构建一个监控/统计工具。当前的基础架构如下所示:
- 收集器后端:从前端接收查询(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)对此进行建模?
如果我必须提供更多信息,请报告我:-)