Obtenha uma correlação perfeita entre o desempenho dos seus aplicativos e do banco de dados com comentários em consultas SQL. Este mecanismo permite que o receiver de banco de dados da Distribuição da New Relic para OpenTelemetry (NRDOT) identifique exatamente qual serviço é responsável por cargas específicas do banco de dados, consultas lentas ou eventos de bloqueio.
Importante
O New Relic vincula o monitoramento do desempenho de aplicativos (APM) do New Relic (New Relic APM) e as entidades de banco de dados comparando o endereço e a porta de conexão do banco de dados do seu aplicativo com o endereço e a porta de conexão do agente de monitoramento de banco de dados. Essa vinculação funciona de forma confiável quando ambos os lados relatam exatamente o mesmo endereço e porta. No entanto, a vinculação automática pode falhar se o seu aplicativo rotear o tráfego por meio de um balanceador de carga ou proxy, ou se os dois componentes usarem formatos de endereço diferentes (como um endereço IP em vez de um nome de domínio).
Pré-requisitos
- Agente Java: versão
9.1.0ou posterior. - Agente .NET: versão
10.52.0ou posterior.
Habilitar correlação APM-DB para o agente Java
Para habilitar essa correlação, adicione a propriedade sql_metadata_comments à seção transaction_tracer do seu arquivo de configuração do agente Java (newrelic.yml). Para mais informações, consulte a documentação de configuração do agente Java.
transaction_tracer: sql_metadata_comments: nr_service_guidHabilitar correlação APM-DB para o agente .NET
Para habilitar essa correlação, adicione a propriedade sqlMetadataComments à seção transactionTracer do seu arquivo de configuração do agente .NET (newrelic.config). Para mais informações, consulte a documentação de configuração do agente .NET.
Como funciona
Quando sua aplicação envia uma consulta ao banco de dados, o agente APM insere automaticamente um GUID de entidade APM no início do texto SQL como um comentário. Essa prática comum na indústria não afeta a lógica de execução das suas instruções SQL.
- Prefixação de comentários: O agente APM prefixa uma string de comentário ao SQL de saída (por exemplo,
/* nr_service_guid="MTE2MDAzMTl8QVBNfEFQUExJ" */ SELECT * FROM orders...). - Execução: O banco de dados executa a consulta normalmente. O comentário é armazenado nos esquemas de desempenho internos do banco de dados (como
sys.dm_exec_requestsouv$session). - Extração: O receptor do banco de dados busca essas consultas (ativas, lentas ou bloqueantes).
- Enriquecimento: O receptor analisa o comentário, extrai o
nr_service_guide o anexa como uma dimensão às suas métricas de banco de dados.
Benefícios da etiquetagem de serviços
Adicionar metadados de serviço no início oferece visibilidade de alta fidelidade do seu ecossistema de banco de dados:
- Atribuição em nível de serviço: Veja instantaneamente qual microsserviço é responsável por um pico na CPU ou memória do banco de dados
- Análise refinada de consultas lentas: filtre os logs de consultas lentas por
client_namepara entender se um gargalo no banco de dados está isolado em uma versão específica do aplicativo - Resolução de bloqueios e deadlocks: Identifique rapidamente o "proprietário" de uma consulta bloqueadora para agilizar a solução de problemas entre equipes
Impacto na segurança e no desempenho
Projetamos este mecanismo para ser invisível às suas operações de banco de dados:
Recurso | Detalhes do impacto |
|---|---|
Lógica de execução | O otimizador do mecanismo de banco de dados ignora comentários SQL |
Sobrecarga de banco de dados | A adição de uma string curta (tipicamente com menos de 50 caracteres) tem impacto insignificante na largura de banda da rede ou na memória |
Dados privados | Apenas o GUID do serviço é inserido. Nenhum dado sensível da aplicação ou contexto do usuário está incluído no comentário |
Gerenciamento de segredos
Você pode usar dois métodos seguros para gerenciar credenciais confidenciais (como senhas de banco de dados) na configuração do NRDOT Collector. Escolha o método que melhor se alinha à sua infraestrutura e políticas de segurança.