Obtenga una correlación perfecta entre sus aplicaciones y el rendimiento de la base de datos con los comentarios de consultas SQL. Este mecanismo permite que el receptor de base de datos de la Distribución de OpenTelemetry de New Relic (NRDOT) identifique exactamente qué servicio es responsable de la carga específica de la base de datos, las consultas lentas o los eventos de bloqueo.
Importante
New Relic vincula el monitoreo del rendimiento de aplicaciones (APM) de New Relic (New Relic APM) y las entidades de base de datos al hacer coincidir la dirección y el puerto de conexión de base de datos de la aplicación con la dirección y el puerto de conexión del agente de monitoreo de base de datos. Esta vinculación funciona de manera confiable cuando ambos lados reportan exactamente la misma dirección y puerto. Sin embargo, la vinculación automática puede fallar si la aplicación enruta el tráfico a través de un balanceador de carga o proxy, o si los dos componentes usan formatos de dirección diferentes (como una dirección IP frente a un nombre de dominio).
Requisitos previos
- Agente de Java: versión
9.1.0o posterior. - Agente .NET: versión
10.52.0o posterior.
Habilitar la correlación APM-DB para el agente Java
Para habilitar esta correlación, agregue la propiedad sql_metadata_comments a la sección transaction_tracer de su archivo de configuración del agente de Java (newrelic.yml). Para obtener más información, consulte la documentación de configuración del agente de Java.
transaction_tracer: sql_metadata_comments: nr_service_guidHabilitar la correlación APM-DB para el agente .NET
Para habilitar esta correlación, agregue la propiedad sqlMetadataComments a la sección transactionTracer de su archivo de configuración del agente .NET (newrelic.config). Para obtener más información, consulte la documentación de configuración del agente .NET.
Cómo funciona
Cuando su aplicación envía una consulta a la base de datos, el agente de APM antepone automáticamente un GUID de entidad de APM en el texto SQL como un comentario. Esta práctica común de la industria no afecta la lógica de ejecución de sus sentencias SQL.
- Anteposición de comentarios: El agente de APM antepone una cadena de comentarios al SQL saliente (por ejemplo,
/* nr_service_guid="MTE2MDAzMTl8QVBNfEFQUExJ" */ SELECT * FROM orders...). - Ejecución: La base de datos ejecuta la consulta como de costumbre. El comentario se almacena en los esquemas de rendimiento internos de la base de datos (como
sys.dm_exec_requestsov$session). - Extracción: El receptor de la base de datos recupera estas consultas (activas, lentas o de bloqueo).
- Enriquecimiento: El receptor analiza el comentario, extrae el
nr_service_guidy lo adjunta como una dimensión a sus métricas de base de datos.
Beneficios del etiquetado de servicios
Anteponer metadatos del servicio le brinda visibilidad de alta fidelidad en su ecosistema de bases de datos:
- Atribución a nivel de servicio: Vea al instante qué microservicio es responsable de un pico en la CPU o la memoria de la base de datos
- Análisis refinado de consultas lentas: filtre los logs de consultas lentas por
client_namepara entender si un cuello de botella en la base de datos se limita a una versión específica de la aplicación - Resolución de bloqueos e interbloqueos: Identifique rápidamente al "propietario" de una consulta de bloqueo para agilizar la solución de problemas entre equipos
Impacto en la seguridad y el rendimiento
Hemos diseñado este mecanismo para que sea invisible para las operaciones de base de datos:
Característica | Detalle del impacto |
|---|---|
Lógica de ejecución | El optimizador del motor de base de datos ignora los comentarios SQL |
Sobrecarga de base de datos | La adición de una cadena corta (típicamente menos de 50 caracteres) tiene un impacto insignificante en el ancho de banda de la red o la memoria |
Privacidad de datos | Solo se inserta el GUID del servicio. No se incluyen datos sensibles de la aplicación ni contexto del usuario en el comentario |
Gestión de secretos
Puede utilizar dos métodos seguros para gestionar credenciales confidenciales (como contraseñas de bases de datos) en la configuración de NRDOT Collector. Elija el método que mejor se alinee con su infraestructura y políticas de seguridad.