# SQLServer

# Introducción

**Este plugin tiene como finalidad monitorizar bases de datos SQL Server**, mediante consultas que extraerán información sobre datos que son claves para conocer el rendimiento y estado de la bases de datos, como son el número de conexiones, número de consultas y estado de los reinicios. Estos datos se verán reflejados en PandoraFMS, en módulos que aportaran el valor estadístico, dentro de un agente que representará a cada base de datos.

Este plugin está desarrollado para usarse con Pandora FMS Discovery, por lo que a diferencia de otros plugins no genera agentes por XML, si no que todo lo descubierto se devuelve en la salida JSON del plugin.

# Prerrequisitos

Este plugin realiza conexiones remotas a las bases de datos a monitorizar, por lo que es necesario asegurar la conectividad entre el servidor de Pandora FMS y dichas bases de datos.

A su vez los siguientes permisos son requeridos para el usuario que se utiliza para conectar.

VIEW SERVER STATE:

Para ejecutar la consulta SELECT @@VERSION.  
Para consultar sys.dm\_os\_sys\_info (tiempo de actividad del servidor).  
Para consultar sys.dm\_exec\_requests (solicitudes activas en el servidor).  
Para consultar @@MAX\_CONNECTIONS (máximo de conexiones permitidas).  
Para ejecutar sp\_who 'ACTIVE' (sesiones activas en el servidor).

SELECT:

Para ejecutar consultas personalizadas en las tablas o vistas de las bases de datos específicas.

# Parámetros y configuración

**Parámetros**

<table border="1" id="bkmrk---conf-ruta-al-archi" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 20.6735%;">--conf</td><td style="width: 79.4389%;">Ruta al archivo de configuración</td></tr><tr><td style="width: 20.6735%;">--target\_databases</td><td style="width: 79.4389%;">Ruta al archivo de configuración que contiene los targets de las bases de datos</td></tr><tr><td style="width: 20.6735%;">--target\_agents</td><td style="width: 79.4389%;">Ruta al archivo de configuración que contiene los targets de los agentes</td></tr><tr><td style="width: 20.6735%;">--custom\_queries</td><td style="width: 79.4389%;">Ruta al archivo de configuración que contiene las consultas personalizadas</td></tr></tbody></table>

**Archivo de configuración (--conf)**

