¿Qué necesito para usar Etsy's Statsd en un entorno Windows? Mis intenciones son crear un cliente .net para usar Statsd.Usando Etsy's StatsD en un entorno Windows
Respuesta
Su mejor opción es tener un servidor Linux con statsd y Graphite instalado. Entonces solo necesitaría escribir algún código C# para hacer la llamada UDP para obtener la métrica en el sistema.
[ACTUALIZACIÓN (23/6/2014): Me encontré con un clon de statsd/Graphite llamado statsd.net que parece prometedor pero que en gran parte carece del lado de Graphite de la ecuación. Sigo pensando que la mejor opción es usar los proyectos reales de statsd/Graphite ya que cualquier clon es necesario para ponerme al día.]
github @salerth ha tenido una solicitud de extracción para un ejemplo de cliente de C# en el maestro de statsd hace un par de meses - ver https://github.com/etsy/statsd/pull/21. –
Hola @brown, soy el autor de statsd.net y puedo decirte que estamos completos, salvo por histogramas. Statsd.net está actualmente en funcionamiento en varios sitios que ejecutan grafito. Uno de esos sitios tiene statsd.net ejecutándose en 15 ubicaciones de alojamiento diferentes a nivel mundial, capturando más de 220 millones de métricas por día. No estoy seguro de cómo llegaste a la conclusión de que falta en el lado de Graphite. ¿Puedes ayudarme a entender por qué pensabas eso? En aras de la finalización, statsd.net también admite el encadenamiento de servidores, las áreas de preparación de MS SQL, la salida de librato.com y mucho más. – user141682
No lo vi como un reemplazo para Graphite. Parece combinar las características con StatsD y puede actuar como una especie de reemplazo para Carbon (al escribir en SQL Server). Pero no tiene nada más de Graphite. Graphite, por lo que puedo deducir, no funciona en Windows. Entonces, para el consultante original, statsd.net no sería un reemplazo suficiente. No es necesario ponerse a la defensiva y downvote. – bbrown
Tengo statsd + graphite ejecutándose en mi entorno Windows usando el cliente C# NStatsD.
Aquí están mis notas para conseguir la configuración de Linux VM:
Nota: Sé lo suficiente Linux sea peligroso, pero soy un novato lo contrario y podría estar haciendo algo sin querer horrible.
- Instalar Ubuntu Server 12.04. Usé VirtualBox para dev y luego más tarde EC2 para prod.
Descargue graphite-fabric en su carpeta de inicio. Este es un script que descargará, compilará e instalará grafito y statsd. Espera una caja limpia y usa nginx para el servidor web.
sudo apt-get install git
git clone git://github.com/gingerlime/graphite-fabric.git
cd graphite-fabric/
Instalar prerrequisito de para la tela
sudo apt-get install python-setuptools
Los siguientes pasos son una descarga, compilar e instalar lo que puede llevar algún tiempo. Vale la pena establecer un mantener vivo en cualquier sesión de masilla ssh antes de continuar.
Ahora instale según las instrucciones de gingerlime en el archivo README.md, incluida la sección de requisitos.
- Instale statsd según las instrucciones de gingerlime.
- Reiniciar
- Ejecutar
netstat -nulp
y observar 8125 está en uso para confirmar que statsd está escuchando. - Comprueba que el carbono se está ejecutando
tail /opt/graphite/storage/log/carbon-cache/carbon-cache-a/listener.log
. Si no es así, intentesudo /etc/init.d/carbon start
Ahora que tenemos un servidor en funcionamiento, intente tirar algunos contadores en él con el cliente NStatsD.
Zona horaria solución:
Esto solucionará el grafito para representar gráficamente veces en su zona local de
cd /opt/graphite/webapp/graphite
sudo cp local_settings.py.example local_settings.py
sudo chown www-data:www-data local_settings.py
(consulte conls -l
que los permisos se ven bien)sudo pico local_settings.py
Conjunto TIME_ZONE a algo comoAustralia/Sydney
. Descubre lo TimeZones puede utilizar en/usr/share/zoneinfo/
- Guardar y reiniciar la caja (no estoy seguro cómo hacer que recoger el cambio sin reinicio)
EC2 Notas
raíz está deshabilitado en EC2. Fabric solicita una contraseña de root que no tiene. Use el argumento -i keyfile
con fab para darle su sf keyfile en su lugar.
VirtualBox Notas
VBoxVMService era muy útil para ejecutar automáticamente la máquina virtual como un servicio en mi entorno de desarrollo de Windows.
Hay bastantes implementaciones de cliente de código abierto de StatsD disponibles en diferentes idiomas, incluido C# .NET. Etsy proporciona uno en su github examples, también echa un vistazo a la versión AppFirst de statsd_clients.
Necesita un servidor de estadísticas para conectarse.
También necesita una biblioteca cliente para conectarse a ella, p. this one y the nuget package de él.
TL; DR:
- statsd.net es un clon statsd escalable con un montón de extras fresco, y diseñado para entornos de ventanas centradas. La primera versión de producción es el 29 de mayo de 2013
- statsd-csharp-client es un cliente liviano de statsd y statsd.net, disponible para .net 3.5, 4.0 y 4.5 a través de nuget.
Descripción completa: Soy el autor de estos dos proyectos y los escribí porque no pude llevar el servicio statsd de etsy a producción: mi organización no está preparada para implementar y soportar servicios basados en nodejs.
Tuve el mismo problema en mi organización: somos un entorno centrado en Windows que quiere recopilar estadísticas de todo el mundo en un único depósito de grafito. Inicialmente pensé en usar los statsd de etsy, pero mi empresa aún no está lista para comenzar con los servicios de nodejs en producción. En el camino descubrí que tener mi propio servicio de agregación significaba que podía hacer muchas cosas interesantes, como agregar compatibilidad con Memcached para escalabilidad, agregar nuevos agregadores, etc.
El servicio se puede utilizar en el modo de consola en este momento, y estará listo para su uso en producción desde el 29 de mayo de 2013 en adelante.
Se ve bien, lo intentaré. Agregaré soporte para Redis como back-end si lo encuentro útil. – DanB
Tengo curiosidad por saber cuándo escribirá un agente de colección que puede enviar a statsd.net :) –
Hemos reconstruido Graphite/StatsD en .NET puro. Actualmente se está utilizando en el entorno de producción, procesando alrededor de 600 millones de puntos de datos al día.
Esto se ve bien. Revisé el wiki pero no pude encontrar ninguna mención de soporte para los complementos de salida. Puede que lo haya pasado por alto, pero ¿eso es compatible? Por ejemplo, el caso de uso que estoy viendo es el envío de métricas recopiladas a varios backends diferentes. – ayaz
statsd actual y nodejs versiones le permiten ejecutar statsd en Windows sin modificaciones. El archivo statsd package.json ya contiene scripts para instalar y desinstalar como servicio de Windows.
El procedimiento de instalación sería:
- Instalar nodejs for Windows
- Crear un directorio como C: \ StatsD
- Abra una ventana de consola y hacer
cd \StatsD
- A continuación, realice
npm install https://github.com/etsy/statsd.git
- En
node_modules\statsd
directorio crea el tuyoconfig.json
- En la ventana de la consola y hacer
npm run-script install-windows-service
Sin embargo, grafito sólo se ejecuta en Linux.
- 1. Herramientas de StatsD y grafito para .Net y Windows
- 2. ¿Cómo usar Mahout en un entorno Windows?
- 3. Instalar un entorno python/sphinx en Windows?
- 4. Entorno de desarrollo de Windows Windows preferido
- 5. Entorno pseudográfico en Windows Command Prompt
- 6. Python IDE/Entorno para un principiante en Windows
- 7. Desarrollo de GUI con C++ en un entorno de Windows
- 8. Entorno portátil tipo Unix para Windows
- 9. Windows Entorno variable que pasa por OpenSSH
- 10. GUI para datos de statsd distintos de Graphite?
- 11. Usando Git en Windows
- 12. Usando la variable de entorno en una ruta de archivo
- 13. Leer variables de entorno del archivo en Windows Batch (cmd.exe)
- 14. Ver la variable de entorno del proceso en Windows
- 15. ¿Cómo puede encontrar y reemplazar texto en un archivo usando el entorno de línea de comandos de Windows?
- 16. ¿Cómo buscar un entorno usando ls() dentro de una función?
- 17. Cómo exportar e importar variables de entorno en Windows?
- 18. Ver variables de entorno de Windows en Cygwin
- 19. Imprime las variables de entorno usando environ
- 20. ¿Cómo puedo simular un error de disco lleno en un entorno de Windows?
- 21. ¿Qué es un IDE bueno para trabajar con shell-scripting en un entorno Windows?
- 22. entorno max_input_vars Directiva PHP.ini usando ini_set
- 23. Qt en un entorno profesional
- 24. usando Lucida Grande en Windows
- 25. ROauth en Windows usando R
- 26. LaTeX: Adición de un entorno Enumeración de un entorno tabular
- 27. Usando Ninject con un servicio de Windows
- 28. Usar DropCreateDatabaseIfModelChanges en un entorno de producción
- 29. ¿Un entorno con IDE de JavaScript enriquecido?
- 30. ¿Cómo establecer una variable de entorno en Java usando exec?
El artículo dice que es un daemon node.js, así que supongo que el primer paso sería construir node.js en Windows. Ver https://github.com/joyent/node/wiki/Building-node.js-on-Cygwin-(Windows)?view ¿Has hecho tanto, al menos? –
Sí, mi problema se debe a la instalación de grafito. – Christopher