用于管理大量(系统)指标的数据库

时间:2011-01-12 14:42:17

标签: database performance monitor olap time-series

我正在寻找构建一个管理和报告网页性能统计数据的系统。我将收集比标准日志格式(大约20个指标)更多的统计数据,但与大多数类型的数据库应用程序相比,基本数据结构将非常简单。我的问题是,我将累积大量数据 - 每小时有100,000条记录(即指标集)。

当然,资源非常有限!

为了能够明智地与数据进行交互,我需要将每个度量标准合并到一个分钟的箱子中,按URL分解,然后对于超过1天的任何内容,合并到10分钟的箱子中,然后在1一周,每小时箱。

在前端,我想提供最后一小时数据的视图(最好是作为情节),用户可以通过定义的URL层次结构向上/向下钻取(这些URL并不总是直接映射到在URL的路径中表示的层次结构)并查看不同的时间帧。

我不知道自己编码所有这些并使用关系数据库,而是想知道是否有可用的工具可以促进数据管理和报告。

我查看了Mondrian但是我从文档中看不出是否可以在维护数据的整合视图的同时删除更细粒度的信息。

RRDTool在管理数据整合方面看起来很有前途,但在将数据集作为多维/关系数据库查询方面似乎相当有限。

我还在看什么?

7 个答案:

答案 0 :(得分:1)

如果您想要管理Graphite实例(并且您可能也在使用Graphite),那么上面提到Statsd的答案是一个很好的解决方案。或者,有很多其他托管应用程序开始提供这种功能。有StatHatLibrato Metrics和我自己公司的产品Instrumental。它绝对可以处理我们在最低计划中要求的指标负载 - 我们有一个official client (Ruby),一个Statsd-compatible proxy,以及一个记录的方式来自己发布给我们的收藏家,以及如果您想要在我们的图表之外构建自己的表示层,那么很好的方法可以通过我们的API将您的指标拉回来。

答案 1 :(得分:0)

icCube中,随着时间的推移获得具有不同粒度的时间维度非常简单(对于“范围/带状”维度的示例,您可以查看here)。然后可以从CSV文件构建多维数据集。它的XMLA接口允许您使用任何符合XMLA的报告工具。您是否估计了典型数据集的大小?

答案 2 :(得分:0)

我只是使用行业标准的数据库..就像SQL Server ..顶部有Analysis Services(如果你开始获得数百万行)

答案 3 :(得分:0)

Mondrian要求您提供自己的dbms; Mondrian加PostgreSQL可能值得一试。当然,使用您自己的dbms,您可以删除任何想要的内容。

答案 4 :(得分:0)

仍然找不到合适的东西:(

虽然我可以在MySQL中以这种速率接收数据,但是当我尝试整合它/删除旧的低级数据时,它开始变得有点块状。所以我想我将不得不考虑在DBMS之上构建聚合层并切换到noSQL系统 - 并自己编写:(

答案 5 :(得分:0)

这个Q& A很老了,但我最近发现了一些符合我要求的东西 - Graphite。仍然需要安装并运行 - 但它看起来很有希望。

答案 6 :(得分:0)

尝试使用InfluxDB(http://influxdb.com/)开源分布式时间序列数据库。

它有一个用于发布指标的宁静界面,例如

[
  {
    "name" : "hd_used",
    "columns" : ["value", "host", "mount"],
    "points" : [
      [23.2, "serverA", "/mnt"]
    ]
  }
]

您可以使用Grafana(http://grafana.org/

轻松查看指标