```
[CONF]
agents_group_id = < ID del grupo en el que se crearán los agentes >
interval = < Intervalo de monitorización de los agentes en segundos >
user = < Usuario de conexión >
password = < Contraseña >
threads = < Número de hilos que se usaran para la creación de agentes >
modules_prefix = < Prefijo de módulos >
entities_list = < Ruta del fichero de entidades >
execute_custom_queries = < Activar con 1 para habilitar el uso de consultas personalizadas >
analyze_connections = < Activar con 1 para habilitar la monitorización de conexiones >
engine_uptime = < Activar con 1 para habilitar la monitorización del tiempo en ejecución >
query_stats = < Activar con 1 para habilitar la monitorización de estadísticas de consultas >
monitor_long_queries = < Activar con 1 para habilitar la monitorización de estadísticas de long queries >
monitor_latch_requests = < Activar con 1 para habilitar la monitorización de estadísticas de latch requests >
monitor_full_scans = < Activar con 1 para habilitar la monitorización de estadísticas de scans >
count_databases = < Activar con 1 para habilitar el conteo de bases de datos  >
retrieve_memory_statistics = < Activar con 1 para habilitar la monitorización de estadísticas de memoria >
retrieve_locks_statistics = < Activar con 1 para habilitar la monitorización de estadísticas de locks >
check_engine_performance = < Activar con 1 para habilitar la monitorización de estadísticas de rendimiento >
retrieve_buffer_statistics = < Activar con 1 para habilitar la monitorización de estadísticas de buffer >
retrieve_users_information = < Activar con 1 para habilitar la monitorización de estadísticas de users >
retrieve_cluster_state = < Activar con 1 para habilitar la monitorización de estadísticas de cluster >
retrieve_logs_statistics = < Activar con 1 para habilitar la monitorización de estadísticas de logs >
monitor_active_users = < Activar con 1 para habilitar la monitorización de estadísticas de usuarios activos >
retrieve_transactions_statistics = < Activar con 1 para habilitar la monitorización de estadísticas de transaccion >
monitor_filegroups_space = < Activar con 1 para habilitar la monitorización de estadísticas de espacio de grupos >
monitor_user_reserved_space = < Activar con 1 para habilitar la monitorización de estadísticas de espacio reservado >
monitor_backups = < Activar con 1 para habilitar la monitorización de estadísticas de backups >
agent_per_database     = < Activar con 1 para habilitar la creación de agentes para cada base de datos  >
db_agent_prefix        = < Prefijo para las bases de datos >
scan_databases         = < Activar con 1 para habilitar la monitorización de bases de datos >

[MODULE_NAMES]
database_size = < Nombre del modulo, por defecto : database_size >
database_usage = < Nombre del modulo, por defecto : database_usage >
restart_detection = < Nombre del modulo, por defecto : restart detection >
queries = < Nombre del modulo, por defecto : queries >
insert = < Nombre del modulo, por defecto : insert >
delete = < Nombre del modulo, por defecto : delete >
update = < Nombre del modulo, por defecto : update >
session_usage = < Nombre del modulo, por defecto : session usage >
database_count = < Nombre del modulo, por defecto : database_count >
server_startup = < Nombre del modulo, por defecto : server_startup >
lock_memory = < Nombre del modulo, por defecto : lock_memory >
connection_memory = < Nombre del modulo, por defecto : connection_memory >
optimizer_memory = < Nombre del modulo, por defecto : optimizer_memory >
sqlcache_memory = < Nombre del modulo, por defecto : sqlcache_memory >
total_memory = < Nombre del modulo, por defecto : total_memory >
deadlocks = < Nombre del modulo, por defecto : deadlocks >
lock_timeouts = < Nombre del modulo, por defecto : lock_timeouts >
lock_requests = < Nombre del modulo, por defecto : lock_requests >
lock_waits = < Nombre del modulo, por defecto : lock_waits >
buf_cachehit_ratio = < Nombre del modulo, por defecto : buf_cachehit_ratio >
free_connections = < Nombre del modulo, por defecto : free_connections >
page_reads = < Nombre del modulo, por defecto : page_reads >
page_writes = < Nombre del modulo, por defecto : page_writes >
latch_waits = < Nombre del modulo, por defecto : latch_waits >
full_scans = < Nombre del modulo, por defecto : full_scans >
locks_used = < Nombre del modulo, por defecto : locks_used >
workspace_memory = < Nombre del modulo, por defecto : workspace_memory >
average_waittime = < Nombre del modulo, por defecto : average_waittime >
server_cpu = < Nombre del modulo, por defecto : server_cpu >
server_io = < Nombre del modulo, por defecto : server_io >
active_connection_ratio = < Nombre del modulo, por defecto : active_connection_ratio >
locked_users = < Nombre del modulo, por defecto : locked_users >
blocked_users = < Nombre del modulo, por defecto : blocked_users >
active_users = < Nombre del modulo, por defecto : active_users >
long_queries = < Nombre del modulo, por defecto : long_queries >
long_queries_string = < Nombre del modulo, por defecto : long_queries_string >
aag_cluster_quorum_state = < Nombre del modulo, por defecto : aag_cluster_quorum_state >
aag_cluster_members_state = < Nombre del modulo, por defecto : aag_cluster_members_state >
aag_synchronization_health = < Nombre del modulo, por defecto : aag_synchronization_health >
aag_replica_synchronization_health = < Nombre del modulo, por defecto : aag_replica_synchronization_health >
aag_replica_connected_state = < Nombre del modulo, por defecto : aag_replica_connected_state >
aag_replica_recovery_health = < Nombre del modulo, por defecto : aag_replica_recovery_health >
aag_replica_operational_state = < Nombre del modulo, por defecto : aag_replica_operational_state >
aag_db_replica_synchronization_state = < Nombre del modulo, por defecto : aag_db_replica_synchronization_state >
aag_listener_state = < Nombre del modulo, por defecto : aag_listener_state >

availability = < Nombre del modulo, por defecto : availability >
state = < Nombre del modulo, por defecto : state >
db_active_users = < Nombre del modulo, por defecto : active users >
transactions = < Nombre del modulo, por defecto : transactions >
active_transactions = < Nombre del modulo, por defecto : active_transactions >
log_flush_waits = < Nombre del modulo, por defecto : log_flush_waits >
log_file_growths = < Nombre del modulo, por defecto : log_file_growths >
log_file_shrinks = < Nombre del modulo, por defecto : log_file_shrinks >
logfile_size = < Nombre del modulo, por defecto : logfile_size >
logfile_usage = < Nombre del modulo, por defecto : logfile_usage >
log_cachehit_ratio = < Nombre del modulo, por defecto : log_cachehit_ratio >
backup_status_minutes = < Nombre del modulo, por defecto : backup_status_minutes >
backup_status_last_backup = < Nombre del modulo, por defecto : backup_status_last_backup >
fg_free_space = < Nombre del modulo, por defecto : fg_free_space >

```

<span style="text-decoration: underline;">Ejemplo</span>

