No RDS, essa configuração não persiste entre reinicializações. Conceda privilégios de UPDATE ao usuário de monitoramento em performance_schema.setup_consumers para que o coletor possa reativá-lo automaticamente.
Sintomas:mysql.query_plan está vazio para algumas consultas, particularmente as mais longas.
Causa: o texto da instrução é truncado pelos limites de comprimento de digest do MySQL, fazendo com que o receptor ignore EXPLAIN.
Solução: aumentar os parâmetros do servidor MySQL:
Sintomas: não há planos de consulta disponíveis nos eventos db.server.top_query.
Causa: comportamento esperado — query_sample_text não existe no MySQL 5.7.x ou 8.0.0–8.0.2.
Soluções: atualizar para o MySQL 8.0.3 ou posterior para suporte a plano de consulta.
Sintomas: planos de consulta ausentes para instruções UPDATE, INSERT, DELETE ou REPLACE.
Causa: o usuário de monitoramento não possui privilégios DML e explain_mode está definido como inline.
Solução: alterar para o modo procedure na configuração do seu receptor:
nrmysql:
explain_mode: procedure
Isso usa um procedimento SQL SECURITY DEFINER para explicar as instruções de gravação sem conceder privilégios DML ao usuário de monitoramento.
Sintomas: o atributo mysql.session.client_name está vazio para algumas conexões de banco de dados.
Causa: não é um bug — alguns drivers de cliente não enviam atributos de conexão por padrão.
Notas:
Este é um comportamento dependente de dados
Diferentes bibliotecas de cliente MySQL têm suporte variado para atributos de conexão
Nem todos os aplicativos configuram seus drivers para enviar esta informação
Sintomas: as tags de correlação do APM não estão sendo extraídas dos comentários SQL.
Causa: a extração de tag de comentário não está configurada.
Solução: adicione allowed_comment_keys a ambos os blocos de coleta na configuração:
query_sample_collection:
allowed_comment_keys:[nr_service_guid]
top_query_collection:
allowed_comment_keys:[nr_service_guid]
A extração de tag de comentário é vazia por padrão por motivos de segurança.
Sintomas:
Entidade do MySQL ausente no explorador de entidades
O aplicativo APM não mostra os relacionamentos de banco de dados
Causa: ausência dos atributos de recurso server.address e server.port necessários para a síntese de entidade.
Solução: adicione um processador de recursos à sua configuração do coletor:
processors:
resource/mysql:
attributes:
-key: server.address
value:"<YOUR_DB_HOST>"
action: upsert
-key: server.port
value: <YOUR_DB_PORT>
action: upsert
service:
pipelines:
metrics:
receivers:[nrmysql]
processors:[resource/mysql, batch]
exporters:[otlp/newrelic]
logs:
receivers:[nrmysql]
processors:[resource/mysql, batch]
exporters:[otlp/newrelic]
Sintomas:
Erros de "conexão recusada"
Falhas de autenticação de "Acesso negado"
Soluções:
Para conexão recusada:
Verifique se o MySQL está em execução:
bash
$
systemctl status mysql
Verifique se as regras de firewall permitem conexões na porta do MySQL (padrão 3306)
Verificar se bind-address na configuração do MySQL permite conexões externas
Para erros de autenticação:
Verificar se o usuário existe e possui os privilégios corretos:
SELECTUser, Host FROM mysql.userWHEREUser='<YOUR_DB_USERNAME>';
SHOW GRANTS FOR'<YOUR_DB_USERNAME>'@'%';
Verificar se a senha está correta
Para o RDS, é necessário garantir que o grupo de segurança permita conexões de entrada
Redefinições do consumidor do esquema de desempenho do RDS: o consumidor events_waits_current é desativado automaticamente na reinicialização/failover do RDS. Conceda privilégios de UPDATE em performance_schema.setup_consumers para que o coletor possa reativá-lo:
Segurança de rede do RDS: certifique-se de que o grupo de segurança do RDS permita o tráfego de entrada na porta 3306 a partir do endereço IP ou do grupo de segurança do NRDOT Collector.
Sintomas: o coletor falha ao conectar, com um erro de certificado ou relacionado ao TLS.
Causa: o RDS impõe o TLS. O coletor não confia na CA do RDS da Amazon por padrão.
Utilize estas consultas NRQL para solucionar problemas e verificar o monitoramento do MySQL:
Verificar se há consultas bloqueadas
FROM Log SELECT*WHERE event.name ='db.server.query_sample'
AND mysql.blocking.blocker.count >0
SINCE 1hour ago
Dica
Filtrar com mysql.blocking.blocker.count > 0, não com != 0 — no NRQL, null != 0 é avaliado como TRUE, o que incluiria silenciosamente sessões não bloqueadas nos resultados.