在Windows环境中使用Etsy的Statsd需要什么?我的目的是创建一个.net客户端来使用Statsd .
最好的办法是安装一个带有statsd和Graphite的Linux服务器 . 然后,您只需编写一些C#代码即可进行UDP调用以获取指标进入系统 .
[更新(2014年6月23日):我遇到了一个名为statsd.net的statsd / Graphite克隆,它看起来很有前途但很大程度上缺乏Graphite方面 . 我仍然认为最好的选择是使用实际的statsd / Graphite项目,因为任何克隆都是必要的追赶 . ]
我使用C#client NStatsD在我的Windows环境中运行了statsd graphite .
以下是获取Linux VM设置的注意事项:
注意:我知道足够的Linux是危险的,但是否则是一个菜鸟,可能会做一些不知不觉的事情 .
安装Ubuntu Server 12.04 . 我使用VirtualBox for dev,然后使用EC2 for prod .
将graphite-fabric下载到您的主文件夹 . 这是一个下载,编译和安装graphite和statsd的脚本 . 它需要一个干净的盒子,并使用nginx作为Web服务器 .
sudo apt-get install git
git clone git://github.com/gingerlime/graphite-fabric.git
cd graphite-fabric/
sudo apt-get install python-setuptools
接下来的步骤是下载,编译和安装,这可能需要一些时间 . 值得在继续之前在任何putty ssh会话上设置保持活动状态 .
现在按照gingerlime的说明在README.md中安装 - 包括需求部分 .
根据gingerlime的说明安装statsd .
重启
执行 netstat -nulp 并观察8125正在使用以确认statsd正在侦听 .
netstat -nulp
检查碳正在运行 tail /opt/graphite/storage/log/carbon-cache/carbon-cache-a/listener.log . 如果不是,请尝试 sudo /etc/init.d/carbon start
tail /opt/graphite/storage/log/carbon-cache/carbon-cache-a/listener.log
sudo /etc/init.d/carbon start
现在您的服务器正在运行,请尝试使用NStatsD客户端向其投放一些计数器 .
Timezone fix :
这会将石墨固定在本地区域的图形时间
cd /opt/graphite/webapp/graphite
sudo cp local_settings.py.example local_settings.py
sudo chown www-data:www-data local_settings.py (检查 ls -l 权限是否正确)
sudo chown www-data:www-data local_settings.py
ls -l
sudo pico local_settings.py 将TIME_ZONE设置为 Australia/Sydney . 了解您可以在 /usr/share/zoneinfo/ 中使用的时区
sudo pico local_settings.py
Australia/Sydney
/usr/share/zoneinfo/
保存并重新启动该框(不确定如何在不重启的情况下接收更改)
EC2 Notes
在EC2上禁用root . Fabric会提示您输入您没有的root密码 . 使用fab的 -i keyfile 参数来代替你的ssh密钥文件 .
-i keyfile
VirtualBox Notes
VBoxVMService在我的Windows开发环境中自动运行VM作为服务非常方便 .
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日开始 生产环境 .
我们在纯.NET中重建了Graphite / StatsD . 它目前正在 生产环境 环境中使用,每天处理大约600M数据点 .
Statsify:
有很多开源的StatsD客户端实现可用于不同的语言,包括C#.NET . Etsy在他们的github上提供了一个examples,也查看了AppFirst版本的statsd_clients .
当前的statsd和nodejs版本允许您在Windows上运行statsd而无需修改 . statsd package.json文件已包含用于安装和卸载Windows服务的脚本 .
安装程序如下:
安装nodejs for Windows
创建一个类似C:\ StatsD的目录
打开控制台窗口并执行 cd \StatsD
cd \StatsD
然后做 npm install https://github.com/etsy/statsd.git
npm install https://github.com/etsy/statsd.git
在 node_modules\statsd 目录中创建自己的 config.json
node_modules\statsd
config.json
在控制台窗口中执行 cd node_modules\statsd 和 npm run-script install-windows-service
cd node_modules\statsd
npm run-script install-windows-service
但是,Graphite仅在Linux上运行 .
您需要一个statsd服务器才能连接 .您还需要一个客户端库来连接它,例如this one和the nuget package .
7 回答
最好的办法是安装一个带有statsd和Graphite的Linux服务器 . 然后,您只需编写一些C#代码即可进行UDP调用以获取指标进入系统 .
[更新(2014年6月23日):我遇到了一个名为statsd.net的statsd / Graphite克隆,它看起来很有前途但很大程度上缺乏Graphite方面 . 我仍然认为最好的选择是使用实际的statsd / Graphite项目,因为任何克隆都是必要的追赶 . ]
我使用C#client NStatsD在我的Windows环境中运行了statsd graphite .
以下是获取Linux VM设置的注意事项:
注意:我知道足够的Linux是危险的,但是否则是一个菜鸟,可能会做一些不知不觉的事情 .
安装Ubuntu Server 12.04 . 我使用VirtualBox for dev,然后使用EC2 for prod .
将graphite-fabric下载到您的主文件夹 . 这是一个下载,编译和安装graphite和statsd的脚本 . 它需要一个干净的盒子,并使用nginx作为Web服务器 .
sudo apt-get install git
git clone git://github.com/gingerlime/graphite-fabric.git
cd graphite-fabric/
sudo apt-get install python-setuptools
接下来的步骤是下载,编译和安装,这可能需要一些时间 . 值得在继续之前在任何putty ssh会话上设置保持活动状态 .
现在按照gingerlime的说明在README.md中安装 - 包括需求部分 .
根据gingerlime的说明安装statsd .
重启
执行
netstat -nulp
并观察8125正在使用以确认statsd正在侦听 .检查碳正在运行
tail /opt/graphite/storage/log/carbon-cache/carbon-cache-a/listener.log
. 如果不是,请尝试sudo /etc/init.d/carbon start
现在您的服务器正在运行,请尝试使用NStatsD客户端向其投放一些计数器 .
Timezone fix :
这会将石墨固定在本地区域的图形时间
cd /opt/graphite/webapp/graphite
sudo cp local_settings.py.example local_settings.py
sudo chown www-data:www-data local_settings.py
(检查ls -l
权限是否正确)sudo pico local_settings.py
将TIME_ZONE设置为Australia/Sydney
. 了解您可以在/usr/share/zoneinfo/
中使用的时区保存并重新启动该框(不确定如何在不重启的情况下接收更改)
EC2 Notes
在EC2上禁用root . Fabric会提示您输入您没有的root密码 . 使用fab的
-i keyfile
参数来代替你的ssh密钥文件 .VirtualBox Notes
VBoxVMService在我的Windows开发环境中自动运行VM作为服务非常方便 .
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日开始 生产环境 .
我们在纯.NET中重建了Graphite / StatsD . 它目前正在 生产环境 环境中使用,每天处理大约600M数据点 .
Statsify:
有很多开源的StatsD客户端实现可用于不同的语言,包括C#.NET . Etsy在他们的github上提供了一个examples,也查看了AppFirst版本的statsd_clients .
当前的statsd和nodejs版本允许您在Windows上运行statsd而无需修改 . statsd package.json文件已包含用于安装和卸载Windows服务的脚本 .
安装程序如下:
安装nodejs for Windows
创建一个类似C:\ StatsD的目录
打开控制台窗口并执行
cd \StatsD
然后做
npm install https://github.com/etsy/statsd.git
在
node_modules\statsd
目录中创建自己的config.json
在控制台窗口中执行
cd node_modules\statsd
和npm run-script install-windows-service
但是,Graphite仅在Linux上运行 .
您需要一个statsd服务器才能连接 .
您还需要一个客户端库来连接它,例如this one和the nuget package .