Bucky es un pequeño servidor web para recoger y traducir las métricas para Graphite & nbsp;. Es actual puede recoger datos métricos de demonios collectd y de los clientes StatsD.
Instalación
Se puede instalar con easy_install o pip según modus operandi normal:
& Nbsp; easy_install bucky
# O
PIP instalar bucky
Después de la instalación, puede ejecutar Bucky como:
bucky
Por defecto, Bucky se abrirá un socket UDP en collectd 127.0.0.1:25826, una toma StatsD en 127.0.0.1:8125, así como el intento de conectarse a un servicio local de grafito (carbono) en 127.0.0.1:2003.
Estos son todos opcionales como se ilustra a continuación. También puede desactivar los servidores collectd o StatsD completamente si así lo desea.
Running Bucky For Real
El astuto observador notará que Bucky no tiene banderas para daemonization. Esto es muy a propósito. La manera recomendada de ejecutar Bucky en la producción es a través runit. Hay un directorio de servicios ejemplo en el repositorio fuente de Bucky.
Opciones de línea de comandos
Las opciones de línea de comandos se limitan a controlar los parámetros de la red. Si desea configurar algunos de los trabajos más complicados que tendrá que utilizar un archivo de configuración. Aquí está la salida -h bucky:
Uso: main.py [OPCIONES] [CONFIG_FILE]
Opciones:
& Nbsp; - collectd-ip address = IP IP se una para el socket UDP collectd
& Nbsp; [127.0.0.1]
& Nbsp; - collectd-port = INT Puerto de obligar a la toma collectd UDP [25826]
& Nbsp; - collectd-types = ARCHIVO
& Nbsp; Ruta al archivo types.db collectd
& Nbsp; - disable-collectd Deshabilitar el servidor collectd UDP
& Nbsp; - statsd-ip address = IP IP se una para el socket UDP StatsD
& Nbsp; [127.0.0.1]
& Nbsp; - statsd-port = INT Puerto de obligar a la toma StatsD UDP [8125]
& Nbsp; - disable-statsd Deshabilitar el servidor StatsD
& Nbsp; - grafito-ip = IP Dirección IP del servidor de grafito / carbono [127.0.0.1]
& Nbsp; - grafito-port = INT Puerto del servidor de grafito / carbono [2003]
& Nbsp; --traza completa Pantalla completa error si el archivo de configuración no se carga
& Nbsp; - número de versión versión show de programa y salir
& Nbsp; -h, --help muestra este mensaje de ayuda y termina
Opciones Config File
El archivo de configuración es un archivo Python normal que define un número de variables. La mayoría de las opciones de línea de comandos también se puede especificar en este archivo (eliminar el "-" prefijo y reemplazar "-" con "_") pero si se especifica en ambos lugares, la línea de comandos tiene prioridad. Los valores por defecto como un archivo de configuración:
# Prefijo para nombres métricas collectd
collectd_conv_prefix = Ninguno
# Postfix para los nombres de métricas collectd
collectd_conv_postfix = Ninguno
# Vuelva a colocar puntos (.) En los nombres de métricas con este valor
collectd_replace = "_"
# Si un camino tiene idéntica componentes repetidas, colapso
# Ellos a una única instancia. Es decir, se convierte en a.b.b.c a.b.c
collectd_strip_duplicates = True
# Estos nombres de host se eliminarán de nombres de host que
# Se reciben. Es decir, si "foo.bar.cloudant.com" viene en
# Y "cloudant.com" aparece, entonces el resultado
# Hostname será "foo.bar".
collectd_host_trim = []
Métricas # collectd necesidad de tener un nombre generado por
# Utilización por grafito. Aquí se puede registrar un especial
# Controlador para métricas basadas en el plugin collectd
# El nombre.
#
# Por ejemplo, el plugin collectd CPU termina con
# nombres métricas como "host.cpu.0.cpu.idle" para eliminar
# La segunda CPU instancia que puede registrar un plugin
# Para generar el nombre.
#
# La clave dict debe ser el nombre del plugin collectd
# Y el valor deben ser un invocable que acepta
# Un solo argumento y devuelve una lista de cadenas.
collectd_converters = {}
# Deshabilitar Opcionalmente la amplia búsqueda de sistema para
Plugins # Converter.
# convertidores.
collectd_use_entry_points = True
# El número de segundos que el demonio StatsD debe
# Esperar antes de valores rubor.
statsd_flush_time = 10
Configuración collectd
Sólo es necesario añadir algo como esto a su collectd.conf:
LoadPlugin "red"
<"Red" Plugin>
& Nbsp; Server "127.0.0.1" "25826"
Obviamente, usted querrá hacer coincidir las direcciones IP y los puertos y asegurarse de que sus de firewall están configurados para permitir paquetes UDP a través.
Configuración StatsD
Simplemente apunte sus clientes StatsD en IP / Puerto de Bucky y usted debe ser bueno para ir.
Una nota sobre convertidores collectd
Métricas collectd no son exactamente directamente traducible al grafito nombres métricas. El traductor por defecto intenta realizar una mejor estimación pero esto puede dar lugar a un poco menos que los árboles bonitos de grafito.
Por esta razón, Bucky tiene convertidores configurables. Estos tienen la forma adecuada fuera el nombre del plugin collectd. La entrada a estas funciones es una representación de la métrica collectd que se ve como tales:
{
& Nbsp; "anfitrión": 'toroid.local',
& Nbsp; "intervalo": 10.0,
& Nbsp; "plug-in": "memoria",
& Nbsp; "plugin_instance ':' ',
& Nbsp; "tiempo": 1320970329,175534,
& Nbsp; "tipo": "memoria",
& Nbsp; "type_instance ':' inactivo ',
& Nbsp; "valor": 823009280.0,
& Nbsp; "nombre_valor ':' valor ',
& Nbsp; "value_type ': 1
}
El resultado de esta función debe ser una lista de cadenas que representa parte del nombre métrica grafito. Por ejemplo, si un convertidor regresó ["foo", "bar"], el nombre de la métrica definitiva va a terminar como: $ prefijo $ hostname.foo.bar $ postfix...
Un convertidor de orden interna ejemplo se ve como tal:
# Esto podría ser cómo se defina un convertidor en
# Su archivo de configuración
clase MemoryConverter (objeto):
& Nbsp; PRIORIDAD = 0
& Nbsp; def __call __ (self, la muestra):
& Nbsp; volver ["memoria", muestra ["type_instance"]]
collectd_converters = [MemoryConverter ()]
Los coleccionistas también tienen una noción de prioridad con el fin de resolver los conflictos. Esto no es más se prefieren una propiedad en la exigible llamado "PRIORIDAD" y las prioridades más grandes. No me imagino que esto tendrá que ser utilizado muy a menudo, pero está allí por si acaso.
Convertidores bien se pueden declarar y / o importados en el archivo de configuración opcional, o pueden ser autodiscovered través de los puntos de entrada. El punto de entrada que se busca es "bucky.collectd.converters". . El nombre del punto de entrada debe ser el nombre del plugin collectd
Requisitos :
- Python
Comentarios que no se encuentran