Sql 开源统计服务器?

Sql 开源统计服务器?,sql,statistics,nosql,redis,Sql,Statistics,Nosql,Redis,我一直在寻找支持以下要求的开源stat服务器: 本地代理每秒聚合100个统计数据,并每隔10秒左右将这些统计数据发送到中心集群(或单个服务器)。应用程序将阻止对代理的网络调用,以在代码中进行统计,而不是将数据写入磁盘,并让另一个进程来读取日志 中央服务器实时响应请求聚合的查询(亚秒响应)(每5分钟间隔、小时、天、月、年的统计数据)。可选:支持滚动时间窗口(例如,从现在起返回1小时) 标记每统计指标。每个stat名称将具有不同的属性,例如此stat来自的主机名 单调递增统计数据(永久递增的统计数

我一直在寻找支持以下要求的开源stat服务器:

  • 本地代理每秒聚合100个统计数据,并每隔10秒左右将这些统计数据发送到中心集群(或单个服务器)。应用程序将阻止对代理的网络调用,以在代码中进行统计,而不是将数据写入磁盘,并让另一个进程来读取日志
  • 中央服务器实时响应请求聚合的查询(亚秒响应)(每5分钟间隔、小时、天、月、年的统计数据)。可选:支持滚动时间窗口(例如,从现在起返回1小时)
  • 标记每统计指标。每个stat名称将具有不同的属性,例如此stat来自的主机名
  • 单调递增统计数据(永久递增的统计数据,即总计数)
我理解编写自己的表是相当简单的(每天一次,根据策略聚合较低粒度的表,然后根据TTL删除它们,可以在NOSQL上完成,例如,redis上的Hashset在time bucket上键入),但令人惊讶的是,鉴于这是一个标准用例,没有一个现成的可用表。OpenTSDB是一个很接近的候选对象(不提供本地代理),但不支持单调递增的统计数据


有什么建议或建议吗?

看看statsd,它是一个非常酷的项目,或多或少能满足您的需求。您的应用程序将UDP数据包发送到中心节点(您陈述了为避免过载而实际发送的样本百分比,我们使用了大约10%),然后中心服务器聚合数据,并标记为。然后,它使用Graphite生成实际报告