2011-03-25 5 views
21

¿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

+1

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? –

+0

Sí, mi problema se debe a la instalación de grafito. – Christopher

Respuesta

4

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.]

+1

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. –

+3

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

+1

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

14

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.

  1. Instalar Ubuntu Server 12.04. Usé VirtualBox para dev y luego más tarde EC2 para prod.
  2. 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/

  3. Instalar prerrequisito de para la tela

    sudo apt-get install python-setuptools

  4. 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.

  5. Ahora instale según las instrucciones de gingerlime en el archivo README.md, incluida la sección de requisitos.

  6. Instale statsd según las instrucciones de gingerlime.
  7. Reiniciar
  8. Ejecutar netstat -nulp y observar 8125 está en uso para confirmar que statsd está escuchando.
  9. Comprueba que el carbono se está ejecutando tail /opt/graphite/storage/log/carbon-cache/carbon-cache-a/listener.log. Si no es así, intente sudo /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

  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 (consulte con ls -l que los permisos se ven bien)
  4. sudo pico local_settings.py Conjunto TIME_ZONE a algo como Australia/Sydney. Descubre lo TimeZones puede utilizar en /usr/share/zoneinfo/
  5. 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.

2

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.

1

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.

7

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.

+0

Se ve bien, lo intentaré. Agregaré soporte para Redis como back-end si lo encuentro útil. – DanB

+0

Tengo curiosidad por saber cuándo escribirá un agente de colección que puede enviar a statsd.net :) –

5

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.

Statsify:

enter image description here

+0

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

2

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 tuyo config.json
  • En la ventana de la consola y hacer npm run-script install-windows-service

Sin embargo, grafito sólo se ejecuta en Linux.

Cuestiones relacionadas