在Windows环境中使用Etsy的StatsD

Chr*_*her 22 .net c# windows graphite

在Windows环境中使用Etsy的Statsd需要什么?我的目的是创建一个.net客户端来使用Statsd.

fia*_*iat 15

我使用C#客户端NStatsD在我的Windows环境中运行statsd + graphite .

以下是获取Linux VM设置的注意事项:

注意:我知道足够的Linux是危险的,但是否则是一个菜鸟,可能会做一些不知不觉的事情.

  1. 安装Ubuntu Server 12.04.我使用VirtualBox for dev,然后使用EC2 for prod.
  2. graphite-fabric下载到您的主文件夹.这是一个下载,编译和安装graphite和statsd的脚本.它需要一个干净的盒子,并使用nginx作为Web服务器.

    sudo apt-get install git

    git clone git://github.com/gingerlime/graphite-fabric.git

    cd graphite-fabric/

  3. 安装Fabric的先决条件

    sudo apt-get install python-setuptools

  4. 接下来的步骤是下载,编译和安装,这可能需要一些时间.值得在继续之前在任何putty ssh会话上设置保持活动状态.

  5. 现在按照gingerlime的说明在README.md中安装 - 包括需求部分.

  6. 按照gingerlime的说明安装statsd.
  7. 重启
  8. 执行netstat -nulp并观察8125正在使用以确认statsd正在收听.
  9. 检查碳是否正在运行tail /opt/graphite/storage/log/carbon-cache/carbon-cache-a/listener.log.如果不是,请尝试sudo /etc/init.d/carbon start

现在您的服务器正在运行,请尝试使用NStatsD客户端向其投放一些计数器.

时区修复:

这会将石墨固定在本地区域的图形时间

  1. cd /opt/graphite/webapp/graphite
  2. sudo cp local_settings.py.example local_settings.py
  3. sudo chown www-data:www-data local_settings.py(检查ls -l权限看起来是正确的)
  4. sudo pico local_settings.py将TIME_ZONE设置为类似的东西Australia/Sydney.了解您可以使用的时区/usr/share/zoneinfo/
  5. 保存并重新启动该框(不确定如何在不重新启动的情况下获取更改)

EC2备注

在EC2上禁用root.Fabric会提示您输入您没有的root密码.使用-i keyfilefab 的参数来代替你的ssh密钥文件.

VirtualBox笔记

VBoxVMService在我的Windows开发环境中自动运行VM作为服务非常方便.


use*_*682 7

TL; DR:

  • statsd.net是一个可扩展的statsd克隆,具有许多很酷的附加功能,专为以Windows为中心的环境而设计.首次发布于2013年5月29日
  • statsd-csharp-client是一个轻量级的statsd和statsd.net客户端,可通过nuget用于.net 3.5,4.0和4.5.

完全披露:我是这两个项目的作者,我写了它们因为我无法将etsy的statsd服务用于生产 - 我的组织还没有准备好部署和支持基于nodejs的服务.

我的组织遇到了同样的问题 - 我们是一个以Windows为中心的环境,希望将来自世界各地的统计数据收集到一个石墨库中.我最初想过使用etsy的statsd,但我的公司尚未准备好在生产中使用nodejs服务.在此过程中,我发现拥有自己的聚合服务意味着我可以做很多有趣的事情,例如添加memcached支持可伸缩性,添加新聚合器等等.

该服务现在可以在控制台模式下使用,并且可以从2013年5月29日开始生产.


bbr*_*own 5

最好的办法是安装一个带有statsd和Graphite的Linux服务器.然后,您只需编写一些C#代码即可进行UDP调用以获取指标进入系统.

[更新(2014年6月23日):我遇到了一个名为statsd.net的statsd/Graphite克隆,它看起来很有前景但很大程度上缺乏Graphite方面.我仍然认为最好的选择是使用实际的statsd/Graphite项目,因为任何克隆都是必要的追赶.]

  • 嗨@bbrown,我是statsd.net的作者,可以告诉你我们功能完整,除了直方图.Statsd.net目前在许多运行石墨的网站上运营.一个这样的网站有statsd.net在全球15个不同的托管位置运行,每天捕获超过2.2亿个指标.我不确定你是如何得出它在Graphite方面缺乏的结论 - 你能帮我理解你为什么这么想吗?为了完成,statsd.net还支持服务器链接,MS SQL登台区域,librato.com输出等等. (3认同)
  • OP的问题是"在Windows环境中我需要使用Etsy的Statsd?" - 而statsd.net确实是一个合适的替代品.我同意,Graphite无法在Windows上运行,但这不是他所要求的.当你说缺乏Graphite方面时,我认为你指的是statsd.net的输出功能.而且,既然我们是先生们,那就让我们动摇和弥补. (2认同)

Ant*_*lev 5

我们在纯.NET中重建了Graphite/StatsD.它目前正在生产环境中使用,每天处理大约600M数据点.

统计:

在此输入图像描述