# Agentes y módulos generados por el plugin

El plugin creará un agente por cada URL de HAProxy indicada. El nombre del agente se calcula aplicando un hash MD5 sobre el `netloc` de la URL, y el alias se corresponde con dicho `netloc` (por ejemplo, `192.168.0.10:8404`). En cada agente se incluirán los módulos obtenidos al parsear el endpoint CSV de estadísticas de HAProxy.

El módulo `status` se crea **siempre** para cada fila, independientemente de los tokens de monitorización, con el fin de alertar ante estados `DOWN`/`MAINT`/`STOP`. El resto de campos numéricos se incluyen como módulos `generic_data` (enteros/decimal) o `generic_data_string` (cadenas), siguiendo el formato `<pxname>_<svname>_<campo>`.

Los principales campos disponibles en el CSV de HAProxy, y que dan lugar a módulos, son:

```bash
pxname: Nombre del proxy (frontend/backend/listener).
svname: Nombre del servicio (FRONTEND/BACKEND/server name).
qcur: Peticiones actualmente en cola.
qmax: Máximo de peticiones en cola.
scur: Sesiones actuales.
smax: Máximo de sesiones.
slim: Límite de sesiones configurado.
stot: Sesiones acumuladas.
bin: Bytes recibidos.
bout: Bytes enviados.
dreq: Peticiones denegadas (seguridad).
dresp: Respuestas denegadas (seguridad).
ereq: Errores de petición.
econ: Errores de conexión hacia el backend.
eresp: Errores de respuesta.
wretr: Reintentos de conexión.
wredis: Reenvíos a otro servidor.
status: Estado (UP/DOWN/MAINT/STOP/...) — siempre se monitoriza.
weight: Peso total / peso del servidor.
act: Servidores activos (backend) / servidor activo.
bck: Servidores de backup (backend) / servidor de backup.
chkfail: Chequeos de salud fallidos.
chkdown: Transiciones UP->DOWN.
lastchg: Segundos desde la última transición UP<->DOWN.
downtime: Tiempo total de caída (segundos).
qlimit: Maxqueue configurado para el servidor.
pid: Process ID.
iid: ID único del proxy.
sid: ID del servidor (único dentro del proxy).
throttle: Porcentaje de throttle actual.
lbtot: Veces que el servidor fue seleccionado.
tracked: ID del proxy/servidor si el tracking está habilitado.
type: Tipo (0=frontend, 1=backend, 2=server, 3=socket).
rate: Sesiones por segundo (último segundo).
rate_lim: Límite configurado de nuevas sesiones/s.
rate_max: Máximo de sesiones por segundo.
check_status: Estado del último health check.
check_code: Código del check (capa 5-7).
check_duration: Tiempo en ms del último health check.
hrsp_1xx: Respuestas HTTP con código 1xx.
hrsp_2xx: Respuestas HTTP con código 2xx.
hrsp_3xx: Respuestas HTTP con código 3xx.
hrsp_4xx: Respuestas HTTP con código 4xx.
hrsp_5xx: Respuestas HTTP con código 5xx.
hrsp_other: Respuestas HTTP con otros códigos.
hanafail: Detalle de checks de salud fallidos.
req_rate: Peticiones HTTP por segundo.
req_rate_max: Máximo de peticiones HTTP por segundo.
req_tot: Total de peticiones HTTP recibidas.
cli_abrt: Transferencias abortadas por el cliente.
srv_abrt: Transferencias abortadas por el servidor.
comp_in: Bytes de respuesta HTTP alimentados al compresor.
comp_out: Bytes de respuesta HTTP emitidos por el compresor.
comp_byp: Bytes que pasaron por alto al compresor HTTP.
comp_rsp: Respuestas HTTP que fueron comprimidas.
lastsess: Segundos desde la última sesión asignada.
last_chk: Contenido/error del último health check.
last_agt: Contenido/error del último agent check.
qtime: Tiempo medio de cola (ms) sobre las últimas 1024 peticiones.
ctime: Tiempo medio de conexión (ms) sobre las últimas 1024 peticiones.
rtime: Tiempo medio de respuesta (ms) sobre las últimas 1024 peticiones.
ttime: Tiempo medio total de sesión (ms) sobre las últimas 1024 peticiones.
agent_status: Estado del último agent check.
agent_code: Código numérico reportado por el agent.
agent_duration: Tiempo en ms del último agent check.
check_desc: Descripción legible de check_status.
agent_desc: Descripción legible de agent_status.
check_rise: Parámetro rise del servidor para los checks.
check_fall: Parámetro fall del servidor para los checks.
check_health: Valor del health check del servidor.
agent_rise: Parámetro rise del agent.
agent_fall: Parámetro fall del agent.
agent_health: Parámetro health del agent.
addr: Dirección:puerto o socket unix.
cookie: Valor de cookie del servidor o nombre de cookie del backend.
mode: Modo del proxy (tcp, http, health, unknown).
algo: Algoritmo de balanceo.
conn_rate: Conexiones durante el último segundo transcurrido.
conn_rate_max: Mayor conn_rate conocido.
conn_tot: Número acumulado de conexiones.
intercepted: Peticiones interceptadas acumuladas.
dcon: Peticiones denegadas por reglas tcp-request connection.
dses: Peticiones denegadas por reglas tcp-request session.
```

El módulo `status` se traduce a un valor numérico según el siguiente mapeo: 5=UP, 4=OPEN, 3=NOLB, 2=MAINT, 1=STOP/STOPPING, 0=DOWN, lo que permite configurar alertas en base a umbrales de warning (2-4) y critical (0-2).