Monitorar o Banco de Dados SQL do Azure com métricas e alertas
Aplica-se a: Banco de Dados SQL do Azure
Você pode usar as métricas do Azure Monitor para monitorar o consumo e a integridade de recursos do banco de dados e do pool elástico. Você pode usar alertas para enviar notificações quando os valores das métricas indicarem um problema em potencial.
Métricas
Uma métrica é uma série de valores numéricos medidos em intervalos de tempo regulares, geralmente usando unidades como count
, percent
, bytes
, etc. Dependendo da natureza da métrica, você pode usar agregações como total
, count
, average
, minimum
, maximum
para calcular valores métricos ao longo de um período. Você pode dividir algumas métricas por dimensões. Cada dimensão fornece um contexto adicional para os valores numéricos.
Exemplos de métricas disponíveis no Banco de Dados SQL do Azure são: CPU percentage
, Data space used
, Deadlocks
, Tempdb Percent Log Used
.
Consulte métricas de banco de dados e métricas de pool elástico para todas as métricas disponíveis no Banco de Dados SQL do Azure.
Observação
Algumas métricas se aplicam apenas a tipos específicos de bancos de dados ou pools elásticos. A descrição de cada métrica menciona se seu uso é limitado a um tipo específico de banco de dados ou pool elástico, como vCore, hiperescala, sem servidor, etc.
No portal do Banco de Dados SQL do Azure, várias métricas comumente usadas são representadas em gráficos na guia Monitoramento da página de Visão geral. As métricas permitem avaliar rapidamente o consumo de recursos e a integridade de um banco de dados ou de um pool elástico.
Em Principais métricas, selecione Ver todas as métricas ou em qualquer lugar dentro do gráfico para abrir o gerenciador de métricas. Na página Métricas, você pode visualizar todas as outras métricas disponíveis para o recurso de banco de dados ou de pool elástico. No Metrics Explorer, você pode alterar o intervalo de tempo, a granularidade e o tipo de agregação do gráfico, alterar o tipo de gráfico, expandir o escopo para incluir métricas de outros recursos do Azure, criar regras de alerta etc. Você também pode abrir o Metrics Explorer ao escolher o item de menu Métricas em Monitoramento no menu esquerdo.
Usar métricas para monitorar bancos de dados e pools elásticos
Você pode usar métricas para monitorar o consumo e a integridade de recursos do banco de dados e do pool elástico. Por exemplo, você pode:
- Dimensione corretamente o banco de dados ou o pool elástico para a carga de trabalho do aplicativo
- Detectar um aumento gradual no consumo de recursos e escalar verticalmente o banco de dados ou o pool elástico
- Detectar e solucionar um problema de desempenho
A tabela a seguir descreve as métricas comumente usadas no Banco de Dados SQL do Azure.
Nome da métrica | ID da métrica | Descrição |
---|---|---|
Percentual de CPU | cpu_percent |
Essa métrica mostra o consumo da CPU em relação ao limite de carga de trabalho do usuário de um banco de dados ou de um pool elástico, expresso como uma porcentagem. Para saber mais, confira Consumo de recursos por cargas de trabalho do usuário e processos internos. |
Percentual de CPU da instância do SQL | sql_instance_cpu_percent |
Essa métrica mostra o consumo total da CPU pelas cargas de trabalho do usuário e do sistema, expresso como uma porcentagem. Como essa métrica e a métrica de porcentagem da CPU são medidas em escalas diferentes, elas não são diretamente comparáveis entre si. Para saber mais, confira Consumo de recursos por cargas de trabalho do usuário e processos internos. |
Porcentagem de E/S de dados | physical_data_read_percent |
Essa métrica mostra o consumo de E/S do arquivo de dados em relação ao limite de carga de trabalho do usuário de um banco de dados ou de um pool elástico, expresso como uma porcentagem. Para obter mais informações, confira Governança da E/S de dados. |
Porcentagem de E/S de log | log_write_percent |
Essa métrica mostra o consumo de produtividade de gravação do log de transações em relação ao limite da carga de trabalho do usuário de um banco de dados ou de um pool elástico, expresso como uma porcentagem. Para obter mais informações, consulte Governança de taxa de log de transações. |
Porcentagem de funcionários | workers_percent |
Essa métrica mostra o consumo de threads de trabalho em relação ao limite de carga de trabalho do usuário de um banco de dados ou de um pool elástico, expresso como uma porcentagem. |
Porcentagem de DTU | dtu_consumption_percent |
Essa métrica mostra o consumo de DTU em relação ao limite de carga de trabalho do usuário de um banco de dados ou de um pool elástico, expresso como uma porcentagem. A porcentagem de DTU é derivada de três outras métricas: porcentagem da CPU, porcentagem de E/S de dados e porcentagem de E/S de logs. A qualquer momento, a porcentagem de DTU corresponde ao valor mais alto entre essas três métricas. |
CPU usada | cpu_used |
Essa métrica mostra o consumo da CPU em relação ao limite da carga de trabalho do usuário de um banco de dados ou de um pool elástico, expresso como o número de vCores. Para obter mais informações, consulte Diagnosticar e solucionar problemas de alta CPU em banco de dados SQL do Azure. |
DTU usado | dtu_used |
Essa métrica mostra o número de DTUs usadas por um banco de dados ou um pool elástico. |
CPU do aplicativo cobrado | app_cpu_billed |
Para bancos de dados sem servidor, essa métrica mostra a quantidade de computação (CPU e memória) cobrada, expressa em segundos vCore. Para obter mais informações, consulte Cobrança na camada de computação sem servidor. |
Percentual de CPU do aplicativo | app_cpu_percent |
Para bancos de dados sem servidor, essa métrica mostra o consumo da CPU em relação ao limite máximo de vCores do pacote do aplicativo, expresso como uma porcentagem. Para obter mais informações, consulte Monitoramento na camada de computação sem servidor. |
Percentual de memória do aplicativo | app_memory_percent |
Para bancos de dados sem servidor, essa métrica mostra o consumo de memória em relação ao limite máximo de memória do pacote do aplicativo, expresso como uma porcentagem. Para obter mais informações, consulte Monitoramento na camada de computação sem servidor. |
Contagem de sessões | sessions_count |
Essa métrica mostra o número de sessões de usuário estabelecidas para um banco de dados ou um pool elástico. |
Espaço de dados usado | storage |
Para bancos de dados, essa métrica mostra a quantidade de espaço de armazenamento usada nos arquivos de dados de um banco de dados. |
Espaço de dados usado | storage_used |
Para pools elásticos, essa métrica mostra a quantidade de espaço de armazenamento usada nos arquivos de dados de todos os bancos de dados em um pool elástico. |
Espaço alocado de dados | allocated_data_storage |
Essa métrica mostra a quantidade de espaço de armazenamento ocupado pelos arquivos de dados de um banco de dados ou pelos arquivos de dados de todos os bancos de dados em um pool elástico. Os arquivos de dados podem conter espaço vazio. Devido a isso, o espaço de dados alocado geralmente é maior do que o espaço de dados usado para o mesmo banco de dados ou pool elástico. Para obter mais informações, consulte gerenciar o espaço de arquivo para bancos de dados no banco de dados SQL do Azure. |
Porcentagem de espaço de dados usado | storage_percent |
Para bancos de dados, essa métrica mostra a quantidade de espaço de armazenamento usada nos arquivos de dados de um banco de dados em relação ao limite de tamanho dos dados de um banco de dados. Para pools elásticos, ela mostra a quantidade de espaço de armazenamento usada nos arquivos de dados de todos os bancos de dados em um pool elástico, expressa como uma porcentagem em relação ao limite de tamanho de dados de um pool elástico. O limite de tamanho de dados para um banco de dados ou um pool elástico pode ser configurado abaixo do limite máximo de tamanho de dados. Para localizar o limite máximo de tamanho de dados, consulte limites de recursos para bancos de dados vCore, pools elásticos vCore, bancos de dados de DTU e pools elásticos de DTU. |
Porcentagem do espaço de dados alocado | allocated_data_storage_percent |
Para pools elásticos, essa métrica mostra a quantidade de espaço de armazenamento ocupada pelos arquivos de dados de todos os bancos de dados em um pool elástico em relação ao limite de tamanho de dados do pool, expresso como uma porcentagem. |
Porcentagem de Uso do Log Tempdb | tempdb_log_used_percent |
Essa métrica mostra o consumo do espaço do log de transações no banco de dados tempdb em relação ao tamanho máximo do log, expresso como uma porcentagem. Para obter mais informações, consulte tempdb no banco de dados SQL do Azure. |
Conexões bem-sucedidas | connection_successful |
Essa métrica mostra o número de conexões estabelecidas com êxito com um banco de dados. Essa métrica pode ser dividida em duas dimensões, SslProtocol e ValidatedDriverNameAndVersion , para ver o número de conexões usando uma versão específica do protocolo de criptografia ou usando um driver de cliente específico. |
Conexões com falha: erros do sistema | connection_failed |
Essa métrica mostra o número de tentativas de conexão com um banco de dados que falharam devido a erros internos de serviço. Geralmente, tais erros são transitórios. Essa métrica pode ser dividida em duas dimensões, Error e ValidatedDriverNameAndVersion , para ver o número de tentativas de conexão com falha devido a um erro específico ou de um driver de cliente específico. |
Conexões com falha: erros do usuário | connection_failed_user_error |
Essa métrica mostra o número de tentativas de conexão com um banco de dados que falharam devido a erros corrigíveis pelo usuário, como uma senha incorreta ou conexão bloqueada pelo firewall. Essa métrica pode ser dividida em duas dimensões, Error e ValidatedDriverNameAndVersion , para ver o número de tentativas de conexão com falha devido a um erro específico ou de um driver de cliente específico. |
Deadlocks | deadlock |
Essa métrica mostra o número de deadlocks em um banco de dados. |
Disponibilidade | availability |
A disponibilidade é determinada com base no fato de o banco de dados estar operacional para conexões. Para cada ponto de dados de um minuto, os valores possíveis são 100% ou 0% . Para obter mais informações, consulte Métrica de disponibilidade. |
Métrica de disponibilidade
A Métrica de disponibilidade monitora a disponibilidade no nível individual do Banco de Dados SQL do Azure. Esse recurso está atualmente na visualização.
A disponibilidade é granular para um minuto de interrupção da conexão. A disponibilidade é determinada com base no fato de o banco de dados estar operacional para conexões. Um minuto será considerado tempo de inatividade ou não disponível se todas as tentativas contínuas dos usuários de estabelecer conexão com o banco de dados nesse minuto falharem devido a um problema de serviço. Se houver indisponibilidade intermitente, a duração da indisponibilidade contínua deverá ultrapassar o limite de minuto para ser considerada como tempo de inatividade. Normalmente, a latência para exibir a disponibilidade é inferior a três minutos.
Esta é a lógica usada para calcular a disponibilidade para cada intervalo de um minuto:
- Se houver pelo menos uma conexão bem-sucedida, a disponibilidade será de 100%.
- Se todas as conexões falharem devido a erros do usuário, a disponibilidade será de 100%.
- Se não houver tentativas de conexão, a disponibilidade será de 100%.
- Se todas as conexões falharem devido a erros do sistema, a disponibilidade será de 0%.
- No momento, os dados da métrica de disponibilidade ainda não têm suporte para a camada de computação sem servidor e serão exibidos como 100%.
Portanto, a métrica de disponibilidade é uma métrica composta derivada das seguintes métricas existentes:
- Conexões bem-sucedidas
- Conexões com falha: erros do usuário
- Bloqueado pelo firewall
- Conexões com falha: erros do sistema
Os erros do usuário incluem todas as conexões que falham devido a configuração, carga de trabalho ou gerenciamento de usuários. Os erros do sistema incluem todas as conexões que falham devido a problemas transitórios relacionados ao serviço Banco de dados SQL do Azure.
Exemplos de erros causados pela configuração do usuário:
Exemplos de erros causados pela carga de trabalho do usuário:
Exemplos de erros causados pelo gerenciamento de usuários:
- Escalar verticalmente ou reduzir verticalmente o banco de dados ou o pool elástico
- Failover planejado ou não planejado de replicação geográfica
- Failover do grupo de failover planejado ou não planejado
- Banco de dados secundário geográfico em estado de posicionamento
- Banco de dados que está em estado de restauração devido à PITR (Restauração Pontual), à LTR (Restauração de Longo Prazo) ou à restauração de um banco de dados excluído
- Banco de dados que ainda não terminou de ser copiado (Cópia de Banco de Dados)
Alertas
Você pode criar regras de alerta para notificá-lo de que o valor de uma métrica ou várias métricas está fora de um intervalo esperado.
Você pode definir o escopo de uma regra de alerta de várias maneiras para atender às suas necessidades. Por exemplo, o escopo da regra de alerta pode ser definido como:
- Um banco de dados individual
- Um pool elástico
- Todos os bancos de dados ou pools elásticos em um grupo de recursos
- Todos os bancos de dados ou pools elásticos em uma assinatura em uma região do Azure
- Todos os bancos de dados ou pools elásticos em uma assinatura em todas as regiões
As regras de alerta avaliam periodicamente os valores de métrica agregados durante um período de retrospectiva, comparando-os com um valor limite. Você pode configurar o valor limite, a frequência de avaliação e o período de retrospectiva.
Se uma regra de alerta for acionada, você será notificado de acordo com suas preferências de notificação, especificadas no grupo de ações vinculado à regra de alerta. Por exemplo, você pode receber um e-mail, um SMS ou uma notificação por voz. Uma regra de alerta também pode acionar ações como webhooks, runbooks de automação, funções, aplicativos lógicos, etc. Você pode integrar alertas a produtos de gerenciamento de serviços de TI compatíveis.
Para saber mais sobre alertas do Azure Monitor, consulte Visão geral de alertas do Azure Monitor. Para se familiarizar com alertas de métrica, revise Alertas de métrica, Gerenciar regras de alerta e Grupos de ação.
Regras de alerta recomendadas
As métricas e os limites ideais a serem usados nas regras de alerta variam pelo amplo espectro de cargas de trabalho do cliente no Banco de Dados SQL do Azure.
Os alertas recomendados na tabela a seguir são um ponto de partida para ajudá-lo a definir a configuração de alerta ideal para seus recursos do Banco de Dados SQL do Azure. Dependendo de seus requisitos, sua configuração pode ser diferente deste exemplo. Você pode usar diferentes limites, frequências de avaliação ou períodos de retrospectiva. Você pode optar por criar alertas adicionais ou usar configurações de regra de alerta diferentes para aplicativos e ambientes diferentes.
Aqui estão alguns exemplos de configurações típicas de regra de alerta.
Nome da regra de alertas | Métrica (sinal) | Lógica de alerta | Quando fazer a avaliação | Gravidade sugerida |
---|---|---|---|---|
Alto uso de CPU pelo usuário | Percentual de CPU | Limite: Static Agregação: Average Operador: Greater than Valor limite: 90 |
Verificar a cada: 1 minute Período de retrospectiva: 10 minutes |
2 – Aviso |
Alto uso total da CPU | Percentual de CPU da instância do SQL | Limite: Static Agregação: Average Operador: Greater than Valor limite: 90 |
Verificar a cada: 1 minute Período de retrospectiva: 10 minutes |
2 – Aviso |
Alto uso do trabalho | Porcentagem de funcionários | Limite: Static Agregação: Minimum Operador: Greater than Valor limite: 60 |
Verificar a cada: 1 minute Período de retrospectiva: 5 minutes |
1 – Erro |
Alto Uso de Dados de E/S | Porcentagem de E/S de dados | Limite: Static Agregação: Average Operador: Greater than Valor limite: 90 |
Verificar a cada: 1 minute Período de retrospectiva: 15 minutes |
3 – Informativo |
Pouco espaço de dados | Porcentagem de espaço de dados usado | Limite: Static Agregação: Minimum Operador: Greater than Valor limite: 95 |
Verificar a cada: 15 minute Período de retrospectiva: 15 minutes |
1 – Erro |
Pouco tempdb espaço de log |
Porcentagem de Uso do Log Tempdb | Limite: Static Agregação: Minimum Operador: Greater than Valor limite: 60 |
Verificar a cada: 1 minute Período de retrospectiva: 5 minutes |
1 – Erro |
Deadlocks | Deadlocks | Limite: Dynamic Agregação: Total Operador: Greater than Confidencialidade do limite: Medium |
Verificar a cada: 15 minutes Período de retrospectiva: 1 hour |
3 – Informativo |
Conexões com falha (erros do usuário) | Conexões com falha: erros do usuário | Limite: Dynamic Agregação: Total Operador: Greater than Confidencialidade do limite: Medium |
Verificar a cada: 5 minutes Período de retrospectiva: 15 minutes |
2 – Aviso |
Conexões com falha (erros do sistema) | Conexões com falha: erros do sistema | Limite: Static Agregação: Total Operador: Greater than Unidade: Count Valor limite: 10 |
Verificar a cada: 1 minute Período de retrospectiva: 5 minutes |
2 – Aviso |
Taxa de conexão anômala | Conexões bem-sucedidas | Limite: Dynamic Agregação: Total Operador: Greater or Less than Confidencialidade do limite: Low |
Verificar a cada: 5 minutes Período de retrospectiva: 15 minutes |
2 – Aviso |
Algumas das regras de alerta recomendadas usam limites dinâmicos para detectar padrões métricos anômalos que podem exigir atenção. As regras de alerta baseadas em limiares dinâmicos não são acionadas até que dados históricos suficientes tenham sido coletados para estabelecer padrões normais. Para obter mais informações, consulte os Limites dinâmicos em alertas de métricas.
Por padrão, os alertas de métrica têm estado. Isso significa que, uma vez que uma regra de alerta é acionada, o alerta é disparado apenas uma vez. O alerta permanece no estado fired
até ser resolvido, momento em que uma notificação resolved
é enviada. Uma regra de alerta aciona um novo alerta somente quando o alerta anterior é resolvido. Alertas sem estado evitam notificações frequentes sobre uma condição em andamento. Para obter mais informações sobre alertas com e sem estado, consulte Alertas e estado.
Conteúdo relacionado
- Visão geral das métricas do Azure Monitor
- Monitorar cargas de trabalho de SQL do Azure com o observador de banco de dados (preview)
- Analisar métricas com o explorador de métricas do Azure Monitor
- Explicação da agregação e exibição de métricas do Azure Monitor
- Visão geral de alertas do Azure Monitor
- Tutorial: Criar um alerta de métrica para um recurso do Azure
- Práticas recomendadas para alertas do Azure Monitor
- Solucionar problemas em alertas do Azure Monitor
- Monitoramento e ajuste de desempenho no Banco de Dados SQL do Azure e da Instância Gerenciada de SQL do Azure
- Configurar a exportação de streaming do Banco de Dados SQL do Azure e a telemetria de diagnóstico do Instância Gerenciada de SQL do Azure