statsd+graphite
一些观点:
Statsd:一个nodejs的客户端,用于向graphite的收集器发送数据,使用各类编程语言的客户端响起发送timer,counter等统计数据后,其通过udp定时向graphite发送数据。
Graphite:分为监听器carbon+时序数据库whisper+图形展示django-webapp。由于安装是要配置数据库等建议对django有一定了解
Grafana:一个图形展示器,相对graphite自带的展示功能更加强大灵活。配置grafana时添加新的dashbord时要注意绿色的小条是可以点击的,点击后出现配置项设置显示等。
数据监控选型依据:业务数据,性能分析,组件参数等,这篇文章的几个选型方案可参考:http://www.cnblogs.com/zhengyun_ustc/p/55solution9.html
1.Graphite
Graphite由三个软件组件组成:
carbon - 一个Twisted守护进程,监听时间序列数据
whisper – 一个简单的数据库库,用来存储时间序列数据,在设计上类似于RRD
graphite webapp – Django webapp,使用 Cairo来根据需要呈现图形
介绍:http://blog.csdn.net/chszs/article/details/50927812
2.statsd
1,StatsD是一个NodeJs的daemon程序,简单,轻巧。使用的UDP协议。可以和Graphite图片渲染应用结合。
2,UDP好处就是fire-and-forget。你不用去管后台的StatsD 服务器是不是崩了,崩了就崩了,不会影响前台应用。
3,StatsD有一个时间周期的概念,默认是10秒钟,就是说,StatsD会把收集到的数据(经过处理)每隔10秒,发送给后端。比如Counter,他就会把10秒内该Counter累加的值,发送到后端。比如Time/Timing,他会把次数、最大值、最小值、平均值发往后端。所以,所有的数据都是以10秒为一个周期的。
3,StatsD::increment("grue.dinners"); 这句话会创建一个新的计数器(假如原来没有的话),而且每次执行,都把计数+1(以周期为单位,下一个周期计数器自动重置为0)。
4,利用timing()可以用来计算时间差。StatsD::timing("gure.dinners", 时间差*1000); 可以自动计算在这段时间内发生的计数器次数,最大值,最小值,90位百分点(可以过滤掉突发的、异常的、脉冲之类的值)。
5,为了应对非常频繁的计数,可以增加一个取样率的参数:StatsD::increment("adventurer.heartbeat", 0.1); 0.1就是取样率,StatsD会自动帮你换算成100%的取样率,然后发送给后端。
3.安装方法1
statsd+graphite安装过程有点复杂,依赖好几个框架,幸好有了docker,一条命令搞定
dock pull hopsoft/graphite-statsd
使用参考项目网站:https://github.com/hopsoft/docker-graphite-statsd
8125和8126是statsd端口,80是运维观察数据的端口(web打开)
docker run -d\
--name graphite\
--restart=always\
-p :\
-p -:-\
-p -:-\
-p :/udp\
-p :\
hopsoft/graphite-statsd
测试指令:
while true; do echo -n "example:$((RANDOM % 100))|c" | nc -w -u localhost ; done
打开网页:

默认是查看24小时数据,看不出测试效果,调整为3分钟.
默认账号root/root是不安全的,需要字节修改,参考项目网站说明。
查看所有counters
# show all current counters
echo counters | nc localhost
关于Grafana,有人提了issue,作者答复如下:
I'd love to see your changes if a PR isn't too much effort.
只能期待了
4.安装方法2
官网:https://hub.docker.com/r/kamon/grafana_graphite/
docker pull kamon/grafana_graphite
docker run -d -p 64020:80 -p 64025:8125/udp -p 64026:8126 --restart=always --name kamon-grafana-dashboard kamon/grafana_graphite
80: the Grafana web interface.8125: the StatsD port.8126: the StatsD administrative port.
用户名密码参考官网

