

# Painel de monitoramento do RDS Proxy
<a name="rds-proxy-monitoring-dashboard"></a>

É possível acessar o painel de monitoramento do RDS Proxy na aba Monitoramento do proxy.

![Painel de monitoramento do RDS Proxy.](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/Proxy-monitoring-dashboard.png)


O painel fornece um conjunto pré-configurado de métricas organizadas em widgets, projetadas para ajudar na execução de tarefas comuns de observabilidade e solução de problemas. Se uma métrica não estiver visível nesse painel, será possível visualizar todas as métricas no CloudWatch por meio de um link disponível na seção superior direita do painel.

Não é possível adicionar ou remover métricas do painel padrão. Se você quiser criar visualizações personalizadas de monitoramento para seus proxies, é possível fazer isso diretamente no CloudWatch. Consulte mais informações em [Usar painéis do CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html).

O painel de monitoramento é dividido em várias seções, com métricas agrupadas em widgets usando agregações predefinidas. Consulte mais informações sobre as métricas subjacentes do RDS Proxy em [Monitorar métricas do proxy do RDS com o CloudWatch](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-proxy.monitoring.html).

**Topics**
+ [Visão geral](#rds-proxy-monitoring-dashboard-overview)
+ [Latência](#rds-proxy-monitoring-dashboard-latency)
+ [Grupo de conexões](#rds-proxy-monitoring-dashboard-connection-pool)
+ [Utilização das conexões de banco de dados](#rds-proxy-monitoring-dashboard-db-connections-utilization-section)

## Visão geral
<a name="rds-proxy-monitoring-dashboard-overview"></a>

### Porcentagem de disponibilidade por perfil
<a name="rds-proxy-monitoring-dashboard-availability"></a>

A porcentagem de tempo em que o destino esteve disponível nos perfis `READWRITE` e `READ_ONLY`, com base em uma agregação da métrica `AvailabilityPercentage`.

A métrica de disponibilidade descreve a taxa de sucesso das verificações de integridade do banco de dados realizadas pelo proxy, o que reflete o status de saúde das instâncias de banco de dados de destino. Esse widget usa a estatística `Average` para cada perfil, e o cálculo é influenciado pelo número de instâncias de banco de dados em determinado perfil (um para o perfil `READWRITE`, possivelmente vários para perfis `READ_ONLY`) e pelo número de nós no proxy (definido pela infraestrutura do RDS Proxy).

**nota**  
O RDS Proxy ajusta automaticamente sua capacidade com base no tamanho na configuração das instâncias de banco de dados registradas nele. Não é possível controlar diretamente o número de nós no proxy, mas é possível verificar a contagem atual de nós usando a estatística `sample count` da métrica de disponibilidade. Consulte mais informações sobre como o RDS Proxy ajusta sua capacidade em [Planejar a capacidade de endereços IP](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-proxy-network-prereqs.html#rds-proxy-network-prereqs.plan-ip-address).

**O perfil `READWRITE` de destino** pode conter apenas uma instância de banco de dados, e a porcentagem de disponibilidade é calculada como a média da taxa de sucesso das verificações de integridade em todos os nós do proxy. Por exemplo, se o proxy contiver quatro nós e um deles não receber uma resposta bem-sucedida de verificação de integridade em um determinado período, a disponibilidade de leitura/escrita será de 75% nesse período. Da mesma forma, se o proxy contiver quatro nós e nenhum deles conseguir executar verificações de integridade por 30 segundos em um período de 1 minuto, o proxy reportará 50% de disponibilidade nesse minuto.

**O perfil `READ_ONLY` de destino** pode conter várias instâncias de banco de dados, como várias réplicas em um cluster do Aurora. Do ponto de vista de cada nó do RDS Proxy, o perfil somente leitura é considerada disponível se qualquer uma das instâncias de destino passar na verificação de integridade. A disponibilidade é então calculada como a média entre todos os nós do proxy, e o valor final é exibido no widget. Considere este exemplo de um proxy contendo quatro nós:
+ Cada nó do proxy executa verificações de integridade em vários destinos somente leitura (instâncias de banco de dados), onde algumas verificações têm sucesso e outras falham. Um nó do proxy informará o perfil somente leitura como disponível desde que receba uma resposta de verificação de integridade bem-sucedida de pelo menos uma instância de destino.
+ Quatro nós do proxy executam verificações de integridade em vários destinos somente leitura. Três nós conseguem se conectar a pelo menos um destino, mas um nó não consegue se conectar a nenhum dos destinos. A disponibilidade do perfil somente leitura será calculada como uma `Average` da disponibilidade do perfil informada pelos nós do proxy: `(100% + 100% + 100% + 0% )/ 4 = 75%`

**nota**  
O perfil `READ_ONLY` de destino somente leitura do RDS Proxy é compatível com clusters do Aurora ou implantações de cluster de banco de dados Multi-AZ do Amazon RDS com duas réplicas em espera legíveis, mas não com implantações de instâncias do Amazon RDS com réplicas de leitura. A disponibilidade para o perfil `READ_ONLY` poderá aparecer como “zero” se o proxy não contiver um destino somente leitura.

O widget de disponibilidade por perfil é mais útil nos seguintes cenários:
+ Diagnóstico de erros de conexão, quando você deseja avaliar rapidamente se a disponibilidade foi afetada pela integridade dos nós do proxy ou das instâncias de banco de dados de destino.
+ Diagnóstico de eventos de alto tráfego, quando o banco de dados não apresentou indisponibilidade evidente, mas as métricas de verificação de integridade do proxy podem corroborar a hipótese de sobrecarga do banco de dados. O RDS Proxy usa várias conexões persistentes reservadas para monitoramento e verificações de integridade. Assim, se as métricas do banco de dados não indicarem tempo de inatividade, mas as verificações de integridade do proxy falharem de forma intermitente, isso poderá indicar carga excessiva no banco de dados.
+ Identificação de problemas de configuração que impedem o proxy de se conectar às instâncias de banco de dados de destino. Por exemplo, se você observar uma queda nas métricas de disponibilidade do proxy, mas as instâncias de destino parecerem saudáveis de acordo com outros indicadores, isso pode indicar um problema com as ACLs de rede associadas às sub-redes do proxy ou uma configuração incorreta dos grupos de segurança anexados às instâncias de banco de dados de destino.

Ao diagnosticar problemas relacionados às métricas de disponibilidade do RDS Proxy, também é necessário revisar os indicadores de integridade e utilização do próprio banco de dados. Os cálculos de disponibilidade do proxy são influenciados pela capacidade do banco de dados de responder às verificações de integridade. Portanto, é necessário reunir informações de ambos os lados antes de tirar conclusões.

### Porcentagem de utilização das conexões com o banco de dados por perfil
<a name="rds-proxy-monitoring-dashboard-db-connections-utilization"></a>

A porcentagem de utilização do pool de conexões do proxy para cada perfil, calculada como `DatabaseConnections` dividido por `MaxDatabaseConnectionsAllowed`.

O número máximo de conexões de banco de dados permitidas refere-se ao tamanho máximo do pool do proxy, controlado pela configuração `MaxConnectionsPercent`, que, por sua vez, depende do limite de conexões do banco de dados, como o parâmetro `max_connections`. Consulte mais informações sobre essa configuração em [Considerações sobre a conexão do RDS Proxy](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-proxy-connections.html).

**nota**  
O RDS Proxy reserva uma parte da cota `MaxConnectionsPercent` para conexões internas de monitoramento. O número total de conexões reservadas não é constante, mas depende da quantidade de nós internos do proxy e do número de instâncias de banco de dados de destino.

Recomendamos manter pelo menos 30% de margem entre o número de conexões permitidas e o número máximo de conexões de banco de dados esperado durante os períodos de pico. Esse espaço melhora a experiência do cliente durante picos inesperados de workload e ajuda o RDS Proxy a redistribuir conexões em sua infraestrutura interna para gerenciamento de calor e outras finalidades. Para ajudar a seguir essa recomendação, o widget de utilização de conexões inclui uma linha-guia fixa em 70% do valor máximo.

Por exemplo, suponha que você tenha um cluster Aurora PostgreSQL com um gravador e dois leitores, com a configuração `max_connections` definida como 500 para cada instância, e um proxy configurado com `MaxConnectionsPercent` igual a 50:

1. O RDS Proxy reserva um número de conexões para fins de monitoramento, o que significa que `MaxDatabaseConnectionsAllowed` será inferior a 250 por instância: `(max_connections=500 * MaxConnectionsPercent=50%) - reserved connections`.

1. Para o perfil `READWRITE`, que contém um gravador, o tamanho máximo do pool de conexões do proxy será ligeiramente inferior a 250 (`50% * 500 - reserved_connections`), e a linha-guia de 70% corresponderá a menos de 175 conexões (`70% * 250 - reserved connections`).

1. Para o perfil `READ_ONLY`, que contém dois leitores, o tamanho máximo do pool de conexões do proxy será ligeiramente inferior a 500 (`2 * 50% * 500 - reserved_connections`), e a linha-guia de 70% corresponderá a menos de 350 conexões (`70% * 500 - reserved connections`).

Esse widget serve como um indicador geral da utilização das conexões e é um bom ponto de partida em determinados cenários de solução de problemas. Por exemplo:
+ Variações frequentes e acentuadas na utilização das conexões podem indicar que a configuração `MaxIdleConnectionsPercent` está muito baixa, e você pode reduzir a rotatividade de conexões permitindo que conexões ociosas permaneçam abertas por mais tempo.
+ Com base nos padrões da workload e na atividade dos clientes, você pode desenvolver uma expectativa geral sobre quantas conexões estão em uso em determinado momento. O widget pode ajudar a validar essas expectativas e detectar possíveis problemas nos clientes. Considere uma situação em que a configuração `MaxIdleConnectionsPercent` esteja muito baixa, mas a utilização das conexões permaneça consistentemente muito alta. Isso pode indicar que os clientes raramente ficam ociosos (o que não é necessariamente um problema), mas também pode significar que as conexões estão fixadas e, portanto, não estão sujeitas às verificações de ociosidade.
+ Na ausência de problemas relacionados à fixação de conexões ou à configuração do proxy, uma alta utilização das conexões do banco de dados pode significar que a configuração `max_connections` precisa ser aumentada ou, no caso do perfil de somente leitura, que o cluster precisa de mais réplicas de leitura.

### Detalhamento da latência
<a name="rds-proxy-monitoring-dashboard-latency-breakdown"></a>

A latência da obtenção de conexões e das respostas às consultas.


| Rótulo | Descrição | Origem | 
| --- | --- | --- | 
| DatabaseConnectionsBorrowLatency | O tempo que o proxy leva para obter uma conexão com o banco de dados, seja uma conexão existente no pool ou uma nova conexão que precisou ser aberta no banco de dados. | RDS Proxy, métrica DatabaseConnectionsBorrowLatency | 
| QueryResponseLatency | O tempo entre o recebimento de uma solicitação de consulta e a resposta do proxy. | RDS Proxy, métrica QueryResponseLatency | 
| QueryDatabaseResponseLatency | O tempo que o banco de dados levou para responder à consulta, incluindo a latência da rede entre o proxy e o banco de dados. | RDS Proxy, métrica QueryDatabaseResponseLatency | 

Esse widget ajuda você a entender o tempo médio de resposta das consultas e como a camada do proxy contribui para a latência total. A métrica de latência de obtenção de conexão pode ser especialmente útil para detectar congestionamento do pool, que ocorre quando as solicitações dos clientes ficam aguardando porque não há conexões suficientes prontamente disponíveis no pool.

Os pontos de dados dessas métricas são publicados apenas quando o valor é maior que zero, o que significa que o widget pode apresentar lacunas durante períodos sem tráfego de consultas.

### Conexões de cliente
<a name="rds-proxy-monitoring-dashboard-client-connections"></a>

O número de conexões entre os clientes e o proxy, detalhado por estado da conexão.


| Rótulo | Descrição | Origem | 
| --- | --- | --- | 
| ClientConnectionsReceived | O número de solicitações de conexão de cliente recebidas. | RDS Proxy, métrica ClientConnectionsReceived | 
| ClientConnectionsSetupSucceeded | O número de conexões de clientes estabelecidas com sucesso. | RDS Proxy, métrica ClientConnectionsSetupSucceeded | 
| ClientConnectionsSetupFailedAuth | O número de tentativas de conexão do cliente que falharam devido à configuração incorreta da autenticação ou do TLS. | RDS Proxy, métrica ClientConnectionsSetupFailedAuth | 
| ClientConnectionsClosed | O número de conexões de cliente fechadas. | RDS Proxy, métrica ClientConnectionsClosed | 

Esse widget pode ajudar você a avaliar o throughput e o status das conexões dos clientes ao exibir várias métricas de conexões de clientes em um único gráfico. Ele pode ser útil para monitorar a taxa geral de sucesso das conexões dos clientes e observar a frequência com que as conexões são abertas e encerradas. Isso pode ajudar a detectar tempestades de conexões e mudanças na atividade dos clientes ao longo do tempo.

### Workload do proxy
<a name="rds-proxy-monitoring-dashboard-proxy-workload"></a>

O número de solicitações de consulta por endpoint do proxy, com base nas métricas `QueryRequests` do proxy.

Os rótulos das séries de dados variam de acordo com o endpoint:
+ O endpoint padrão de leitura/gravação do proxy usa o rótulo `default`.
+ Se você tiver habilitado o endpoint opcional de somente leitura ao criar o proxy pelo Console de Gerenciamento da AWS, esse endpoint usará o rótulo `read-only`, precedido pelo nome do proxy. Para um proxy chamado `my-proxy`, o rótulo será `my-proxy-read-only`.
+ Os endpoints adicionais do proxy usam o nome do endpoint como rótulo, sem prefixos adicionais.

Esse widget é útil para monitorar o volume da workload processada por cada endpoint do proxy.

**Importante**  
 Atualmente, a métrica `QueryRequests` não é emitida para a atividade de consultas em conexões PostgreSQL que utilizam o protocolo de consulta estendido. 

## Latência
<a name="rds-proxy-monitoring-dashboard-latency"></a>

### Latência da resposta do banco de dados por destino
<a name="rds-proxy-monitoring-dashboard-db-response-latency-by-target"></a>

A latência da resposta do banco de dados por destino (instância de banco de dados), com base na métrica `QueryDatabaseResponseLatency` do proxy.

Esse widget é útil para monitorar a latência da resposta do banco de dados para cada instância de banco de dados sob o proxy, especialmente quando diferentes instâncias são usadas para diferentes workloads ou quando os tamanhos das instâncias não são idênticos. Considere os seguintes exemplos:
+ Um cluster de banco de dados contém várias réplicas de leitura, todas recebendo tráfego por meio do proxy. Além disso, algumas dessas réplicas recebem tráfego diretamente dos clientes, contornando o proxy. O widget pode ajudar a determinar se esse tráfego adicional está afetando a latência das consultas das workloads processadas pelo proxy.
+ Um cluster de banco de dados contém réplicas de tamanhos diferentes, toda a workload é processada pelo proxy e as instâncias de banco de dados usam a configuração padrão de conexões, na qual o limite de conexões é proporcional ao tamanho da instância. O proxy respeita os limites de conexões e envia proporcionalmente menos conexões para instâncias menores, mas essas instâncias podem apresentar maior latência porque seus caches e buffers também são menores. O widget pode ajudar a determinar se esse é o caso e se as instâncias menores conseguem acompanhar as maiores em termos de latência das consultas.

## Grupo de conexões
<a name="rds-proxy-monitoring-dashboard-connection-pool"></a>

### Porcentagem de conexões de banco de dados fixadas por perfil
<a name="rds-proxy-monitoring-dashboard-pinned-by-role"></a>

A porcentagem de conexões de banco de dados fixadas para cada perfil, calculada como `DatabaseConnectionsCurrentlySessionPinned` dividido por `DatabaseConnections`.

Esse widget é útil para monitorar a fixação de conexões na workload. Assim como em outros widgets, o valor relativo é usado aqui como um indicador de integridade mais adequado do que o número absoluto de conexões fixadas. O valor ideal é zero, mas a fixação de conexões pode não ser totalmente evitável em todas as workloads. Pode ser satisfatório ter uma pequena porcentagem de conexões que apresente fixação contanto que não cause impacto perceptível no restante da workload. No entanto, se uma grande parte de toda a workload apresentar fixação de conexões, isso poderá indicar um problema no comportamento dos clientes que impede o RDS Proxy de multiplexar conexões (reutilizá-las entre transações).

Para saber mais sobre fixação de conexões, consulte [Evitar a fixação de um RDS Proxy](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-proxy-pinning.html).

### Métricas de estabelecimento de conexões de banco de dados por perfil
<a name="rds-proxy-monitoring-dashboard-setup-metrics-by-role"></a>

O número de estabelecimentos de conexões entre o proxy e o banco de dados, detalhado por resultado do estabelecimento da conexão e perfil de destino. O widget exibe várias séries de dados para cada perfil:


| Rótulo | Descrição | Origem | 
| --- | --- | --- | 
| DatabaseConnectionRequests | O número de solicitações para criar uma conexão de banco de dados. | RDS Proxy, métrica DatabaseConnectionRequests | 
| DatabaseConnectionsSetupSucceeded | O número de conexões de banco de dados estabelecidas com sucesso. | RDS Proxy, métrica DatabaseConnectionsSetupSucceeded | 
| DatabaseConnectionsSetupFailed | O número de solicitações de conexão do banco de dados que falharam. | RDS Proxy, métrica DatabaseConnectionsSetupFailed | 

Os pontos de dados dessas métricas são publicados apenas quando o valor é maior que zero, o que significa que o widget pode apresentar lacunas durante períodos sem um evento relevante. Por exemplo, se um cliente executar consultas por meio do proxy durante determinado período, e o proxy conseguir processar todo o tráfego reutilizando conexões de back-end existentes com o banco de dados (sem abrir novas conexões), não haverá pontos de dados para esse período.

Esse widget é útil para observar a atividade e a rotatividade de conexões entre o proxy e o banco de dados. Quando usado em conjunto com as informações exibidas no widget **Conexões de clientes**, ele permite avaliar a eficiência do pool de conexões e da multiplexação de conexões no proxy.

Lembre-se de que o RDS Proxy não pré-aloca todo o pool de conexões em sua capacidade máxima e fecha conexões ociosas com o banco de dados após um período de inatividade. É normal que `DatabaseConnectionRequests` seja maior que zero e varie sob carga, mas é a proporção entre `DatabaseConnectionRequests` e `ClientConnectionsReceived` que pode exigir sua atenção. Por exemplo:
+ Se os clientes abrirem um determinado número de conexões com o proxy e o proxy abrir praticamente o mesmo número de conexões com o banco de dados em cada período, isso indicará que o proxy não poderá reutilizar conexões devido à fixação de conexões ou por outros motivos. Essa situação pode exigir uma investigação mais aprofundada, com foco no comportamento dos clientes que impede o proxy de reutilizar conexões.
+ Se os clientes abrirem um determinado número de conexões com o proxy, mas o número de novas conexões com o banco de dados representar apenas uma fração desse total, isso demonstra que o proxy está processando a maior parte do tráfego reutilizando conexões existentes. Esse é o estado normal e desejado do pool de conexões.

### Métricas de estabelecimento de conexões de banco de dados por destino
<a name="rds-proxy-monitoring-dashboard-setup-metrics-by-target"></a>

Um equivalente a **Métricas de estabelecimento de conexões de banco de dados por perfil**, mas com os dados detalhados por destino (instância de banco de dados).

## Utilização das conexões de banco de dados
<a name="rds-proxy-monitoring-dashboard-db-connections-utilization-section"></a>

### Porcentagem de utilização das conexões de banco de dados por destino
<a name="rds-proxy-monitoring-dashboard-utilization-by-target"></a>

A porcentagem de utilização do pool de conexões do proxy para cada destino (instância de banco de dados), calculada como `DatabaseConnections` dividido por `MaxDatabaseConnectionsAllowed`.

Esse widget é semelhante a **Porcentagem de utilização das conexões de banco de dados por perfil**, mas fornece uma visão detalhada da utilização das conexões para cada instância de banco de dados. Ele pode ser útil para verificar a distribuição equilibrada de conexões no perfil `READ_ONLY` em clusters de banco de dados com várias instâncias.

Por exemplo, suponha que você tenha um cluster Aurora com dois leitores e `MaxDatabaseConnectionsAllowed` de 500 para cada leitor. Se o número de conexões do proxy for 100 no primeiro leitor e 125 no segundo, o widget mostrará 20% de utilização de conexões para o primeiro leitor e 25% para o segundo.

**nota**  
 O RDS Proxy tenta equilibrar o número de conexões de clientes em cada réplica, ponderando esse número de acordo com o limite de conexões do banco de dados. Ele não faz balanceamento de carga do tráfego com base em métricas do banco de dados, como utilização de CPU, nem sabe quanto tempo cada sessão de cliente permanecerá aberta após ser estabelecida. Como resultado, um pequeno desequilíbrio na utilização de conexões entre as instâncias é um comportamento normal. 

### Uso das conexões de banco de dados por perfil READWRITE/READ\_ONLY
<a name="rds-proxy-monitoring-dashboard-usage-by-role"></a>

O número de conexões de banco de dados utilizadas e permitidas pelo proxy e pelo banco de dados. Existem dois widgets desse tipo: um para o perfil `READWRITE` e outro para o perfil `READ_ONLY`.

Esse widget só é exibido se o destino do banco de dados do proxy oferecer suporte a um perfil `READ_ONLY`, o que inclui clusters de banco de dados do Aurora e implantações de clusters de banco de dados Multi-AZ do Amazon RDS. O widget não é exibido para implantações de instâncias de banco de dados Amazon RDS.

Cada widget contém várias séries de dados:


| Rótulo | Descrição | Origem | 
| --- | --- | --- | 
| Database Connections | O número de conexões existentes no banco de dados, abertas pelo proxy ou por outros clientes. | Banco de dados, métrica DatabaseConnections | 
| Database Connections: proxy | O número de conexões entre o proxy e o banco de dados, excluindo as conexões internas usadas pelo RDS Proxy para monitoramento do banco de dados. | RDS Proxy, métrica DatabaseConnections | 
| MaxDatabaseConnectionsAllowed: Proxy | O número máximo de conexões de banco de dados permitido pelo proxy, controlado pela configuração MaxConnectionsPercent. | RDS Proxy, métrica MaxDatabaseConnectionsAllowed | 

Os valores apresentados são somas (totais) referentes ao proxy e ao cluster de banco de dados subjacente. Por exemplo, suponha que o cluster de banco de dados contenha duas instâncias que permitam 1.000 conexões cada e que o proxy esteja configurado com `MaxConnectionsPercent` de `20`. Nesse cenário, `MaxDatabaseConnectionsAllowed: Proxy` mostrará `2 * 1000 * 20% = 400` menos um número de conexões reservadas internamente pelo RDS Proxy para fins de monitoramento. O valor real será inferior a `400` e variará de acordo com o número de nós no proxy.

Esse widget é mais útil nas seguintes situações:
+ Monitorar os valores absolutos de utilização de conexões do proxy e do banco de dados.
+ Determinar o número de conexões que chegam ao banco de dados por meio do proxy em comparação com as conexões que contornam o proxy.
+ Calcular a diferença entre a utilização atual das conexões e a utilização máxima permitida.

**nota**  
 O valor de `DatabaseConnections` será maior que `Database Connections: Proxy`, mesmo que todas as conexões dos clientes sejam processadas pelo proxy. Sempre existe um número de conexões internas mantidas pela plataforma do RDS e pela infraestrutura do RDS Proxy. Essas conexões são contabilizadas pelo banco de dados, mas não são refletidas nas métricas do proxy. 