Что мне нужно использовать Etsy Statsd в среде Windows? Мои намерения состоят в создании клиента .net для использования Statsd.
Использование Etsy StatsD в среде Windows
Ответ 1
Лучше всего иметь сервер Linux с установленными statsd и Graphite. Тогда вам просто нужно написать код С#, чтобы заставить UDP-вызов получить метрику в системе.
[ОБНОВЛЕНИЕ (6/23/2014): я столкнулся с клоном statsd/Graphite statsd.net, который выглядит многообещающим, но в основном отсутствует на графитовой стороне уравнения. Я по-прежнему считаю, что лучше всего использовать фактические проекты statsd/Graphite, так как любой клон необходим, чтобы догнать.]
Ответ 2
У меня есть statsd + graphite, работающий в моей среде Windows, используя клиент С# NStatsD.
Вот мои заметки о настройке Linux VM:
Примечание. Я знаю, что Linux достаточно опасен, но в любом случае это noob и может делать что-то невообразимо ужасное.
- Установить Ubuntu Server 12.04. Я использовал VirtualBox для dev, а затем позже EC2 для prod.
-
Загрузите graphite-fabric в свою домашнюю папку. Это script, который будет загружать, компилировать и устанавливать графит и statsd. Он ожидает чистой коробки и использует nginx для веб-сервера.
sudo apt-get install git
git clone git://github.com/gingerlime/graphite-fabric.git
cd graphite-fabric/
-
Установите prereq для ткани
sudo apt-get install python-setuptools
-
Следующие шаги - это загрузка, компиляция и установка, которые могут занять некоторое время. Стоит оставить все в порядке на любой сессии ssh putty, прежде чем продолжить.
-
Теперь установите в соответствии с инструкциями по гангстеру в README.md - включая раздел требований.
- Установите statsd в соответствии с инструкциями по гасне.
- Reboot
- Выполнение
netstat -nulp
и наблюдение 8125 используется для подтверждения прослушивания statsd. - Проверить, что углерод работает
tail /opt/graphite/storage/log/carbon-cache/carbon-cache-a/listener.log
. Если это не так, попробуйтеsudo /etc/init.d/carbon start
Теперь у вас работает ваш сервер, попробуйте нажать на него несколько счетчиков с клиентом NStatsD.
Исправление временной зоны:
Это фиксирует графит для времен графа в вашей локальной зоне.
-
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
root отключен на EC2. Ткань запрашивает пароль root, которого у вас нет. Используйте аргумент -i keyfile
с fab, чтобы вместо этого использовать его ssh keyfile.
Заметки VirtualBox
VBoxVMService было удобно автоматически запускать виртуальную машину в качестве службы в моей среде Windows.
Ответ 3
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.
У меня была такая же проблема в моей организации - мы - ориентированная на Windows среда, которая хочет собирать статистику со всего мира в единый графитовый репозиторий. Первоначально я думал об использовании etsy statsd, но моя компания еще не готова к запуску с помощью услуг nodejs в производстве. По пути я обнаружил, что наличие моей собственной службы агрегации означало, что я могу сделать много интересных вещей, например, добавить поддержку memcached для масштабируемости, добавить новые агрегаторы и т.д.
Услуга доступна в консольном режиме прямо сейчас и будет готова к использованию с 29 мая 2013 года.
Ответ 4
Мы перестроили Graphite/StatsD в чистом .NET. В настоящее время он используется в производственной среде, ежедневно обрабатывая около 600 млн. Данных.
Ответ 5
Существует довольно много реализаций с открытым исходным кодом StatsD, доступных на разных языках, включая С#.NET. Etsy предоставляет один из своих github examples, также проверьте версию AppFirst statsd_clients.
Ответ 6
Текущие версии 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.
Ответ 7
Вам нужен сервер statsd для подключения.
Вам также нужна клиентская библиотека для подключения к ней, например. этот и пакет nuget.