statsd+graphite的更多相关文章
- #研发解决方案介绍#基于StatsD+Graphite的智能监控解决方案
郑昀 基于李丹和刘奎的文档 创建于2014/12/5 关键词:监控.dashboard.PHP.graphite.statsd.whisper.carbon.grafana.influxdb.Pyth ...
- 使用statsd+graphite+grafana构建业务及性能监控模块
近些年随着DevOps概念越来越收到重视,除了传统的Splunk,Zabbix外在开源领域也有越来越多的软件可供使用.从数据收集,时序数据库,图形展示等主要方面有各类可扩展的软件用于搭建一个数据监控平 ...
- 第三十三章 metrics(1) - graphite搭建 + whisper存储模式 + 高精度向低精度聚合方式 + 集成StatsD + 集成grafana
组件介绍: carbon:Carbon实际上是一系列守护进程,组成一个Graphite安装的存储后端.这些守护进程用一个名为Twisted的事件驱动网络引擎监听时间序列数据.Twisted框架让Car ...
- prometheus statsd 监控
Prometheus是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的.随着发展,越来越多公司和组织接受采用Prometheus,社会也十分活跃,他们 ...
- #研发解决方案介绍#Tracing(鹰眼)
郑昀 最后更新于2014/11/12 关键词:GoogleDapper.分布式跟踪.鹰眼.Tracing.HBase.HDFS. 本文档适用人员:研发 分布式系统为什么需要 Tracing? ...
- #研发中间件介绍#异步消息可靠推送Notify
郑昀 基于朱传志的设计文档 最后更新于2014/11/11 关键词:异步消息.订阅者集群.可伸缩.Push模式.Pull模式 本文档适用人员:研发 电商系统为什么需要 NotifyServer? ...
- #研发解决方案介绍#IdCenter(内部统一认证系统)
郑昀 基于朱传志的设计文档 最后更新于2014/11/13 关键词:LDAP.认证.权限分配.IdCenter. 本文档适用人员:研发 曾经一个IT内部系统配一套帐号体系和授权 线上生产环境里 ...
- #研发解决方案介绍#基于ES的搜索+筛选+排序解决方案
郑昀 基于胡耀华和王超的设计文档 最后更新于2014/12/3 关键词:ElasticSearch.Lucene.solr.搜索.facet.高可用.可伸缩.mongodb.SearchHub.商品中 ...
- #数据技术选型#即席查询Shib+Presto,集群任务调度HUE+Oozie
郑昀 创建于2014/10/30 最后更新于2014/10/31 一)选型:Shib+Presto 应用场景:即席查询(Ad-hoc Query) 1.1.即席查询的目标 使用者是产品/运营/销售 ...
随机推荐
- css3弹性盒子温习
弹性盒子由弹性容器(Flex container)和弹性子元素(Flex item)组成. 弹性容器通过设置 display 属性的值为 flex 或 inline-flex将其定义为弹性容器. 弹性 ...
- eclipse为方法添加注释的快捷键是什么
/** * 登录验证 * @param 传入的vo类 * @return * @throws Exception */这种注释快捷键? 先敲“/”在敲两个**,然后回车
- 论文 查重 知网 万方 paperpass
相信各个即将毕业的学生或在岗需要评职称.发论文的职场人士,论文检测都是必不可少的一道程序.面对市场上五花八门的检测软件,到底该如何选择?选择查重后到底该如何修改?现在就做一个知识的普及.其中对于中国的 ...
- Enable rsh on MAC OS with command line
1. Enable rsh on macos. 1). os version (10.0) Enabling the "Allow remote login" option tur ...
- MFC 屏幕截图方法
//获取当前屏幕的并且保存图片 LRESULT CFeetScanView::SaveViewBMP(WPARAM wParam, LPARAM lParam) { CRect rect; this- ...
- UE4 Android打包 问题 记录笔记
问题一:error: expression result unused [-Werror,-Wunused-value] 虽然看了输出日志知道了这行沉余代码删掉就行,但是不是很懂这个地方报错意义. 问 ...
- NOIP 考前 暴力练习
BZOJ 1028 暴力枚举听的那张牌,和那个多余的两张牌,其余的mod3后模拟就可以了 #include <cstdio> ; int n,m,a[Maxn],b[Maxn],cnt,A ...
- Exercise 24: More Practice
puts "Let's practice everything." puts 'You\'d need to know \'bout escapes with \\ that do ...
- Java 网络爬虫获取网页源代码原理及实现
Java 网络爬虫获取网页源代码原理及实现 1.网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成.传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL ...
- jQuery中bind方法和live方法区别解析
Javascript中的事件有它的独特性,有默认的执行事件,例如冒泡就是其中的一个.在很多比较复杂的应用程序中,停止事件的冒泡或捕获在程序开发当中是十分有用的,而在IE中有它的独特方式来阻止事件的冒泡 ...