Supervisión de Azure SQL Database con métricas y alertas

Se aplica a:Azure SQL Database

Puede usar métricas de Azure Monitor para supervisar el consumo y el estado de los recursos del grupo elástico y la base de datos. Puede usar alertas para enviar notificaciones cuando los valores de métrica indican un posible problema.

Métricas

Una métrica es una serie de valores numéricos medidos a intervalos de tiempo regulares, a menudo usando unidades como count, percent, bytes, etc. En función de la naturaleza de la métrica, puede usar agregaciones como total, count, average, minimum, maximum para calcular valores de métrica durante una duración de tiempo. Puede dividir algunas métricas por dimensiones. Cada dimensión proporciona un contexto adicional a los valores numéricos.

Algunos ejemplos de métricas disponibles de Azure SQL Database son: CPU percentage, Data space used, Deadlocks, Tempdb Percent Log Used.

Consulte métricas de base de datos y métricas del grupo elástico para todas las métricas disponibles en Azure SQL Database.

Nota:

Algunas métricas solo se aplican a tipos específicos de bases de datos o grupos elásticos. La descripción de cada métrica menciona si su uso está limitado a una base de datos específica o a un tipo de grupo elástico, como núcleo virtual, Hiperescala, sin servidor, etc.

En el portal de Azure SQL Database, se muestran varias métricas usadas habitualmente en la pestaña Supervisión de la página Información general. Esto le permite evaluar el consumo y el estado de los recursos de una base de datos o un grupo elástico de un vistazo.

Una captura de pantalla de Azure Portal de un gráfico de métricas que se muestra en la página de Información general de la base de datos Azure SQL.

En Métricas clave, seleccione Ver todas las métricas o en cualquier lugar del gráfico para abrir el explorador de métricas. En la página Métricas, puede ver todas las demás métricas disponibles para la base de datos o el recurso del grupo elástico. En el explorador de métricas, puede cambiar el intervalo de tiempo, la granularidad y el tipo de agregación del gráfico, además de cambiar el tipo de gráfico, expandir el ámbito para que incluya métricas de otros recursos de Azure, crear reglas de alerta, etc. También puede abrir el explorador de métricas desde el elemento de menú Métricas de la sección Supervisión del menú de recursos.

Uso de métricas para supervisar bases de datos y grupos elásticos

Puede usar métricas para supervisar el consumo y el estado de los recursos del grupo elástico y la base de datos. Por ejemplo, puede hacer lo siguiente:

  • Ajustar el tamaño adecuado de la base de datos o el grupo elástico a la carga de trabajo de la aplicación
  • Detección de un aumento gradual del consumo de recursos y escalado vertical de forma proactiva la base de datos o el grupo elástico
  • Detección y solución de problemas de rendimiento

En la tabla siguiente se describen las métricas usadas habitualmente en Azure SQL Database.

