业务指标可视化及监控系统搭建

本文介绍了如何利用statsD、InfluxDB和Grafana搭建业务指标可视化和监控系统。从设计取舍到环境搭建,包括statsD的安装与运行、Grafana的安装、InfluxDB的配置,以及业务指标的采集和监控报警功能。系统目前运行稳定,提供了美观的界面和强大的监控能力。
摘要由CSDN通过智能技术生成

加入新公司后不久开始怀念xflush,大部分情况下只需在页面上配置, 就可以实现业务指标的可视化及异常报警。
尝试利用现有的开源系统搭建,经过调研分析,最终确定的方案为statsd+influxdb+grafana。目前已上线,运行稳定。
具体过程不再细说,其中重要的取舍和配置介绍如下。

设计取舍

graphite:

老牌的企业级的监控工具。
环境搭建繁琐: 参考官方文档和网上各种文档,踩各种坑,加上工作上有其它事情在忙,搭建花了2-3天之久。
性能: graphite的存储组件whisper 是零散小文件存储,这样写指标文件会造成随机io。性能不敢恭维。
界面: 比较传统的树形结构,略显土气。进一步调研时发现了grafana。

引入StatsD

对数据时间范围内汇总,大大减少了db的压力。并能进行min, max, avg多维度统计。

存储选型InfluxDB

使用 Go 语言编写,无需外部依赖。反之OpenTSDB 是一种基于 HBase 的时间序列数据库。
最新版本的存储引擎底层是B+树, 也支持批量写入和缓存。
InfluxDB内部集成支持 graphite数据格式。 每次统计指标的min, max, avg对应到数据库中是一条记录的多个列, 相比graphite降低了不必要的io开销。

可视化Grafana:

界面相当漂亮,功能齐全的度量仪表盘和图形编辑器和查询编辑器。

监控报警

当时使用了kapacitor。 目前grafana4.0 已经release, 直接支持alerting。

业务指标采集

业务指标的主要内容: qps/qpm, 延迟。
对java-statsd-client进行了封装,使用注解和aop xml配置进行业务指标汇报,业务代码无侵入。
java-statsd-client 内部使用udp发送指标统计到StatsD,没有复杂的状态管理。对业务影响很小。另外一种方案就是记录到日志,flume收集后再发送到StatsD,彻底隔离对业务的影响。

性能扩展

StatsD为无状态节点,可通过负载均衡器部署多台保证可靠性和可伸缩性。
InfluxDB存储到达瓶颈后,可以做分库的方案,增加一个代理层。StatsD和Grafana通过代理层访问InfluxDB。

环境搭建

搭建statsD

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值