采集设计
埋点与侵入式
对于应用程序错误数、应用程序请求量、应用平均响应时间的监控,这里是一个分水岭,因为这里想要做到无侵入的效果,需要做一些额外的工作,否则只能编写大量的“埋点”代码。比如,是不是有一个网关来统一进行流量分发?是不是有一个统一的
数据存储
关于采集到的数据如何存储,主流的选择是将数据写入到一个时序数据库中。
-
Prometheus 提供了丰富的数据模型和查询语句,容易上手,很容易集成到现有的环境中,但是Prometheus 的集群和HA 架构并不成熟,需要额外的开发,并不适合。 -
InfluxDB 是在Prometheus 之后才提出的,并且提供商业的伸缩和集群化服务,相比Prometheus 的metrics 存储,InfluxDB 还能处理事件类型的数据,对于大部分公司而言,商业化基本不会考虑。 -
OpenTSDB 是一个基于Hadoop 和Hbase 的分布式事件序列数据库,相比Prometheus 和InfluxDB ,OpenTSDB 的横向扩缩容很容易( 需要有丰富的Hadoop/HBase 维护经验), 同时官方Open-falcon 支持OpenTSDB 。
在