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. Las métricas le permite evaluar el consumo y el estado de los recursos de una base de datos o un grupo elástico de un vistazo.
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. |
Disponibilidad | availability |
La disponibilidad se determina en función de que la base de datos esté operativa para las conexiones. Para cada punto de datos de un minuto, los valores posibles son 100% o 0% . Para más información, consulte Métrica de disponibilidad. |
Métrica de disponibilidad
La métrica de disponibilidad realiza un seguimiento de la disponibilidad en el nivel individual de Azure SQL Database. Esta funcionalidad actualmente está en su versión preliminar.
La disponibilidad es granular a un minuto de interrupción de la conexión. La disponibilidad se determina en función de que la base de datos esté operativa para las conexiones. Un minuto se considera como tiempo de inactividad o no disponible si fallasen todos los intentos continuos por parte de los clientes de establecer una conexión con la base de datos dentro del minuto debido a un problema con un servicio. Si hay disponibilidad intermitente, la duración de la falta de disponibilidad continua debe superar el límite de minutos para que se considere como tiempo de inactividad. Normalmente, la latencia para mostrar la disponibilidad es inferior a tres minutos.
Esta es la lógica que se usa para calcular la disponibilidad para cada intervalo de un minuto:
- Si hay al menos una conexión correcta, la disponibilidad es del 100 %.
- Si se produce un error en todas las conexiones debido a errores de usuario, la disponibilidad es del 100 %.
- Si no hay ningún intento de conexión, la disponibilidad es del 100 %.
- Si se produce un error en todas las conexiones debido a errores del sistema, la disponibilidad es del 0 %.
- Actualmente, los datos de métricas de disponibilidad aún no se admiten para el nivel de proceso sin servidor y se mostrarán como 100 %.
Por lo tanto, la métrica de disponibilidad es una métrica compuesta derivada de las siguientes métricas existentes:
- Conexiones correctas
- Conexiones con errores: errores de usuario
- Bloqueado por el firewall
- Conexiones con errores: errores del sistema
Los errores de usuario incluyen todas las conexiones que producen errores debido a la configuración del usuario, la carga de trabajo o la administración. Los errores del sistema incluyen todas las conexiones que producen errores debido a problemas transitorios relacionados con el servicio Azure SQL Database.
Ejemplos de errores causados por la configuración del usuario:
Ejemplos de errores causados por la carga de trabajo del usuario:
Ejemplos de errores causados por la administración de usuarios:
- Escalado o reducción vertical de la base de datos o el grupo elástico
- Replicación geográfica planeada o migración tras error no planeada
- Grupo de migración tras error planeado o migración tras error no planeada
- Base de datos secundaria geográfica en estado de propagación
- Base de datos que está en estado de restauración debido a la restauración a un momento dado (PITR), restauración a largo plazo (LTR) o restauración a partir de una base de datos eliminada
- Base de datos que aún no ha terminado de copiarse (copia de 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.
Reglas de alertas recomendadas
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.
Contenido relacionado
- Información general sobre métricas en Azure Monitor
- Supervisión de cargas de trabajo de Azure SQL con el monitor de base de datos (versión preliminar)
- Análisis de métricas con el explorador de métricas de Azure Monitor
- Explicación de la visualización y agregación de métricas de Azure Monitor
- Información general sobre las alertas en Microsoft Azure
- Tutorial: Creación de una alerta de métrica para un recurso de Azure
- Procedimientos recomendados para alertas de Azure Monitor
- Solución de problemas en las alertas de Azure Monitor
- Supervisión y ajuste del rendimiento en Azure SQL Database e Instancia administrada de Azure SQL
- Configuración de la exportación de streaming de los datos de telemetría de diagnóstico de Azure SQL Database e Instancia administrada de Azure SQL