```
[CONF]
agents_group_id = 10
interval = 300
user = sa 
password = HHgD85V@
threads = 1
modules_prefix = 
entities_list= /tmp/mssql_entities_list.txt
execute_custom_queries = 1
analyze_connections = 1
engine_uptime = 1
query_stats = 1
monitor_long_queries = 1
monitor_latch_requests = 1 
monitor_full_scans = 1
count_databases = 1
retrieve_memory_statistics = 1
retrieve_locks_statistics = 1
check_engine_performance = 1
retrieve_buffer_statistics = 1 
retrieve_users_information = 1
retrieve_cluster_state = 1
retrieve_logs_statistics = 1 
monitor_active_users = 1
retrieve_transactions_statistics = 1
monitor_filegroups_space = 1
monitor_user_reserved_space = 1
monitor_backups = 1
agent_per_database     = 1
db_agent_prefix        = PANDORA-
scan_databases         = 1

[MODULE_NAMES]
database_size = database_size
database_usage = database_usage
restart_detection = restart detection
queries = queries
insert = insert
delete = delete
update = update
session_usage = session usage
database_count = database_count
server_startup = server_startup
lock_memory = lock_memory
connection_memory = connection_memory
optimizer_memory = optimizer_memory
sqlcache_memory = sqlcache_memory
total_memory = total_memory
deadlocks = deadlocks
lock_timeouts = lock_timeouts
lock_requests = lock_requests
lock_waits = lock_waits
buf_cachehit_ratio = buf_cachehit_ratio
free_connections = free_connections
page_reads = page_reads
page_writes = page_writes
latch_waits = latch_waits
full_scans = full_scans
locks_used = locks_used
workspace_memory = workspace_memory
average_waittime = average_waittime
server_cpu = server_cpu
server_io = server_io
active_connection_ratio = active_connection_ratio
locked_users = locked_users
blocked_users = blocked_users
active_users = active_users
long_queries = long_queries
long_queries_string = long_queries_string
aag_cluster_quorum_state = aag_cluster_quorum_state
aag_cluster_members_state = aag_cluster_members_state
aag_synchronization_health = aag_synchronization_health
aag_replica_synchronization_health = aag_replica_synchronization_health
aag_replica_connected_state = aag_replica_connected_state
aag_replica_recovery_health = aag_replica_recovery_health
aag_replica_operational_state = aag_replica_operational_state
aag_db_replica_synchronization_state = aag_db_replica_synchronization_state
aag_listener_state = aag_listener_state

availability = availability
state = state
db_active_users = active users
transactions = transactions
active_transactions = active_transactions
log_flush_waits = log_flush_waits
log_file_growths = log_file_growths
log_file_shrinks = log_file_shrinks
logfile_size = logfile_size
logfile_usage = logfile_usage
log_cachehit_ratio = log_cachehit_ratio
backup_status_minutes = backup_status_minutes
backup_status_last_backup = backup_status_last_backup
fg_free_space = fg_free_space
```

**Listado de bases de datos objetivo (--target\_databases)**

El contenido del fichero será un listado de instancias objetivo, separando cada base de datos por comas o por líneas. El formato para una base de datos podrá ser cualquiera de los siguientes:

```
ip
ip:puerto
ip\instancia
```

<span style="text-decoration: underline;">Ejemplo</span>

```
172.17.0.4:1433\DEVENV
172.17.0.2:1433\PRODENV
```

Si se especifícan de esta manera, se monitorizarán todas las bases de datos de cada instancia.

**Si que quiere monitorizar bases concretas de una instancia**, se deben especificar con "|" y separando cada base de datos con ";".

Ejemplo :

```
172.17.0.4:1433\DEVENV|pandora;testing;model
```

Si se quiere monitorizar todas las bases de datos de una instancia, pero descartar algunas, se debe especificar "!" antes del "|".  
  
Ejemplo:

```
172.17.0.4:1433\DEVENV!|pandora;testing;model
```

**Listado de agentes objetivo (--target\_agents)**

El contenido del fichero será un listado de bases de nombres de agentes, separando cada agente por comas o por líneas. Estos nombres de agentes se usarán para volcar la información de cada base de datos objetivo en el nombre de agente indicado correspondiente, en lugar de dejar que el plugin genere los nombres de agentes de forma automática.

La posición de cada nombre de agente en el listado debe coincidir con la posición de la base de datos objetivo en su propio listado, es decir, el nombre para la primera base de datos objetivo será el primer nombre de este listado, teniendo en cuenta que las líneas en blanco son ignoradas.

<span style="text-decoration: underline;">Ejemplo</span>

```
agente1,,agente3
agente4
agente5,agente6,agente7,,agente9
```

**Consultas personalizadas (--custom\_queries)**

Se debe introducir un módulo por cada consulta personalizada que se pretenda monitorizar. Los módulos deben seguir una estructura, que es la siguiente:

