这4个文章是一个系列的,关于如何配置 StatsD,Graphite以及如何使用两者来显示访问信息:

  1. StatsD学习:http://blog.csdn.net/puncha/article/details/9083061
  2. 在Ubuntu Server 12.04 x64下安装Graphite: http://blog.csdn.net/puncha/article/details/9092765
  3. StatsD与Graphite联合作战:http://blog.csdn.net/puncha/article/details/9112293
  4. Graphite实战:http://blog.csdn.net/puncha/article/details/9137001

前几天学习了StatsD和Graphite,这几天开始把他们俩挂接起来。没想象中那么容易,费了好一番功夫。

1,创建一个新目录,开始一个新的NodeJs项目,比如SG (我已经上传到Github上了:https://github.com/puncha/StatsDnGraphite.git)

2,使用“npm install statsD --save”来安装StatsD服务器

3,进入“SG\node_modules\statsD目录,拷贝一份exampleConfig.js并重名名为config.js。

4,修改config.js,改成如下内容(GraphiteHost要改成你Graphite服务器地址,端口默认识2003,前文也提到我们公司比较特殊,所以我改成了2013,backends我使用了graphite和console,这样就可以看到控制台输出了,debug设置成true,可以看到一些调试信息,legacyNamespace可以忽略掉):

{graphitePort: 2013,graphiteHost: "10.31.143.230",port: 8125, backends: [ "./backends/graphite", "./backends/console" ],debug: true,legacyNamespace: false
}

5,使用”node stats.js config.js“来启动statsD服务。好了,到此为止,statsD服务器就配置好了。

6,接下来就是准备写程序了。

7,回到SG\目录,使用”npm install statsD-client --save“来安装statsD-clinet库,这个库代码比较简单,是使用socket和statsD通讯的,一共也没几行代码。

8,创建app.js,写一些简单的测试代码:

var sdc_init = require('statsd-client')
var sdc = new sdc_init({ host: 'localhost' });
sdc.increment('my.test.1', 5);
sdc.close();

9,可以稍加测试,看看statsD有没有日志显示,graphite有没有生成一个叫stats.my.test.1的计数器。

10,顺利的话,你应该能看到图表了,但是还有一个重大的问题,精度问题!statsD默认是10s一个周期(可以修改config.js的flushInterval属性),而carbon的配置是60s,所以两者不同步,会导致各种问题(参见:https://github.com/etsy/statsd/issues/32),解决方法是修改/opt/graphite/conf/storage-schemas.conf(参见:http://graphite.readthedocs.org/en/0.9.10/config-carbon.html),在default_1min_for_1day前添加下面2段(每一个时间间隔必须是第一个的倍数,也就是说,第一个是10s,那么第二个不能是12s):

[statsD]
pattern = ^stats\.
retentions = 10s:1d,30s:7d,1m:21d,15m:5y[statsD-2]
pattern = ^stats_counts\.
retentions = 10s:1d,30s:7d,1m:21d,15m:5y

修改完,重启carbon就可以了:

/opt/graphite/bin$ sudo python carbon-cache.py stop
/opt/graphite/bin$ sudo python carbon-cache.py start

稍加配置,你应该可以看到如下图表:

在本博文即将写完之时,发现别人写了类似的博文,将来说不定能参考下:(一共有4篇,这是其中之一)
http://blog.csdn.net/crazyhacking/article/details/8444704

StatsD与Graphite联合作战相关推荐

  1. Graphite实战

    这4个文章是一个系列的,关于如何配置 StatsD,Graphite以及如何使用两者来显示访问信息: StatsD学习:http://blog.csdn.net/puncha/article/deta ...

  2. 智能化运维最佳实践-自动化

    伴随着互联网以及大数据时代的到来,IT信息系统已经成为最重要的数据载体和信息来源, IT系统在企业内部的重要性日益突出:但是随着企业信息化程度的提高.IT环境规模的扩大和IT环境复杂度的增加.行业内服 ...

  3. #研发解决方案介绍#基于StatsD+Graphite的智能监控解决方案

    2019独角兽企业重金招聘Python工程师标准>>> 关键词: 监控 .dashboard.PHP.graphite.statsd.whisper.carbon.grafana.i ...

  4. 业务监控系统如何做,一起来看看如何使用Statsd+Graphite+Grafana搭建业务监控系统

    背景介绍 希望能够对业务指标监控,通过业务指标监控反应业务系统的稳定性,原因是通过对基础资源,应用服务状态,性能监控,不能够反应业务系统的稳定性,举个栗子:服务程序一切正常,下单接口因参数校验,导致很 ...

  5. StatsD!次世代系统监控的核心

    StatsD!次世代系统监控的核心 发表于2015-12-11 11:15| 1360次阅读| 来源CSDN| 3 条评论| 作者张璐 开源运维StatsD width="22" ...

  6. 实战 Prometheus 搭建监控系统

    欢迎关注方志朋的博客,回复"666"获面试宝典 Prometheus 是一款基于时序数据库的开源监控告警系统,说起 Prometheus 则不得不提 SoundCloud,这是一个 ...

  7. 号称下一代监控系统,来看看它有多强!

    以下文章来源方志朋的博客,回复"666"获面试宝典 Prometheus 是一款基于时序数据库的开源监控告警系统,说起 Prometheus 则不得不提 SoundCloud,这是 ...

  8. 号称下一代监控系统?

    点击关注公众号,Java干货及时送达 来源 | aneasystone.com/archives/2018/11/prometheus-in-action.html 前言 Prometheus 是一款 ...

  9. 【Prometheus】 Prometheus 入门到实战搭建监控系统

    Prometheus (普罗米修斯)是一款基于时序数据库的开源监控告警系统,说起 Prometheus 则不得不提 SoundCloud,这是一个在线音乐分享的平台,类似于做视频分享的 YouTube ...

最新文章

  1. STM8单片机串口驱动的深度解析
  2. iOS基础篇非运行状态——应用启动场景介绍
  3. 香帅的北大金融学课笔记2 -- 银行
  4. c++保留小数点后三位数_C++保留有效位与保留小数位
  5. 递归算法详解及测试效率
  6. 浙江大学公共管理学院与阿里云计算有限公司达成合作 | 凌云时刻
  7. 批量创建文件夹并命名的方法
  8. lottie-动画转代码神器
  9. opencv-之求直线的斜率
  10. 论文解读-通过建模时空动态生成活动轨迹
  11. VMware安装失败 找不到msi文件
  12. 微信开发:JS自动关闭内置浏览器回到微信对话窗口
  13. 应届毕业生2012求职之路
  14. c语言手机通讯录用动态链表,通讯录用链表来连接怎么弄????
  15. C#dataGridView 知识(示例代码)以及相关的经验技巧
  16. 网格环境配置(三):安装SGE
  17. 支持向量机 二 :非线性支持向量机
  18. js将中国标准时间转化为年月日时分秒(yyyy-mm-dd)格式以及时间戳,日期,天数之间的转换
  19. 常用的协议端口号(TCP and UDP)
  20. 虚拟局域网VLAN和以太网交换机端口分类(access,trunk,hybird)

热门文章

  1. 联网报警器红外探头的工作原理
  2. 金蝉机器人_《金蝉脱壳2》残暴!机器人身份姓名首次曝光监狱更具压迫感
  3. top命令的原理是什么
  4. freemarker导出word、word转pdf,带附件、图片等比缩放
  5. 器件选型篇:二极管之肖特基选型
  6. windows下 搭建 wxWidgets 开发环境
  7. 我们对区块链游戏的期望太高了
  8. 《单核工作法图解》阅读摘要
  9. tableFooterView中的按钮点击没反应
  10. STM32 DAC 输出正弦波、三角波、方波