22

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

4

7 回答 7

15

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

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

注意:我知道足够多的 Linux 是危险的,但在其他方面我是个菜鸟,可能会在不知不觉中做一些可怕的事情。

  1. 安装 Ubuntu 服务器 12.04。我将 VirtualBox 用于开发,然后将 EC2 用于生产。
  2. 将石墨织物下载到您的主文件夹。这是一个将下载、编译和安装石墨和 statsd 的脚本。它需要一个干净的盒子并使用 nginx 作为 Web 服务器。

    sudo apt-get install git

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

    cd graphite-fabric/

  3. 为面料安装先决条件

    sudo apt-get install python-setuptools

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

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

  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 作为服务运行。

于 2012-06-05T06:04:44.290 回答
7

TL;博士:

  • 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 日起投入生产使用。

于 2013-05-08T21:08:28.637 回答
5

最好的办法是安装一个安装了 statsd 和 Graphite 的 Linux 服务器。然后,您只需要编写一些 C# 代码来进行 UDP 调用以将度量标准输入系统。

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

于 2011-06-08T22:21:31.867 回答
5

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

统计

在此处输入图像描述

于 2015-06-03T08:40:13.627 回答
2

有相当多的开源 StatsD 客户端实现以不同的语言提供,包括 C#.NET。Etsy 在他们的 github 上提供了一个示例,还可以查看 AppFirst 版本的statsd_clients

于 2012-08-17T17:30:55.500 回答
2

当前的 statsd 和 nodejs 版本允许您在 Windows 上运行 statsd 而无需修改。statsd package.json 文件已经包含将其作为 Windows 服务安装和卸载的脚本。

安装过程将是:

  • 为 Windows安装nodejs
  • 创建一个目录,如 C:\StatsD
  • 打开控制台窗口并执行cd \StatsD
  • 然后做npm install https://github.com/etsy/statsd.git
  • node_modules\statsd目录中创建自己的config.json
  • 在控制台窗口中执行cd node_modules\statsdnpm run-script install-windows-service

但是,Graphite 只能在 Linux 上运行。

于 2015-11-24T09:09:48.260 回答
1

您需要一个 statsd 服务器来连接。
您还需要一个客户端库来连接它,例如这个和它的 nuget 包

于 2012-12-14T12:04:00.443 回答