<div id="bkmrk-"></div>```
check_begin      --> Etiqueta de abertura del módulo
name             --> Nombre del módulo
description      --> Descripción del módulo.
operation        --> Tipo de operación 
datatype         --> Tipo de módulo
min_warning      --> Configuración del umbral mínimo de warning
max_warning      --> Configuración del umbral máximo de warning
str_warning      --> Configuración de string de warning
warning_inverse  --> Activar el intervalo inverso con 1 para umbral de warning
min_critical     --> Configuración del umbral mínimo de critical
max_critical     --> Configuración del umbral máximo de critical
str_critical     --> Configuración de string de critical
critical_inverse --> Activar el intervalo inverso con 1 para umbral de crítico
module_interval  --> Este intervalo se calcula como un multiplicador del intervalo del agente. 
target           --> Consulta personalizada
target_databases --> Agentes de instancias en los que se creará el módulo, o nombre de de base de datos en las que se creara el módulo. Si se quiere aplicar a todos los elementos, se puede especificar: All o no especificarse directamente.
target_scope     --> Elemento de destino al que se aplicará la consulta personalizada, puede ser: instances o databases. Si no se especifica se aplicara tanto a instancias como a bases de datos.
ignore_databases --> Agentes de instancias en los que no se creara el módulo o nombres de bases de datos en los que no se creará el módulo.
check_end        --> Etiqueta de cierre del módulo
```

<span style="text-decoration: underline;">Ejemplo</span>

```
check_begin
name Select 1 
description Number of invalid objects
operation value
datatype generic_data
min_warning 5
target SELECT 1;
target_databases all
check_end

check_begin
name NumeroConexiones
description Number of connections
operation value
datatype generic_data
min_warning 10
target SELECT COUNT(*) AS NumeroConexiones FROM sys.dm_exec_sessions WHERE is_user_process = 1;
target_databases all
target_scope databases
ignore_databases master
check_end

check_begin
name lista_table_size.MB
description table size in MB
operation full
datatype generic_data
target SELECT SUM(reserved_page_count) * 8 / 1024.0 AS TamañoMB FROM sys.dm_db_partition_stats WHERE object_id = OBJECT_ID('lista');
target_databases pandora
check_end
```

# Ejecución manual

El formato de la ejecución del plugin es el siguiente:

```shell
./pandora_mssql \
--conf < ruta al fichero de configuración > \
--target_databases < ruta al fichero de configuración que contiene las bases de datos objetivo > \
[ --target_agents < ruta al fichero de configuración de agentes > ] \
[ --custom_queries < ruta al fichero de configuración que contiene las consultas personalizas > ]
```

Por ejemplo:

```shell
./pandora_mssql \
--conf /usr/share/pandora_server/util/plugin/mssql.conf \
--target_databases /usr/share/pandora_server/util/plugin/targets.conf \
--target_agents /usr/share/pandora_server/util/plugin/target_agents.conf \
--custom_queries /usr/share/pandora_server/util/plugin/custom_queries.conf
```

<div id="bkmrk-"></div>

# Discovery

Este plugin puede integrarse con el *Discovery* de Pandora FMS.

Para ello se debe cargar el paquete ".disco" que puede descargar desde la librería de Pandora FMS:

