交易监控方案

一、statsd(采集)+ graphite(绘制,whisper负责存储)

StatsD

StatsD 就是一个简单的网络守护进程,基于 Node.js 平台,通过 UDP 或者 TCP 方式侦听各种统计信息,包括计数器和定时器,并发送聚合信息到后端服务,如 Graphite。

 

Graphite 的两个特点:

  • Graphite 存储数值型带有时间序列的数据。
  • Graphite 按需绘制图表。

 

Graphite 由三部分组成:

  • carbon :监听时间序列的数据的后台程序。
  • whisper:一个简单的数据库库,用来存储时间序列数据。
  • webapp: Django webapp,使用 Cairo 来根据需要呈现图形。

Graphite 当做时间序列数据的格式如下:

<key> <numeric value> <timestamp>

 

 

 

 

二、collectd(采集)+Grafana(绘制)+influxdb(存储)

  • InfluxDB 是 Go 语言开发的一个开源分布式时序数据库,非常适合存储指标、事件、分析等数据;
  • collectd  C语言写的一个系统性能采集工具;
  • Grafana 是纯 Javascript 开发的前端工具,用于访问 InfluxDB,自定义报表、显示图表等。

 

Kafka+Storm+Zookeeper

业务系统把点击/浏览广告业务日志统一按规定的格式发送到Kafka集群中,不同的业务日志可以分别发送给Kafka不同的主题。Storm集群中运行了 我们的实时统计拓扑,该统计拓扑分别从Kafka的不同主题中获取广告业务日志并进行实时统计汇总,最后把汇总的报表结果写入报表数据库,供报表系统进行 报表展示。在Kafka集群与Storm集群运行过程中,需要通过Zookeeper集群进行协调与集群状态维护。例如Kafka集群中的每个分片的状 态,Storm集群中存在哪些有效节点。日志统计分析的状态等。Kafka集群、Storm集群、Zookeeper集群分别采用3台服务器。

 

三、RRDTool

优点:

  • 使用RRD(Round Robin Database)存储格式,数据等于放在数据库中,可以方便地调用。比如,将一个RRD文件中的数据与另一个RRD文件中的数据相加。
  • 可以定义任意时间段画图,可以用半年数据画一张图,也可以用半小时内的数据画一张图。
  • 能画任意个DS,多种图形显示方式。
  • 数据存储与绘图分开,减轻系统负载。
  • 能任意处理RRD文件中的数据,比如,在浏览监测中我们需要将数据由Bytes转化为bits,可以将原始数据乘8。

缺点:

  • RRDTool的作用只是存储数据和画图,它没有MRTG中集成的数据采集功能。
  • 在命令行下的使用非常复杂,参数极多。
  • 无用户、图像管理功能。
posted @ 2016-07-25 08:58  W&L  阅读(266)  评论(0编辑  收藏  举报