Nombre de métrica Identificador de la métrica Descripción
Porcentaje de CPU. cpu_percent Esta métrica muestra el consumo de CPU hacia el límite de carga de trabajo de usuario de una base de datos o un grupo elástico, expresado como un porcentaje. Para más información, consulte Consumo de recursos por cargas de trabajo de usuario y procesos internos.
Porcentaje de CPU de la instancia de SQL sql_instance_cpu_percent Esta métrica muestra el consumo total de CPU por parte del usuario y las cargas de trabajo del sistema, expresados como un porcentaje. Dado que esta métrica y la métrica de porcentaje de CPU se miden en diferentes escalas, no son directamente comparables entre sí. Para más información, consulte Consumo de recursos por cargas de trabajo de usuario y procesos internos.
Porcentaje de E/S de datos physical_data_read_percent Esta métrica muestra el consumo de E/S del archivo de datos hacia el límite de carga de trabajo de usuario de una base de datos o un grupo elástico, expresado como porcentaje. Para más información, consulte Gobernanza de E/S de datos.
Porcentaje de E/S de registro log_write_percent Esta métrica muestra el consumo de rendimiento de escritura del registro de transacciones hacia el límite de carga de trabajo de usuario de una base de datos o un grupo elástico, expresado como un porcentaje. Para obtener más información, consulte la Regulación de la tasa de registro de transacciones.
Porcentaje de trabajos workers_percent Esta métrica muestra el consumo de subprocesos de trabajo hacia el límite de carga de trabajo de usuario de una base de datos o un grupo elástico, expresado como porcentaje.
Porcentaje de DTU dtu_consumption_percent Esta métrica muestra el consumo de DTU hacia el límite de carga de trabajo de usuario de una base de datos o un grupo elástico, expresado como porcentaje. El porcentaje de DTU se deriva de otras tres métricas: porcentaje de CPU, porcentaje de E/S de datos y porcentaje de E/S de registro. En cualquier momento, el porcentaje de DTU coincide con el valor más alto entre estas tres métricas.
CPU utilizada cpu_used Esta métrica muestra el consumo de CPU hacia el límite de carga de trabajo de usuario de una base de datos o un grupo elástico, expresado como el número de núcleos virtuales. Para obtener más información, consulte Diagnóstico y solución de problemas de uso elevado de la CPU en Azure SQL Database.
DTU utilizada dtu_used Esta métrica muestra el número de DTU que usa una base de datos o un grupo elástico.
CPU de aplicación facturada app_cpu_billed En el caso de las bases de datos sin servidor, esta métrica muestra la cantidad de proceso (CPU y memoria) facturada, expresada en segundos de núcleo virtual. Para obtener más información, consulte Facturación en el nivel de proceso sin servidor.
Porcentaje de CPU de la aplicación app_cpu_percent En el caso de las bases de datos sin servidor, esta métrica muestra el consumo de CPU hacia el límite máximo de núcleos virtuales del paquete de la aplicación, expresado como porcentaje. Para obtener más información, consulte Supervisión en el nivel de proceso sin servidor.
Porcentaje de memoria de la aplicación app_memory_percent En el caso de las bases de datos sin servidor, esta métrica muestra el consumo de memoria hacia el límite máximo de memoria del paquete de la aplicación, expresado como un porcentaje. Para obtener más información, consulte Supervisión en el nivel de proceso sin servidor.
Número de sesiones sessions_count Esta métrica muestra el número de sesiones de usuario establecidas para una base de datos o un grupo elástico.
Espacio de datos usado storage En el caso de las bases de datos, esta métrica muestra la cantidad de espacio de almacenamiento usado en los archivos de datos de una base de datos.
Espacio de datos usado storage_used En el caso de los grupos elásticos, esta métrica muestra la cantidad de espacio de almacenamiento usado en los archivos de datos de todas las bases de datos de un grupo elástico.
Espacio de datos asignado allocated_data_storage Esta métrica muestra la cantidad de espacio de almacenamiento ocupado por los archivos de datos de una base de datos o por los archivos de datos de todas las bases de datos de un grupo elástico. Los archivos de datos pueden contener espacio vacío. Por este motivo, el espacio de datos asignado si suele ser mayor que el espacio de datos usado para la misma base de datos o grupo elástico. Para obtener más información, consulte Administración del espacio de archivo para bases de datos en Azure SQL Database.
Porcentaje de espacio de datos usado storage_percent En el caso de las bases de datos, esta métrica muestra la cantidad de espacio de almacenamiento utilizado en los archivos de datos de una base de datos hacia el límite de tamaño de datos de una base de datos. En el caso de los grupos elásticos, muestra la cantidad de espacio de almacenamiento utilizado en los archivos de datos de todas las bases de datos de un grupo elástico, expresado como un porcentaje hacia el límite de tamaño de datos de un grupo elástico. El límite de tamaño de datos para una base de datos o un grupo elástico puede configurarse inferior al límite máximo de tamaño de datos. Para encontrar el límite máximo de tamaño de datos, consulte los límites de recursos para bases de datos de núcleo virtual, grupos elásticos de núcleo virtual, bases de datos DTU y grupos elásticos de DTU.
Porcentaje asignado de espacio de datos allocated_data_storage_percent En el caso de los grupos elásticos, esta métrica muestra la cantidad de espacio de almacenamiento ocupado por los archivos de datos de todas las bases de datos de un grupo elástico hacia el límite de tamaño de datos del grupo, expresado como un porcentaje.
Porcentaje de registro de tempdb usado tempdb_log_used_percent Esta métrica muestra el consumo del espacio del registro de transacciones en la base de datos tempdb hacia el tamaño máximo del registro, expresado como un porcentaje. Para obtener más información, consulte tempdb en Azure SQL Database.
Conexiones correctas connection_successful Esta métrica muestra el número de conexiones establecidas correctamente a una base de datos. Esta métrica se puede dividir por dos dimensiones,SslProtocol y ValidatedDriverNameAndVersion, para ver el número de conexiones mediante una versión específica del protocolo de cifrado o mediante un controlador de cliente específico.
Conexiones con errores: errores del sistema connection_failed Esta métrica muestra el número de intentos de conexión a una base de datos que produjo un error debido a errores de servicio internos. Normalmente, estos errores son transitorios. Esta métrica se puede dividir por dos dimensiones, Error y ValidatedDriverNameAndVersion, para ver el número de intentos de conexión con error debido a un error específico o desde un controlador de cliente específico.
Conexiones con errores: errores de usuario connection_failed_user_error Esta métrica muestra el número de intentos de conexión a una base de datos que produjo un error debido a errores corregidos por el usuario, como una contraseña incorrecta o una conexión bloqueada por el firewall. Esta métrica se puede dividir por dos dimensiones, Error y ValidatedDriverNameAndVersion, para ver el número de intentos de conexión con error debido a un error específico o desde un controlador de cliente específico.
Paradas deadlock Esta métrica muestra el número de interbloqueos en una base de datos.

