

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Monitoramento de instâncias de bancos de dados
<a name="db-instance-monitoring"></a>

Um [https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.html) é o elemento básico do Amazon RDS. É um ambiente de banco de dados isolado executado na nuvem. Para bancos de dados MySQL e MariaDB, a instância de banco de dados é o [programa mysqld](https://dev.mysql.com/doc/refman/8.0/en/mysqld.html), também conhecido como servidor MySQL, que inclui vários threads e componentes, como o analisador SQL, o otimizador de consultas, o thread/connection manipulador, as variáveis de sistema e de status e um ou mais mecanismos de armazenamento conectáveis. Cada mecanismo de armazenamento foi projetado para oferecer suporte a um caso de uso especializado. O mecanismo de armazenamento padrão e recomendado é o [InnoDB](https://dev.mysql.com/doc/refman/8.0/en/innodb-architecture.html), que é um mecanismo de banco de dados relacional transacional, de uso geral e compatível com o modelo de atomicidade, consistência, isolamento e durabilidade (ACID). O InnoDB apresenta [estruturas na memória](https://dev.mysql.com/doc/refman/8.0/en/innodb-in-memory-structures.html) (grupo de buffers, buffer de alterações, índice de hash adaptativo, buffer de logs), bem como [estruturas em disco](https://dev.mysql.com/doc/refman/8.0/en/innodb-on-disk-structures.html) (espaços para tabelas, tabelas, índices, log de undo, log de redo, arquivos de buffer de doublewrite). Para garantir que seu banco de dados siga rigorosamente o modelo ACID, o [mecanismo de armazenamento InnoDB implementa vários recursos](https://dev.mysql.com/doc/refman/8.0/en/mysql-acid.html) para proteger seus dados, incluindo transações, commit, reversão, recuperação de falhas, bloqueio em nível de linha e controle de simultaneidade multiversão (MVCC).

Todos esses componentes internos de uma instância de banco de dados trabalham em conjunto para ajudar a manter a disponibilidade, a integridade e a segurança de seus dados no nível de performance esperado e satisfatório. Dependendo da sua workload, cada componente e recurso pode impor demandas de recursos aos subsistemas de CPU, memória, rede e armazenamento. Quando um aumento na demanda por um recurso específico excede a capacidade provisionada ou os limites de software desse recurso (impostos pelos parâmetros de configuração ou pelo design do software), a instância de banco de dados pode sofrer degradação da performance ou ficar totalmente indisponível e corrompida. Portanto, é fundamental medir e monitorar esses componentes internos, compará-los com os valores de linha de base definidos e gerar alertas se os valores monitorados se desviarem dos valores esperados.

Conforme descrito anteriormente, você pode usar [ferramentas](monitoring-tools.md) diferentes para monitorar suas instâncias do MySQL e do MariaDB. Recomendamos que você use o Amazon RDS Performance Insights e as CloudWatch ferramentas para monitoramento e alertas, porque essas ferramentas são integradas ao Amazon RDS, reúnem métricas de alta resolução, apresentam as informações de desempenho mais recentes quase em tempo real e geram alarmes.

Independentemente da sua ferramenta de monitoramento preferencial, recomendamos que você [ative o Esquema de Performance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.EnableMySQL.html) em suas instâncias dos bancos de dados MySQL e MariaDB. O [Esquema de Performance](https://dev.mysql.com/doc/refman/8.0/en/performance-schema.html) é um recurso opcional para monitorar a operação do servidor MySQL (a instância de banco de dados) em um nível baixo, e foi projetado para ter um impacto mínimo na performance geral do banco de dados. Você pode gerenciar esse recurso usando o parâmetro `performance_schema`. Embora esse parâmetro seja opcional, você deve usá-lo para coletar métricas de alta resolução (um segundo) por SQL, métricas de sessão ativa, eventos de espera e outras informações detalhadas de monitoramento de baixo nível, que são coletadas pelo Insights de Performance do Amazon RDS.

**Seções**
+ [Métricas do Insights de Performance para instâncias de banco de dados](db-instance-performance-insights.md)
+ [CloudWatch métricas para instâncias de banco de dados](db-instance-cloudwatch-metrics.md)
+ [Publicando métricas do Performance Insights em CloudWatch](publishing-performance-insights-to-cloudwatch.md)

# Métricas do Insights de Performance para instâncias de banco de dados
<a name="db-instance-performance-insights"></a>

O Insights de Performance monitora diferentes tipos de métricas, conforme discutido nas seções a seguir.

## Carga de banco de dados
<a name="dbload"></a>

A carga do banco de dados (`DBLoad`) é uma métrica essencial no Insights de Performance que mede o nível de atividade no seu banco de dados. Ele é coletado a cada segundo e publicado automaticamente na Amazon CloudWatch. Ela representa a atividade da instância do banco de dados em média de sessões ativas (AAS), que é o número de sessões que estão executando consultas SQL simultaneamente. A métrica `DBLoad` é diferente de outras métricas de séries temporais, pois pode ser interpretada usando qualquer uma destas cinco dimensões: esperas, SQL, hosts, usuários e bancos de dados. Essas dimensões são subcategorias da métrica `DBLoad`. Você pode usá-las *segmentadas por* categorias para representar diferentes características da carga do banco de dados. Para obter uma descrição detalhada de como calculamos a carga do banco de dados, consulte [Carga de banco de dados](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.ActiveSessions.html) na documentação do Amazon RDS.

A ilustração de tela a seguir mostra a ferramenta Insights de Performance.

![\[Carga do banco de dados na ferramenta Insights de Performance\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/amazon-rds-monitoring-alerting/images/database-load.png)


## Dimensões
<a name="dimensions"></a>
+ *Eventos de espera* são condições em que uma sessão de banco de dados espera pela conclusão de um recurso ou outra operação para continuar seu processamento. Se você executar uma instrução SQL como `SELECT * FROM big_table` e se essa tabela for muito maior do que o buffer pool alocado do InnoDB, sua sessão provavelmente aguardará eventos de espera`wait/io/file/innodb/innodb_data_file`, que são causados por operações I/O físicas no arquivo de dados. Eventos de espera são uma dimensão importante para o monitoramento de banco de dados, pois indicam possíveis gargalos de performance. Os eventos de espera indicam os recursos e as operações pelos quais as instruções SQL que você está executando nas sessões passam a maior parte do tempo esperando. Por exemplo, o evento `wait/synch/mutex/innodb/trx_sys_mutex` ocorre quando há alta atividade do banco de dados com um grande número de transações, e o evento `wait/synch/mutex/innodb/buf_pool_mutex` ocorre quando um thread adquiriu um bloqueio no grupo de buffers do InnoDB para acessar uma página na memória. Para obter informações sobre todos os eventos de espera do MariaDB e do MySQL, consulte [Wait Event Summary Tables](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-wait-summary-tables.html) na documentação do MySQL. Para entender como interpretar nomes de instrumentos, consulte [Performance Schema Instrument Naming Conventions](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-instrument-naming.html) na documentação do MySQL.
+ O *SQL* mostra quais instruções SQL estão contribuindo mais para a carga total do banco de dados. A tabela **Principais dimensões**, localizada abaixo do gráfico **Carga do banco de dados** no Insights de Performance do Amazon RDS, é interativa. Você pode obter uma lista detalhada dos eventos de espera associados à instrução SQL clicando na barra na coluna **Carregar por esperas (AAS)**. Quando você seleciona uma instrução SQL na lista, o Insights de Performance exibe os eventos de espera associados no gráfico **Carga do banco de dados** e o texto da instrução SQL na seção **Texto SQL**. As estatísticas do SQL são exibidas no lado direito da tabela de **Principais dimensões**.
+ *Hosts* mostra os nomes dos hosts dos clientes conectados. Essa dimensão ajuda a identificar quais hosts clientes estão enviando a maior parte da carga para o banco de dados.
+ *Usuários* agrupa a carga do banco de dados por usuários que estão conectados ao banco de dados.
+ *Bancos de dados* agrupa a carga do banco de dados pelo nome do banco de dados ao qual o cliente está conectado.

## Métricas de contador
<a name="counter-metrics"></a>

As métricas de contador são métricas cumulativas cujos valores só podem aumentar ou ser redefinidos para zero quando a instância de banco de dados é reiniciada. O valor de uma métrica de contador não pode ser reduzido ao valor anterior. Essas métricas representam um contador único e monotonicamente crescente.
+ [Contadores nativos](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights_Counters.html#USER_PerfInsights_Counters.MySQL.Native) são métricas definidas pelo mecanismo de banco de dados e não pelo Amazon RDS. Por exemplo:
  + `SQL.Innodb_rows_inserted` representa o número de linhas inseridas nas tabelas do InnoDB.
  + `SQL.Select_scan` representa o número de junções que concluíram uma varredura completa da primeira tabela.
  + `Cache.Innodb_buffer_pool_reads` representa o número de leituras lógicas que o mecanismo do InnoDB não conseguiu recuperar do grupo de buffers e precisou ler diretamente do disco.
  + `Cache.Innodb_buffer_pool_read_requests` representa o número de solicitações de leitura lógica.

  Para obter definições para essas métricas nativas, consulte [Server Status Variables](https://dev.mysql.com/doc/refman/8.0/en/server-status-variables.html) na documentação do MySQL.
+ [Contadores não nativos](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights_Counters.html#USER_PerfInsights_Counters.MySQL.NonNative) são definidos pelo Amazon RDS. Você pode obter essas métricas usando uma consulta específica ou derivá-las usando duas ou mais métricas nativas nos cálculos. As métricas de contador não nativas podem representar latências, proporções ou taxas de acerto. Por exemplo:
  + `Cache.innoDB_buffer_pool_hits` representa o número de operações de leitura que o InnoDB pode recuperar do grupo de buffers sem utilizar o disco. É calculado com base nas métricas do contador nativo da seguinte forma:

    ```
    db.Cache.Innodb_buffer_pool_read_requests - db.Cache.Innodb_buffer_pool_reads
    ```
  + `IO.innoDB_datafile_writes_to_disk` representa o número de operações de gravação do arquivo de dados do InnoDB no disco. Ele captura somente operações em arquivos de dados, não operações de gravação de doublewrite ou redo logging. É calculado da seguinte forma:

    ```
    db.IO.Innodb_data_writes - db.IO.Innodb_log_writes - db.IO.Innodb_dblwr_writes
    ```

Você pode visualizar métricas de instâncias de banco de dados diretamente no painel do Insights de Performance. Escolha **Gerenciar métricas**, depois a guia **Métricas do banco de dados**, e selecione as métricas de interesse, conforme mostrado na ilustração a seguir.

![\[Seleção de métricas de instâncias de banco de dados no Insights de Performance\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/amazon-rds-monitoring-alerting/images/selecting-metrics.png)


Escolha o botão **Atualizar grafo** para exibir as métricas selecionadas, conforme mostrado na ilustração a seguir.

![\[Visualização de métricas de instâncias de banco de dados no Insights de Performance\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/amazon-rds-monitoring-alerting/images/selecting-metrics-results.png)


## Estatísticas SQL
<a name="sql-stats"></a>

O Insights de Performance coleta métricas relacionadas a performance sobre as consultas SQL para cada segundo de execução de uma consulta e para cada chamada SQL. Em geral, o Insights de Performance coleta [estatísticas do SQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.html) nos níveis de instrução e resumo. No entanto, para instâncias de banco de dados MariaDB e MySQL, as estatísticas são coletadas apenas no nível de resumo.
+ As estatísticas de resumo são uma métrica composta de todas as consultas que têm o mesmo padrão, mas que acabam tendo valores literais diferentes. O resumo substitui valores literais específicos por uma variável, por exemplo:

  ```
  SELECT department_id, department_name FROM departments WHERE location_id = ?
  ```
+ Há métricas que representam estatísticas *por segundo* para cada instrução SQL resumida. Por exemplo, `sql_tokenized.stats.count_star_per_sec` representa chamadas por segundo (ou seja, quantas vezes por segundo a instrução SQL foi executada).
+ O Insights de Performance também inclui métricas que fornecem estatísticas *por chamada* para uma instrução SQL. Por exemplo, `sql_tokenized.stats.sum_timer_wait_per_call` mostra a latência média da instrução SQL por chamada, em milissegundos.

As estatísticas do SQL estão disponíveis no painel do Insights de Performance na guia **SQL principal** da tabela **Principais dimensões**.

![\[Estatísticas SQL\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/amazon-rds-monitoring-alerting/images/sql-stats.png)


# CloudWatch métricas para instâncias de banco de dados
<a name="db-instance-cloudwatch-metrics"></a>

A Amazon CloudWatch também contém métricas que o Amazon RDS publica automaticamente. As métricas que residem no namespace `AWS/RDS` são *métricas em nível de instância* que se referem à instância (serviço) do Amazon RDS (ou seja, o ambiente de banco de dados isolado executado na nuvem) em vez de à instância de banco de dados no sentido estrito do processo [mysqld](https://dev.mysql.com/doc/refman/8.0/en/mysqld.html). Portanto, a maioria dessas [métricas padrão](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-metrics.html) se enquadra na categoria de métricas de sistema operacional, na definição exata do termo. Alguns exemplos incluem: `CPUUtilization`, `WriteIOPS`, `SwapUsage`, entre outras. No entanto, existem algumas métricas de instâncias de banco de dados que são aplicáveis ao MariaDB e ao MySQL:
+ `BinLogDiskUsage`: o espaço em disco ocupado por logs binários.
+ `DatabaseConnections`: o número de conexões de rede cliente com a instância de banco de dados.
+ `ReplicaLag`: o tempo que uma instância de banco de dados de réplica de leitura atrasa em relação à instância de banco de dados de origem.

# Publicando métricas do Performance Insights em CloudWatch
<a name="publishing-performance-insights-to-cloudwatch"></a>

O Amazon RDS Performance Insights monitora a maioria das métricas e dimensões da instância de banco de dados e as disponibiliza por meio do [painel Performance Insights](https://console.aws.amazon.com/rds/home#performance-insights-v20206:) no AWS Management Console. Esse painel é adequado para a solução de problemas de banco de dados e a análise da causa raiz. No entanto, não é possível criar alarmes no Insights de Performance para métricas relacionadas à performance. Se você quiser criar alarmes com base nas métricas do Performance Insights, essas métricas devem estar presentes CloudWatch.

O Performance Insights [publica automaticamente métricas em CloudWatch](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Cloudwatch.html). Você pode consultar os mesmos dados do Performance Insights, mas ter as métricas inseridas CloudWatch facilita a adição de CloudWatch alarmes e a adição das métricas aos CloudWatch painéis existentes. Os [contadores](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights_Counters.html) são métricas de performance do sistema operacional e do banco de dados, como `os.memory.free` ou `db.Locks.Innodb_row_lock_time`. A coleta de métricas do sistema operacional depende da configuração do Monitoramento Aprimorado. Se esse recurso estiver desativado, as métricas do sistema operacional serão coletadas uma vez por minuto. Se estiver ativado, as métricas do sistema operacional serão coletadas para o período selecionado. Para obter mais informações, consulte [Ativar e desativar o Monitoramento Aprimorado](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.Enabling.html#USER_Monitoring.OS.Enabling.Procedure) na documentação do Amazon RDS.

O Performance Insights permite que você [exporte o painel de métricas pré-configurado ou personalizado](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PI_metrics_export_CW.html) da sua instância de banco de dados para CloudWatch. Você pode exportar o painel de métricas como um novo painel ou adicioná-lo a um CloudWatch painel existente. A exportação do painel de métricas do Performance Insights para o CloudWatch painel oferece uma visão unificada e holística da integridade do seu sistema, fornecendo uma visão geral das métricas associadas a vários recursos em seu sistema, como instâncias do EC2, recursos do Amazon Elastic File System (Amazon EFS) e recursos do Elastic Load Balancing (ELB), junto com as métricas da sua instância de banco de dados.

Você pode usar a função matemática CloudWatch `DB_PERF_INSIGHTS` métrica para consultar e criar alarmes e gráficos com base nas métricas do Performance Insights de. CloudWatch Para criar um alarme em uma métrica do Performance Insights, siga as instruções na [CloudWatch documentação](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_alarm_database_performance_insights.html). Por exemplo, se você quiser acionar um alarme quando o total de transações ativas em sua instância de banco de dados atingir um limite específico, siga as instruções na página, use a expressão matemática `DB_PERF_INSIGHTS` e escolha **Aplicar**:

```
DB_PERF_INSIGHTS('RDS', 'db-BQ2TPYY7HG2GDFC7APMB3BVB3M', 'db.Transactions.active_transactions.avg')
```

em que `db-BQ2TPYY7HG2GDFC7APMB3BVB3M` é o ID do recurso da sua instância de banco de dados. Especifique o período (por exemplo, 1 minuto) e as condições (por exemplo, maior que 1000). Para finalizar a criação do alarme, configure as ações do alarme, adicione um nome e uma descrição e pré-visualize e crie o alarme.