# Agentes y módulos generados

El plugin crea un módulo `Application Gateway Connection` para cada Application Gateway monitorizado. Este módulo se crea con valor `1` cuando el recurso está disponible y con valor `0` cuando el recurso almacenado en la caché de entidades ya no aparece en Azure.

Si **Create one agent per Application Gateway** está activado, se crea un agente por cada Application Gateway descubierto. El nombre del agente se forma usando el prefijo configurado en **Application Gateway agent prefix** más el nombre del Application Gateway.

Ejemplo:

```text
Application Gateway agent prefix: Azure Application Gateway 
Application Gateway name: agw-production-frontend
Agent name: Azure Application Gateway agw-production-frontend
```

Si **Create one agent per Application Gateway** está desactivado, todos los módulos se envían al agente indicado en **Target agent**. En este modo, el nombre del Application Gateway se añade como prefijo al nombre de cada módulo para evitar colisiones.

Los módulos disponibles son:

```bash
Application Gateway Connection: Estado del recurso Azure Application Gateway (1=UP, 0=DOWN). Se crea como generic_proc.
CPU Utilization: Uso de CPU del Application Gateway.
Current Connections: Número de conexiones actuales.
Failed Requests: Número de peticiones fallidas.
HTTP Status: Conteo de códigos de estado HTTP.
Throughput: Throughput medio del Application Gateway.
Total Requests: Número total de peticiones.
Healthy Host Count: Número de hosts backend sanos.
Unhealthy Host Count: Número de hosts backend no sanos.
Average Request Count Per Healthy Host: Promedio de peticiones por host backend sano.
Backend Connect Time: Tiempo de conexión al backend.
Backend First Byte Response Time: Tiempo hasta el primer byte de respuesta del backend.
Backend Last Byte Response Time: Tiempo hasta el último byte de respuesta del backend.
Application Gateway Total Time: Tiempo total procesado por el Application Gateway.
Client RTT: Round Trip Time del cliente.
Bytes Sent: Bytes enviados.
Bytes Received: Bytes recibidos.
TLS Protocol: Conteo por protocolo TLS.
Compute Units: Unidades de cómputo. Solo aplica a SKUs v2.
Capacity Units: Unidades de capacidad. Solo aplica a SKUs v2.
Estimated Billed Capacity Units: Capacidad facturada estimada. Solo aplica a SKUs v2.
Fixed Billable Capacity Units: Capacidad facturable fija. Solo aplica a SKUs v2.
New Connections Per Second: Nuevas conexiones por segundo. Solo aplica a SKUs v2.
Backend HTTP Status: Conteo de códigos HTTP devueltos por backend.
WAF Matched Count: Coincidencias WAF. Solo aplica a SKUs WAF.
WAF Blocked Requests: Peticiones bloqueadas por WAF. Solo aplica a SKUs WAF.
WAF Blocked Count: Conteo de bloqueos WAF. Solo aplica a SKUs WAF.
WAF Total Requests: Peticiones totales procesadas por WAF. Solo aplica a SKUs WAF.
WAF Security Rule: Coincidencias de reglas de seguridad WAF. Solo aplica a SKUs WAF.
WAF Custom Rule: Coincidencias de reglas personalizadas WAF. Solo aplica a SKUs WAF.
WAF Bot Protection: Eventos de bot protection WAF. Solo aplica a SKUs WAF.
Backend TLS Negotiation Error: Errores de negociación TLS con backend.
Rejected Connections: Conexiones rechazadas.
Application Gateway Count: Conteo del recurso Application Gateway descubierto.
WAF JS Challenge Request Count: Peticiones con challenge JS WAF. Solo aplica a SKUs WAF.
WAF Penalty Box Hits: Hits de penalty box WAF. Solo aplica a SKUs WAF.
WAF Penalty Box Size: Tamaño de penalty box WAF. Solo aplica a SKUs WAF.
WebSocket Active Connections: Conexiones WebSocket activas.
WebSocket Specific Close Status Code: Códigos de cierre WebSocket.
WAF Captcha Challenge Request Count: Peticiones con CAPTCHA challenge WAF. Solo aplica a SKUs WAF.
```

**Mapeo de tipos de módulo**

<table id="bkmrk-azure-application-gateway-module-types"><thead><tr><th>Métrica</th><th>Tipo de módulo Pandora FMS</th><th>Agregación Azure</th><th>Descripción</th></tr></thead><tbody><tr><td>Application Gateway Connection</td><td>`generic_proc`</td><td></td><td>Estado del recurso Azure Application Gateway. Valor 1 si está disponible y 0 si no se descubre en la ejecución actual.</td></tr><tr><td>CPU Utilization</td><td>`generic_data`</td><td>Average</td><td>Uso de CPU del Application Gateway.</td></tr><tr><td>Current Connections</td><td>`generic_data`</td><td>Average</td><td>Conexiones actuales.</td></tr><tr><td>Failed Requests</td><td>`generic_data`</td><td>Total</td><td>Peticiones fallidas.</td></tr><tr><td>HTTP Status</td><td>`generic_data`</td><td>Total</td><td>Conteo de estados HTTP.</td></tr><tr><td>Throughput</td><td>`generic_data`</td><td>Average</td><td>Throughput medio.</td></tr><tr><td>Total Requests</td><td>`generic_data`</td><td>Total</td><td>Total de peticiones.</td></tr><tr><td>Backend and latency metrics</td><td>`generic_data`</td><td>Average or Total</td><td>Métricas de backend, latencia, tráfico, seguridad, capacidad, WAF y WebSocket devueltas por Azure Monitor.</td></tr></tbody></table>

**Allow y deny regexp**

El filtro de módulos se aplica sobre el nombre final del módulo, una vez aplicado el prefijo configurado en **Modules prefix**. Cada línea del textarea se interpreta como una expresión regular.

Ejemplo de **Modules allow regexp**:

```text
CPU|Throughput
Backend.*
```

Con esta configuración solo se crearán módulos cuyo nombre coincida con `CPU|Throughput` o con `Backend.*`.

Ejemplo de **Modules deny regexp**:

```text
Bytes
WAF.*
```

Con esta configuración se descartan todos los módulos cuyo nombre contenga `Bytes` o empiece por `WAF`.

Si se configuran ambos filtros, el módulo debe coincidir con el allow y no debe coincidir con el deny. El filtro deny se utiliza para descartar módulos concretos aunque el grupo general esté activado.

**Caché de entidades descubiertas**

El plugin utiliza un fichero temporal `entities_list` para almacenar los Application Gateways descubiertos. Esta lógica permite detectar recursos que existían en ejecuciones anteriores y que después han desaparecido de Azure.

Cuando un Application Gateway 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 `Application Gateway 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 refresca cuando se supera el intervalo configurado en **Entities re-scan interval**. Si se deja desactivado, se conserva la lista de entidades descubiertas para poder detectar desapariciones.