# Agentes y módulos generados por el plugin

El plugin crea un módulo `connection` para cada Load Balancer monitorizado. Este módulo se crea siempre, con valor `1` cuando el recurso está disponible y `0` cuando el recurso almacenado en la caché de entidades ya no aparece en Azure.

Si **Create agent per Load Balancer** está activado, se crea un agente por cada Load Balancer descubierto. El nombre del agente se forma usando el prefijo configurado en **Custom Load Balancer agent prefix** más el nombre del Load Balancer.

Ejemplo:

```text
Custom Load Balancer agent prefix: Azure LB 
Load Balancer name: lb-production-frontend
Agent name: Azure LB lb-production-frontend
```

Si **Create agent per Load Balancer** está desactivado, todos los módulos se envían al agente indicado en **Target agent**. En este modo, el nombre del Load Balancer se añade como prefijo al nombre de cada módulo para evitar colisiones.

Los módulos disponibles son:

```bash
connection: Estado del recurso Azure Load Balancer (1=UP, 0=DOWN). Siempre se monitoriza (generic_proc).
allocated SNAT ports: Número de puertos SNAT asignados en el periodo seleccionado (generic_data).
backend pool host count: Número de hosts configurados en los backend pools del Load Balancer (generic_data).
byte count: Bytes transmitidos en el periodo seleccionado (generic_data_inc).
health probe status: Estado medio de los health probes del Load Balancer (generic_data).
packet count: Paquetes transmitidos en el periodo seleccionado (generic_data_inc).
SNAT connection count: Nuevas conexiones SNAT creadas en el periodo seleccionado (generic_data_inc).
load balancer count: Conteo de recurso Load Balancer descubierto (generic_data).
SYN count: Paquetes SYN transmitidos en el periodo seleccionado (generic_data_inc).
used SNAT ports: Número de puertos SNAT utilizados en el periodo seleccionado (generic_data).
data path availability: Disponibilidad media de la ruta de datos del Load Balancer (generic_data).
```

> Los módulos `byte count`, `packet count`, `SNAT connection count` y `SYN count` son de tipo `generic_data_inc`. Al ser contadores incrementales, Pandora FMS puede necesitarlos en dos ejecuciones antes de mostrar el dato calculado correctamente.


**Mapeo de tipos de módulo**

<table id="bkmrk-azure-load-balancer-module-types"><thead><tr><th>Métrica</th><th>Tipo de módulo Pandora FMS</th><th>Unidad</th><th>Descripción</th></tr></thead><tbody><tr><td>connection</td><td>`generic_proc`</td><td></td><td>Estado del recurso Azure Load Balancer. Valor 1 si está disponible y 0 si no se descubre en la ejecución actual.</td></tr><tr><td>allocated SNAT ports</td><td>`generic_data`</td><td>ports</td><td>Número de puertos SNAT asignados durante la ventana seleccionada.</td></tr><tr><td>backend pool host count</td><td>`generic_data`</td><td>hosts</td><td>Número de hosts configurados en los backend pools. Se calcula desde la configuración del Load Balancer.</td></tr><tr><td>byte count</td><td>`generic_data_inc`</td><td>bytes</td><td>Bytes transmitidos. Pandora FMS calcula la tasa a partir del contador incremental.</td></tr><tr><td>health probe status</td><td>`generic_data`</td><td>%</td><td>Estado medio de las comprobaciones de health probe.</td></tr><tr><td>packet count</td><td>`generic_data_inc`</td><td>packets</td><td>Paquetes transmitidos. Pandora FMS calcula la tasa a partir del contador incremental.</td></tr><tr><td>SNAT connection count</td><td>`generic_data_inc`</td><td>connections</td><td>Nuevas conexiones SNAT creadas en la ventana seleccionada.</td></tr><tr><td>load balancer count</td><td>`generic_data`</td><td>count</td><td>Conteo del recurso Load Balancer descubierto. El plugin informa 1 por cada Load Balancer.</td></tr><tr><td>SYN count</td><td>`generic_data_inc`</td><td>packets</td><td>Paquetes SYN transmitidos. Pandora FMS calcula la tasa a partir del contador incremental.</td></tr><tr><td>used SNAT ports</td><td>`generic_data`</td><td>ports</td><td>Número de puertos SNAT utilizados durante la ventana seleccionada.</td></tr><tr><td>data path availability</td><td>`generic_data`</td><td>%</td><td>Disponibilidad media de la ruta de datos del Load Balancer.</td></tr></tbody></table>

El plugin puede asignar identificadores estables en los agentes y módulos para facilitar su identificación posterior desde la consola, dashboards, extensiones o consultas SQL. El identificador externo recomendado para estos datos es el `resource_id` de Azure o el nombre del Load Balancer.

Formato recomendado:

- **Agente:** `azure_load_balancer:target:<resource_id_saneado>` — identifica el Load Balancer monitorizado.
- **Módulo connection:** `azure_load_balancer:metric_connection:<resource_id_saneado>`.
- **Módulos de métricas:** `azure_load_balancer:metric_<metric_name>:<resource_id_saneado>`.

Estos marcadores deben ser estables y no depender únicamente del nombre visible del agente o del módulo, ya que esos campos pueden cambiar por configuración de prefijos.



**Caché de entidades descubiertas**

El plugin utiliza un fichero temporal `entities_list` para almacenar los Load Balancers descubiertos. Esta lógica permite detectar recursos que existían en ejecuciones anteriores y que después han desaparecido de Azure.

Cuando un Load Balancer está almacenado en el fichero de entidades pero ya no aparece en el descubrimiento actual, el plugin mantiene su agente y genera el módulo `connection` con valor `0`. De esta forma Pandora FMS puede alertar de la desaparición del recurso en lugar de eliminarlo silenciosamente de la monitorización.

Si se activa **Enable entities file re-scan interval**, el fichero de entidades se limpia y reconstruye cuando se supera el intervalo configurado en **Re-scan entities file interval**. Si se deja desactivado, se conserva la lista de entidades descubiertas para poder detectar desapariciones.