Использование Etsy's StatsD в среде Windows - PullRequest
22 голосов
/ 25 марта 2011

Что мне понадобится для использования Etsy's Statsd в среде Windows? Я намерен создать .net-клиент для использования Statsd.

Ответы [ 7 ]

15 голосов
/ 05 июня 2012

В моей среде Windows запущен statsd + graphite с использованием клиента C # NStatsD .

Вот мои заметки по настройке виртуальной машины Linux:

Примечание: я знаю достаточно Linux, чтобы быть опасным, но в остальном я нуб и могу делать что-то непреднамеренно ужасное.

  1. Установить Ubuntu Server 12.04. Я использовал VirtualBox для dev, а затем EC2 для prod.
  2. Загрузите графитовая ткань в свою домашнюю папку. Это скрипт, который будет загружать, компилировать и устанавливать графит и statsd. Он ожидает чистую коробку и использует nginx для веб-сервера.

    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. Следующие шаги - загрузка, компиляция и установка, которая может занять некоторое время. Перед продолжением целесообразно установить поддержку активности в любом сеансе putsh ssh.

  5. Теперь установите в соответствии с инструкциями gingerlime в README.md - включая раздел требований.

  6. Установите statsd согласно инструкциям gingerlime.
  7. Reboot
  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

root отключен на EC2. Fabric запрашивает пароль root, которого у вас нет. Используйте аргумент -i keyfile с fab, чтобы вместо этого дать ему свой ssh ​​keyfile.

Примечания VirtualBox

VBoxVMService было удобно для автоматического запуска виртуальной машины как службы в моей среде разработки Windows.

7 голосов
/ 09 мая 2013

TL; DR:

  • statsd.net - масштабируемый клон statsd с множеством полезных дополнений, разработанный для сред, ориентированных на Windows.Первый производственный выпуск - 29 мая 2013 г.
  • statsd-csharp-client - это облегченный клиент statsd и statsd.net, доступный для .net 3.5, 4.0 и 4.5 через nuget.

Полное раскрытие: я являюсь автором этих двух проектов, и я написал их, потому что не смог перенести службу etsy statsd в производство - моя организация не готова к развертыванию и поддержке на основе nodejs.services.

У меня была такая же проблема в моей организации - мы ориентированы на Windows и хотим собирать статистику со всего мира в единый графитовый репозиторий.Сначала я думал об использовании statsd от etsy, но моя компания еще не готова работать с сервисами nodejs в производстве.Попутно я обнаружил, что наличие собственной службы агрегации означает, что я могу делать много интересных вещей, таких как добавление поддержки масштабируемости memcached, добавление новых агрегаторов и т. Д.

Служба может использоваться в режиме консоли прямо сейчас, ибудет готов к производственному использованию с 29 мая 2013 года.

5 голосов
/ 03 июня 2015

Мы перестроили Graphite / StatsD в чистый .NET. В настоящее время он используется в производственной среде, ежедневно обрабатывая около 600 миллионов точек данных.

Statsify

enter image description here

5 голосов
/ 09 июня 2011

Лучше всего иметь сервер Linux с установленными statsd и Graphite. Затем вам просто нужно написать некоторый код C #, чтобы сделать UDP-вызов для получения метрики в систему.

[ОБНОВЛЕНИЕ (23.06.2014): я наткнулся на клон statsd / Graphite под названием statsd.net , который выглядит многообещающе, но в основном отсутствует в графитовой части уравнения. Я по-прежнему считаю, что лучше всего использовать реальные проекты statsd / Graphite, поскольку любой клон необходим для игры в догонялки.]

2 голосов
/ 24 ноября 2015

Текущие версии statsd и nodejs позволяют запускать statsd в Windows без изменений. Файл statsd package.json уже содержит сценарии для установки и удаления его как службы Windows.

Процедура установки будет:

  • Установка nodejs для 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.

2 голосов
/ 17 августа 2012

Существует довольно много реализаций клиента StatsD с открытым исходным кодом, доступных на разных языках, включая C # .NET.Etsy предоставил один на их github examples , а также ознакомился с версией AppFirst statsd_clients .

1 голос
/ 14 декабря 2012

Вам нужен сервер statsd для подключения.
Вам также нужна клиентская библиотека для подключения к ней, например, этот и пакет Nuget этого.

...