Alertas

Puede crear reglas de alerta para notificarle que el valor de una métrica o varias métricas está fuera de un intervalo esperado.

Puede establecer el ámbito de una regla de alertas de varias maneras para satisfacer sus necesidades. Por ejemplo, el ámbito de la regla de alertas se puede establecer en:

  • Una base de datos única
  • Un grupo elástico
  • Todas las bases de datos o grupos elásticos de un grupo de recursos
  • Todas las bases de datos o grupos elásticos de una suscripción dentro de una región de Azure
  • Todas las bases de datos o grupos elásticos de una suscripción dentro de todas las regiones

Las reglas de alerta evalúan periódicamente los valores de métrica agregados durante un período de búsqueda, comparándolos con un valor de umbral. Puede configurar el valor de umbral, la frecuencia de evaluación y el período de búsqueda.

Si se desencadena una regla de alertas, se le notificará según sus preferencias de notificación, que especifique en el grupo de acciones vinculado a la regla de alertas. Por ejemplo, puede recibir un correo electrónico, un SMS o una notificación de voz. Una regla de alerta también puede desencadenar acciones como webhooks, runbooks de automatización, funciones, aplicaciones lógicas, etc. Puede integrar alertas con productos de administración de servicios de TI compatibles.

Para más información sobre las alertas de Azure Monitor, consulte Información general sobre las alertas de registro a Azure Monitor. Para familiarizarse con las alertas de métricas, revise Alertas de métricas, Administrar reglas de alerta y Grupos de acciones.

Las métricas y los umbrales óptimos que se van a usar en las reglas de alerta varían en todo el espectro de cargas de trabajo de los clientes en Azure SQL Database.