[https://pandorafms.com/library/mssql-discovery/](https://pandorafms.com/library/mssql-discovery/)

[![image-1687944678469.png](https://pandorafms.com/guides/public/uploads/images/gallery/2023-06/scaled-1680-/image-1687944678469.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2023-06/image-1687944678469.png)

Una vez cargado, se podrán monitorizar entornos de Microsoft SQL Server creando tareas de *Discovery* desde la sección *Management &gt; Discovery &gt; Applications.*

[![image-1687944760619.png](https://pandorafms.com/guides/public/uploads/images/gallery/2023-06/scaled-1680-/image-1687944760619.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2023-06/image-1687944760619.png)

Para cada tarea se solicitarán los siguientes datos mínimos:

- **Microsoft SQL Server target string**: Lista de objetivos Microsoft SQL Server a monitorizar por la tarea. Será una lista separada por comas o por líneas. Cada instancia de base de datos objetivo se podrá definir con el formato IP:PUERTO\\INSTANCIA, IP:PUERTO, IP\\INSTANCIA o IP.  
      
    Si que quiere monitorizar bases concretas de una instancia, se deben especificar con "|" y separando cada base de datos con ";".
    
    Ejemplo :
    
    ```
    172.17.0.4:1433\DEVENV|pandora;testing;model
    ```
    
    Si se quiere monitorizar todas las bases de datos de una instancia, pero descartar algunas, se debe especificar "!" antes del "|".  
      
    Ejemplo:
    
    ```
    172.17.0.4:1433\DEVENV!|pandora;testing;model
    ```
- **User**: Usuario de conexión a las bases de datos objetivo.
- **Password**: Contraseña del usuario indicado.

[![image-1684830969832.png](https://pandorafms.com/guides/public/uploads/images/gallery/2023-05/scaled-1680-/image-1684830969832.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2023-05/image-1684830969832.png)

También se podrá ajustar la configuración de la tarea para personalizar la monitorización deseada:

- **Max threads**: Para optimizar el tiempo de ejecución, se podrán configurar múltiples hilos para monitorizar los agentes de la tarea. Hay que tener en cuenta que configurar múltiples hilos puede aumentar el uso de CPU de la tarea.
- **Target agent**: Lista de agentes objetivo para los objetivos Microsoft SQL Server a monitorizar. Es decir, los nombres con los que se generarán los agentes de cada objetivo definido en la tarea. Será una lista separada por comas o por líneas. La posición de los nombres en la lista deberá coincidir con la posición de los objetivos Microsoft SQL Server en su lista, es decir, el primer nombre se usará para el primer objetivo y así sucesivamente. Si la lista se separa por líneas, las líneas en blanco se ignorarán. Si no se especifica un nombre de agente para un objetivo se usará su IP o FQDN como nombre del agente.
- **Custom module prefix**: Texto incluido como prefijo para los todos los nombres de módulos generados. Es útil para localizar los módulos generados por la tarea o distinguirlos de otros.
- **Entities list path :** Ruta del fichero de entities, por defecto : "/tmp/mssql\_entities\_list.txt". No se debe usar el mismo que ya exista para otra tarea.
- **Scan databases:** Activar para monitorizar las bases de datos de las instancias.
- **Create agent per database:** Activar para crear un agente por cada base de datos monitorizada.

[![Captura desde 2025-08-18 14-56-47.png](https://pandorafms.com/guides/public/uploads/images/gallery/2025-08/scaled-1680-/7imcaptura-desde-2025-08-18-14-56-47.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2025-08/7imcaptura-desde-2025-08-18-14-56-47.png)

- **Retrieve logs statistics**: Si se activa monitorizará las estadísticas de logs.
- **Monitor active users**: Si se activa monitorizará los usuarios activos.
- **Retrieve transactions statistics**: Si se activa monitorizará las estadísticas de transacciones.
- **Monitor filegroups space**: Si se activa monitorizará el espacio de los filegroups.
- **Monitor user reserved space**: Si se activa monitorizará el espacio reservado por los usuarios.
- **Monitor backups**: Si se activa monitorizará el estado de los backups.
- **Check engine uptime**: Si se activa monitorizará el uptime del motor/instancia.
- **Retrieve query statistics**: Si se activa monitorizará las estadísticas de consultas.
- **Analyze connections**: Si se activa monitorizará las conexiones.
- **Monitor long queries**: Si se activa monitorizará las consultas de larga duración.
- **Monitor latch requests**: Si se activa monitorizará las solicitudes de latch.
- **Monitor full scans**: Si se activa monitorizará los full scans ejecutados.
- **Count databases**: Si se activa monitorizará el número de bases de datos.
- **Retrieve memory statistics**: Si se activa monitorizará las estadísticas de memoria.
- **Retrieve locks statistics**: Si se activa monitorizará las estadísticas de bloqueos.
- **Check engine performance**: Si se activa monitorizará el rendimiento del motor/instancia.
- **Retrieve buffer statistics**: Si se activa monitorizará las estadísticas de buffer.
- **Retrieve users information**: Si se activa monitorizará la información de los usuarios.
- **Retrieve Cluster State**: Si se activa monitorizará el estado del clúster.

[![Captura desde 2025-08-18 15-00-42.png](https://pandorafms.com/guides/public/uploads/images/gallery/2025-08/scaled-1680-/captura-desde-2025-08-18-15-00-42.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2025-08/captura-desde-2025-08-18-15-00-42.png)

- **Rename default modules:** Si se activa permitirá cambiar el nombre de los módulos que vienen por defecto.
- **Modules names:** Bloque de configuración para definir el nombre de los módulos que vienen por defecto.
- **Execute custom queries**: Si se activa permitirá ejecutar consultas personalizadas a cada objetivo Microsoft SQL Server.
- **Custom queries**: Bloque de configuración para definir las consultas personalizadas que se ejecutarán. Cada consulta generará un nuevo módulo para cada agente de la tarea.

[![Captura desde 2025-08-18 15-12-31.png](https://pandorafms.com/guides/public/uploads/images/gallery/2025-08/scaled-1680-/captura-desde-2025-08-18-15-12-31.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2025-08/captura-desde-2025-08-18-15-12-31.png)

Las tareas que se completen exitosamente dispondrán de un sumario de ejecución con la siguiente información:

- **Total agents**: Total de agentes generados por la tarea.
- **Targets up**: Total de objetivos a los que ha sido posible conectar.
- **Targets down**: Total de objetivos a los que no ha sido posible conectar.

[![image-1684831071407.png](https://pandorafms.com/guides/public/uploads/images/gallery/2023-05/scaled-1680-/image-1684831071407.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2023-05/image-1684831071407.png)

Las tareas que no se completen exitosamente dispondrán de un sumario de ejecución registrando los errores producidos.

# Agentes y módulos generados por el plugin

El plugin creará un agente por cada base de datos objetivo. Ese agente contendrá los siguientes módulos

**Métricas de instancia**

<table border="1" id="bkmrk-server_startup-locks" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr><td><div><div>server_startup</div></div></td><td>Supervisa el tiempo de actividad (en días) del servidor de base de datos</td></tr><tr><td><div><div><div><div>locks_used</div></div></div></div></td><td>Supervisa el porcentaje de bloqueos utilizados y de propietarios de bloqueos</td></tr><tr><td><div><div><div><div><div><div>workspace_memory</div></div></div></div></div></div></td><td>Supervisa la cantidad de memoria que se utiliza para ejecutar procesos como operaciones hash, de clasificación, de copia masiva y de creación de índices.</td></tr><tr><td><div><div><div><div><div><div>average_waittime</div></div></div></div></div></div></td><td>Tiempo medio de espera de bloqueo de SQL Server</td></tr></tbody></table>

Si esta activado **engine\_uptime**:

<table border="1" id="bkmrk-restart_detection-pa" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 50%;">restart\_detection</td><td style="width: 50%;">**Será 0 si se ha detectado un reinicio inesperado, y 1 de no ser este el caso.**  Cuando un servidor se reinicia inesperadamente, puede haber una interrupción en el acceso a la base de datos y potencialmente se pueden perder transacciones o datos no guardados correctamente.</td></tr></tbody></table>

Si esta activado **query\_stats**:

<table border="1" id="bkmrk-queries-monitorizar-" style="border-collapse: collapse; width: 100%; height: 948px;"><tbody><tr style="height: 130px;"><td style="width: 50%; height: 130px;">queries</td><td style="width: 50%; height: 130px;">**Número de consultas totales.** Monitorizar las consultas es esencial para comprender la carga de trabajo que se está ejecutando en el servidor y evaluar el rendimiento general del sistema. Al supervisar el número total de consultas, puedes identificar picos de actividad, optimizar el rendimiento y detectar posibles problemas, como consultas ineficientes o excesivas.</td></tr><tr style="height: 164px;"><td style="width: 50%; height: 164px;">update</td><td style="width: 50%; height: 164px;">**Número de consultas UPDATE.** Las consultas UPDATE se utilizan para modificar los datos existentes en la base de datos. Monitorizar las consultas UPDATE es importante para evaluar la frecuencia y la eficiencia de las actualizaciones de datos. Puedes identificar consultas UPDATE que afectan a un gran número de filas o que tienen un impacto significativo en el rendimiento del servidor. Esto te permite optimizar las consultas, revisar la estructura de las tablas o tomar medidas para reducir la carga generada por las actualizaciones.</td></tr><tr style="height: 164px;"><td style="width: 50%; height: 164px;">delete</td><td style="width: 50%; height: 164px;">**Número de consultas DELETE.** Las consultas DELETE se utilizan para eliminar datos de la base de datos. Monitorizar las consultas DELETE es útil para evaluar la frecuencia y la eficiencia de las eliminaciones de datos. Puedes identificar consultas DELETE que afectan a un gran número de filas o que tienen un impacto significativo en el rendimiento del servidor. Esto te permite optimizar las consultas, revisar la estructura de las tablas o tomar medidas para reducir la carga generada por las eliminaciones.</td></tr><tr style="height: 180px;"><td style="width: 50%; height: 180px;">insert</td><td style="width: 50%; height: 180px;">**Número de consultas INSERT.** Las consultas INSERT se utilizan para insertar nuevos datos en la base de datos. Monitorizar las consultas INSERT te permite evaluar la frecuencia y la eficiencia de las inserciones de datos. Puedes identificar consultas INSERT que están generando una alta carga en el servidor o que podrían estar causando problemas de rendimiento. Esto te permite optimizar las consultas, revisar la estructura de las tablas o considerar estrategias de inserción diferida para mejorar el rendimiento en entornos de alta concurrencia.</td></tr></tbody></table>

Si esta activado **analyze\_connections**:

<table border="1" id="bkmrk-current-connections-" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 50%;">session usage</td><td style="width: 50%;">**Número de conexiones actuales respecto al total de conexiones máximas.** La monitorización del uso de sesiones en SQL Server es importante para optimizar el rendimiento, identificar problemas de bloqueo, mejorar la seguridad y auditoría, y planificar eficientemente los recursos del servidor.</td></tr></tbody></table>

Si esta activado **retrieve\_memory\_statistics:**

<table border="1" id="bkmrk-lock_memory-connecti" style="border-collapse: collapse; width: 100%; height: 165.781px;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr style="height: 46.5938px;"><td style="height: 46.5938px;"><div><div>lock_memory</div></div></td><td style="height: 46.5938px;">Controla la cantidad de memoria de bloqueo asignada en Bytes</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;"><div><div><div><div>connection_memory</div></div></div></div></td><td style="height: 29.7969px;">Controla la cantidad de memoria de conexión en Bytes</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;"><div><div><div><div>optimizer_memory</div></div></div></div></td><td style="height: 29.7969px;">Monitoriza la cantidad de memoria del optimizador en Bytes</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;"><div><div><div><div><div><div>sqlcache_memory</div></div></div></div></div></div></td><td style="height: 29.7969px;">Monitoriza la cantidad de memoria caché SQL en Bytes</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;"><div><div><div><div><div><div>total_memory</div></div></div></div></div></div></td><td style="height: 29.7969px;">Monitoriza la cantidad total de memoria dinámica del servidor en Bytes</td></tr></tbody></table>

Si esta activado **retrieve\_locks\_statistics:**

<table border="1" id="bkmrk-retrieve_locks_stati" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr><td><div><div>deacklocks</div></div></td><td>Supervisa el número de bloqueos por segundo</td></tr><tr><td><div><div><div><div>lock_timeouts</div></div></div></div></td><td>Controlar el número de bloqueos por segundo</td></tr><tr><td><div><div><div><div>lock_requests</div></div></div></div></td><td>Controlar el número de solicitudes de bloqueo por segundo</td></tr><tr><td><div><div><div><div><div><div>lock_waits</div></div></div></div></div></div></td><td>Controlar el número de bloqueos por segundo</td></tr></tbody></table>

Si esta activado **retrieve\_buffer\_statistics:**

<table border="1" id="bkmrk-buf_cachehit_ratio-f" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr><td><div><div>buf_cachehit_ratio</div></div></td><td>Porcentaje de páginas encontradas en la memoria caché sin tener que leer del disco</td></tr><tr><td><div><div>free_connections</div></div></td><td>Supervisa el % de conexiones libres a la instancia de SQL Server</td></tr><tr><td><div><div>page_reads</div></div></td><td>Supervisa el número de lecturas de páginas de base de datos por segundo</td></tr><tr><td><div><div>page_writes</div></div></td><td>Supervisa el número de escrituras de páginas de base de datos por segundo.</td></tr></tbody></table>

Si esta activado **monitor\_latch\_requests:**

<table border="1" id="bkmrk-latch_waits" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr><td><div><div>latch_waits</div></div></td><td>Controla el número de peticiones de latch por segundo</td></tr></tbody></table>

Si esta activado **monitor\_full\_scans:**

<table border="1" id="bkmrk-full_scans" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr><td><div><div>full_scans</div></div></td><td>Supervisa el número de exploraciones completas (tabla o índice) por segundo.</td></tr></tbody></table>

Si esta activado **check\_engine\_performance:**

<table border="1" id="bkmrk-server_cpu-io_busy-s" style="border-collapse: collapse; width: 100%; height: 89.3907px;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td style="height: 29.7969px;"><div><div>server_cpu</div></div></td><td style="height: 29.7969px;">Monitoriza el % de uso de CPU por instancia de SQL Server</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;"><div><div><div><div>io_busy</div></div></div></div></td><td style="height: 29.7969px;">Monitoriza el % de I/O ocupado para la instancia SQL Server</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;"><div><div><div><div>server_io</div></div></div></div></td><td style="height: 29.7969px;">Monitoriza el % de I/O ocupado para la instancia SQL Server</td></tr></tbody></table>

Si esta activado **retrieve\_users\_information:**

<table border="1" id="bkmrk-active_connection_ra" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr><td><div><div>active_connection_ratio</div></div></td><td>Supervisa la relación entre las conexiones activas y el total de conexiones permitidas.</td></tr><tr><td><div><div>locked_users</div></div></td><td>Controla el número de usuarios suspendidos por bloqueos</td></tr><tr><td><div><div>blocked_users</div></div></td><td>Controla el número de usuarios suspendidos por bloqueos</td></tr><tr><td><div><div>active_users</div></div></td><td>Supervisa el número de usuarios que han iniciado sesión en el servidor.</td></tr></tbody></table>

Si esta activado **monitor\_long\_queries:**

<table border="1" id="bkmrk-long_queries-long_qu" style="border-collapse: collapse; width: 100%; height: 59.5938px;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td style="height: 29.7969px;"><div><div>long_queries</div></div></td><td style="height: 29.7969px;">Supervisa las consultas de larga duración (en segundos)</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;"><div><div>long_queries_string</div></div></td><td style="height: 29.7969px;">Salida completa de consultas de larga duración</td></tr></tbody></table>

Si esta activado **retrieve\_cluster\_state:**

<table border="1" id="bkmrk-aag_cluster_quorum_s" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr><td><div><div>aag_cluster_quorum_state</div></div></td><td>Estado: &lt; descripción &gt;. Supervisa el estado de quórum del WSFC AlwaysOn.</td></tr><tr><td><div><div>aag_cluster_members_state</div></div></td><td>Estado: &lt; descripción &gt;. Monitoriza el estado de los nodos WSFC AlwaysOn</td></tr><tr><td><div><div>aag_synchronization_health</div></div></td><td>Estado: &lt;descripción &gt;. Supervisa el estado de sincronización de un grupo de disponibilidad.</td></tr><tr><td><div><div>aag_replica_synchronization_health</div></div></td><td>Estado: &lt; descripción &gt;. Rol: &lt; rol &gt; . Monitoriza la salud de sincronización de una réplica de disponibilidad.</td></tr><tr><td><div><div>aag_replica_connected_state</div></div></td><td>Estado: &lt; descripción &gt; Role: &lt; rol &gt; Supervisa el estado conectado de una réplica de disponibilidad.</td></tr><tr><td><div><div>aag_replica_recovery_health</div></div></td><td>Estado:&lt; descripción &gt;. Rol: &lt; rol &gt;. Monitoriza la salud de recuperación de una réplica de disponibilidad.</td></tr><tr><td><div><div>aag_replica_operational_state</div></div></td><td>Estado: &lt; estado &gt;. Rol: &lt; rol &gt;. Supervisa el Estado operativo actual de la réplica de disponibilidad.</td></tr><tr><td><div><div>aag_db_replica_synchronization_state</div></div></td><td>Estado: &lt; descripción &gt;. Supervisa el estado de sincronización de las bases de datos en la réplica de disponibilidad.</td></tr><tr><td><div><div>aag_listener_state</div></div></td><td>Estado: &lt; desc &gt;. Rol: &lt; rol &gt;. Supervisar el estado de escucha de grupo de disponibilidad AlwaysOn</td></tr></tbody></table>

**Metricas de base de datos**

Si monitor\_active\_users esta activado :

<table border="1" id="bkmrk-active-users-supervi" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr><td><div><div>active users</div></div></td><td>Supervisa el número de transacciones de usuario activas por base de datos.</td></tr></tbody></table>

Si retrieve\_transactions\_statistics esta activado:

<table border="1" id="bkmrk-transactions-control" style="border-collapse: collapse; width: 100%; height: 59.5938px;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td style="height: 29.7969px;"><div><div>transactions</div></div></td><td style="height: 29.7969px;">Controla el número de transacciones por segundo</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;"><div><div>active transactions</div></div></td><td style="height: 29.7969px;">Transacciones activas</td></tr></tbody></table>

Si retrieve\_logs\_statistics esta activado:

<table border="1" id="bkmrk-log_flush_waits-supe" style="border-collapse: collapse; width: 100%; height: 148.984px;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td style="height: 29.7969px;"><div><div>log_flush_waits</div></div></td><td style="height: 29.7969px;">Supervisa el número de esperas de descarga de registro por segundo.</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;"><div><div>log_file_growths</div></div></td><td style="height: 29.7969px;">Supervisa el uso (crecimiento) de los registros de transacciones.</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;"><div><div>log_file_shrinks</div></div></td><td style="height: 29.7969px;">Supervisa el uso (reducción) de los registros de transacciones.</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;"><div><div>logfile_size</div></div></td><td style="height: 29.7969px;">Supervisa el tamaño del archivo de registro</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;"><div><div>logfile_usage</div></div></td><td style="height: 29.7969px;">Monitors free space in log files</td></tr></tbody></table>

Si monitor\_backups esta activado:

<table border="1" id="bkmrk-backup_status_minute" style="border-collapse: collapse; width: 100%; height: 76.3907px;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr style="height: 46.5938px;"><td style="height: 46.5938px;"><div><div>backup_status_minutes</div></div></td><td style="height: 46.5938px;">Controla el número de minutos transcurridos desde la última copia de seguridad</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;"><div><div>backup_status_last_backup</div></div></td><td style="height: 29.7969px;">Controla cuándo se hizo la última copia de seguridad</td></tr></tbody></table>

Si monitor\_filegroups\_space esta activado:

<table border="1" id="bkmrk-fg_free_space-superv" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr><td><div><div>fg_free_space</div></div></td><td>Supervisa el espacio libre en los grupos de archivos</td></tr></tbody></table>

Si monitor\_user\_reserved\_space esta activado:

<table border="1" id="bkmrk-monitors-reserved-sp" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr><td><div><div>Monitors reserved space in user tables</div></div></td><td>Supervisa el espacio reservado en las tablas de usuario</td></tr><tr><td><div><div>Monitors reserved space free data % in user tables</div></div></td><td>Supervisa el % de datos libres de espacio reservado en las tablas de usuario</td></tr></tbody></table>

El plugin también creará un módulo por cada consulta personalizada definida en el fichero de configuración.