Las alertas recomendadas en la tabla siguiente son un punto de partida para ayudarle a definir la configuración de alertas óptima para los recursos de Azure SQL Database. En función de sus requisitos, la configuración puede diferir de este ejemplo. Puede usar umbrales diferentes, frecuencias de evaluación o períodos de búsqueda. Puede optar por crear alertas adicionales o usar configuraciones de reglas de alertas diferentes para diferentes aplicaciones y entornos.

Estos son ejemplos de configuraciones típicas de reglas de alertas.

Nombre de la regla de alertas Métrica (señal) Lógica de alerta Cuándo evaluar Gravedad sugerida
Uso elevado de CPU del usuario Porcentaje de CPU. Umbral: Static
Agregación: Average
Operador: Greater than
Valor de umbral: 90
Compruebe cada: 1 minute
Período de búsqueda: 10 minutes
2 - Advertencia
Uso elevado total de CPU Porcentaje de CPU de la instancia de SQL Umbral: Static
Agregación: Average
Operador: Greater than
Valor de umbral: 90
Compruebe cada: 1 minute
Período de búsqueda: 10 minutes
2 - Advertencia
Uso elevado de trabajo Porcentaje de trabajos Umbral: Static
Agregación: Minimum
Operador: Greater than
Valor de umbral:60
Compruebe cada: 1 minute
Período de búsqueda: 5 minutes
1 - Error
Uso elevado de E/S de datos Porcentaje de E/S de datos Umbral: Static
Agregación: Average
Operador: Greater than
Valor de umbral:90
Compruebe cada: 1 minute
Período de búsqueda: 15 minutes
3 - Informativo
Espacio de datos bajo Porcentaje de espacio de datos usado Umbral: Static
Agregación: Minimum
Operador: Greater than
Valor de umbral:95
Compruebe cada: 15 minute
Período de búsqueda: 15 minutes
1 - Error
Espacio de registro bajo tempdb Porcentaje de registro de tempdb usado Umbral: Static
Agregación: Minimum
Operador: Greater than
Valor de umbral: 60
Compruebe cada: 1 minute
Período de búsqueda: 5 minutes
1 - Error
Interbloqueos Paradas Umbral: Dynamic
Agregación: Total
Operador: Greater than
Sensibilidad del umbral:Medium
Compruebe cada: 15 minutes
Período de búsqueda: 1 hour
3 - Informativo
Conexiones con errores (errores de usuario) Conexiones con errores: errores de usuario Umbral: Dynamic
Agregación: Total
Operador: Greater than
Sensibilidad del umbral: Medium
Compruebe cada: 5 minutes
Período de búsqueda: 15 minutes
2 - Advertencia
Conexiones con errores (errores del sistema) Conexiones con errores: errores del sistema Umbral: Static
Agregación: Total
Operador: Greater than
Unidad: Count
Valor de umbral: 10
Compruebe cada: 1 minute
Período de búsqueda: 5 minutes
2 - Advertencia
Velocidad de conexión anómala Conexiones correctas Umbral: Dynamic
Agregación: Total
Operador: Greater or Less than
Sensibilidad del umbral: Low
Compruebe cada: 5 minutes
Período de búsqueda: 15 minutes
2 - Advertencia

Algunas de las reglas de alerta recomendadas usan umbrales dinámicos para detectar patrones de métricas anómalos que podrían requerir atención. Las reglas de alerta basadas en umbrales dinámicos no se desencadenan hasta que se hayan recopilado suficientes datos históricos para establecer patrones normales. Para obtener más información, consulte Umbrales dinámicos en alertas de métricas.

De forma predeterminada, las alertas de métrica tienen estado. Esto significa que una vez que se desencadena una regla de alerta, la alerta solo se desencadena una vez. La alerta permanece en estado fired hasta que se resuelve, en cuyo momento se envía una notificación resolved. Una regla de alertas desencadena una nueva alerta solo una vez resuelta la alerta anterior. Las alertas con estado evitan notificaciones frecuentes sobre una condición en curso. Para obtener más información sobre las alertas con estado y sin estado, consulte Alertas y estado.