Te ofrecemos esta traducción automática para facilitar la lectura.
En caso de que haya discrepancias entre la versión en inglés y la versión traducida, se entiende que prevalece la versión en inglés. Visita esta página para obtener más información.
Soporte de la API de OpenTelemetry en los agentes de New Relic
Los agentes de APM de New Relic ahora admiten las API de OpenTelemetry (OTel), lo que le permite instrumentar sus aplicaciones utilizando las API de OpenTelemetry independientes del proveedor mientras mantiene acceso total a las potentes funciones de APM de New Relic. Esta capacidad le brinda la flexibilidad de escribir código de instrumentación portátil sin sacrificar la profundidad de la información y las características que ofrece New Relic.
Beneficios
El uso del soporte de la API de OpenTelemetry con los agentes de New Relic ofrece varias ventajas:
Instrumentación independiente del proveedor: Escriba instrumentación personalizada utilizando APIs estándar de OpenTelemetry que funcionan en distintas plataformas de observabilidad
No se requiere migración: Habilite el soporte para la API de OTel en su agente New Relic existente sin reemplazar su instrumentación actual
Adopción gradual: Usa las API de OpenTelemetry para nueva instrumentación personalizada mientras la instrumentación existente de New Relic sigue funcionando
Compatibilidad de modo mixto: Rastrea solicitudes de forma fluida a través de servicios instrumentados con agentes de New Relic, API de OpenTelemetry o agentes OTel puros
Instrumentación de la comunidad: Aproveche la instrumentación nativa de OpenTelemetry para frameworks y bibliotecas
Qué ofrece esta función
Cuando habilitas el soporte de la API de OpenTelemetry en un agente de New Relic, el agente puede:
Capture spans, trazas, métricas y logs creados mediante las API de OpenTelemetry
Integra la telemetría generada por OTel de forma fluida en las trazas de New Relic APM
Soportar la instrumentación nativa de OpenTelemetry que no entre en conflicto con la instrumentación integrada de New Relic
Mantener el contexto de la traza en servicios instrumentados mixtos de New Relic y OpenTelemetry
Importante
Esta función está deshabilitada de forma predeterminada. Debe habilitarlo explícitamente a través de la configuración del agente.
Lenguajes y características compatibles
El soporte para la API de OpenTelemetry está disponible para los siguientes agentes de APM de New Relic:
Idioma
Versión mínima
API de trazas
APImétrica
API de Logs
Enlaces de extensión
Eventos en spans
Java
[9.1.0]
Node.js
[13.13.0]
.NET
[10.49.0]
Consulte la nota a continuación
Python
[11.5.0]
Consulte la nota a continuación
Ruby
[10.2.0]
Sugerencia
Logs de .NET y Python: El agente de .NET ya utiliza la biblioteca de logging que se convirtió en la API de OpenTelemetry para datos de log. El agente de Python ya admite el módulo logging. Para la compatibilidad con versiones anteriores, habilitar el soporte de la API de OpenTelemetry no cambia la forma en que estos agentes instrumentan los logs.
Muestreo en entornos mixtos
Todos los agentes ahora soportan el muestreo de proporción de trazas, alineándose con los estándares de OpenTelemetry y asegurando una lógica de muestreo consistente en entornos mixtos.
Beneficios clave:
Decisiones de muestreo consistentes en servicios instrumentados con New Relic y OTel
Preservación de las decisiones de rastreo ascendentes de los SDK de OTel
Para obtener detalles sobre cómo funciona el muestreo adaptativo, los objetivos de muestreo por agente y las opciones de configuración, consulta Muestreo de rastreo distribuido.
Tipos de instrumentación admitidos
Instrumentación nativa (automática)
La instrumentación nativa de OpenTelemetry se admite de forma predeterminada. Estas instrumentaciones están integradas directamente en la biblioteca o framework por su mantenedor y funcionan automáticamente cuando habilitas el soporte de la API de OpenTelemetry.
Las instrumentaciones nativas específicas disponibles varían según el agente de lenguaje. Consulte la sección de configuración para obtener detalles sobre qué instrumentaciones son compatibles para cada lenguaje.
Importante
Limitación conocida: Algunas instrumentaciones nativas pueden producir nombres de span o de métricas ligeramente diferentes en comparación con la instrumentación integrada de New Relic debido a diferencias en las convenciones semánticas de OpenTelemetry (por ejemplo, Elasticsearch, RabbitMQ).
Instrumentación personalizada con las API de OpenTelemetry
Puede escribir instrumentación personalizada utilizando las API estándar de OpenTelemetry:
Trazas: Cree spans personalizados y agregue atributos usando la API de Tracing de OpenTelemetry
Métricas: Registre métricas personalizadas mediante la API de métricas de OpenTelemetry (donde sea compatible)
Logs: Escriba logs usando la API de Logs de OpenTelemetry (donde sea compatible)
1. Habilitar la autoconfiguración del SDK de OpenTelemetry
Utilice uno de los siguientes métodos:
Propiedad del sistema:
bash
$
-Dotel.java.global-autoconfigure.enabled=true
Variable ambiental:
bash
$
exportOTEL_JAVA_GLOBAL_AUTOCONFIGURE_ENABLED=true
2. Habilitar el soporte de New Relic para OpenTelemetry
Propiedad del sistema:
bash
$
-Dnewrelic.config.opentelemetry.enabled=true
Variable ambiental:
bash
$
NEW_RELIC_OPENTELEMETRY_ENABLED=true
Configuración de YAML (newrelic.yml):
opentelemetry:
enabled:true
Importante
El agente de Java instrumenta las API de trazas, métricas y logs de OpenTelemetry para capturar las señales emitidas por su aplicación. No incluye ni habilita automáticamente ninguna instrumentación de OpenTelemetry. La autoinstrumentación de OpenTelemetry no es compatible.
Tipos de instrumentación admitidos
Instrumentación manual
La instrumentación personalizada que utiliza las API de trazas, métricas o logs de OpenTelemetry será capturada automáticamente por el agente.
Instrumentación de bibliotecas y nativa
Las instrumentaciones de bibliotecas independientes de OpenTelemetry y la instrumentación nativa integrada directamente en las bibliotecas funcionarán con el agente de New Relic. Sin embargo, la autoinstrumentación basada en bytecode de OpenTelemetry no será detectada por el agente de New Relic.
Habilitar el soporte de la API de OpenTelemetry
Habilite el soporte de la API de OpenTelemetry en su archivo de configuración newrelic.js:
exports.config={
// ... other config
opentelemetry:{
enabled:true,
traces:{
enabled:true
}
}
// ... other config
}
Importante
El agente de Node.js no habilita automáticamente ninguna instrumentación de OpenTelemetry. Solo instrumenta las API de OpenTelemetry para capturar la telemetría emitida por su aplicación.
APIs de OpenTelemetry compatibles
Cuando el soporte de OpenTelemetry está habilitado, el agente de Node.js admite totalmente:
La Metrics API es la funcionalidad más útil para los clientes de Node.js. Amplía la capacidad de recolección de métricas para incluir métricas dimensionales, una característica solicitada con frecuencia.
La API de logs de OpenTelemetry para JavaScript aún está en desarrollo, pero el agente de Node.js la admite. Puedes usar la API para emitir logs que se enviarán a New Relic.
Los clientes que instrumenten sus aplicaciones con la API de OpenTelemetry verán que el agente procesa y envía esos datos correctamente.
Instrumentación nativa y de biblioteca (limitada)
La lista de instrumentaciones de OpenTelemetry tiene una superposición significativa con los módulos soportados por el agente de Node.js. Las instrumentaciones que aún no están cubiertas por el agente de New Relic pueden:
Conflicto con los componentes internos del agente
No tener suficiente demanda de los clientes
Advertencia
No hemos probado instrumentaciones de OpenTelemetry fuera de la lista oficial de OpenTelemetry y no podemos recomendar ninguna específica en este momento.
Limitaciones conocidas
Sin instrumentaciones automáticas: El agente no habilita automáticamente las instrumentaciones de OpenTelemetry. Los clientes deben instrumentar manualmente su código utilizando las API de OpenTelemetry.
Habilitar el soporte de la API de OpenTelemetry
Habilite el soporte para la API de OpenTelemetry utilizando variables de entorno o el archivo de configuración XML newrelic.config.
Uso de variables de entorno:
bash
$
NEW_RELIC_OPENTELEMETRY_ENABLED=true
Uso de newrelic.config:
<configuration>
<openTelemetryenabled="true"/>
</configuration>
Sugerencia
Trazas y Métricas están habilitadas de forma predeterminada cuando el soporte de OpenTelemetry está habilitado.
Instrumentaciones nativas soportadas
Cuando habilita el soporte para la API de OpenTelemetry, el agente .NET puede capturar telemetría de bibliotecas instrumentadas con OpenTelemetry.
Instrumentaciones de trazas
El agente admite bibliotecas con instrumentación de rastreo nativa de OpenTelemetry. También se admite la instrumentación personalizada escrita utilizando la API de Tracing de OpenTelemetry.
Instrumentaciones de métricas
Cuando las métricas están habilitadas, el agente admite instrumentaciones de métricas de OpenTelemetry de bibliotecas y frameworks. También se admite la instrumentación personalizada escrita con la API de métricas de OpenTelemetry.
Instrumentaciones de logs
El agente .NET ya instrumenta la biblioteca de logging que se convirtió en la API de OpenTelemetry para datos de log. No se requieren cambios en los logs al habilitar el soporte de la API de OpenTelemetry. Para la compatibilidad con versiones anteriores, la instrumentación de logs sigue funcionando como antes.
Habilitar el soporte de la API de OpenTelemetry
Habilite el soporte de la API de OpenTelemetry en su archivo de configuración newrelic.ini o mediante variables de entorno:
Uso de newrelic.ini:
[newrelic]
opentelemetry.enabled=true
Uso de variable de entorno:
bash
$
NEW_RELIC_OPENTELEMETRY_ENABLED=true
Importante
Cuando el soporte de OpenTelemetry está habilitado, el agente detectará automáticamente si opentelemetry-api está instalado y cambiará al uso de la instrumentación de OpenTelemetry para las bibliotecas compatibles.
Cómo funciona
Cuando el soporte de OpenTelemetry está habilitado y el agente detecta que opentelemetry-api está instalado:
Instrumentación nativa: Para bibliotecas con instrumentación nativa de OpenTelemetry incorporada, el agente deshabilita automáticamente los hooks de New Relic y utiliza la instrumentación nativa de OpenTelemetry en su lugar.
Instrumentación de bibliotecas: Si se detecta una biblioteca de instrumentación de OpenTelemetry, el agente utiliza automáticamente la instrumentación de OpenTelemetry en lugar de los hooks de instrumentación de New Relic.
Algunas instrumentaciones (como las bibliotecas de AWS y gRPC) seguirán utilizando la instrumentación de New Relic. Las bibliotecas de IA con instrumentación nativa están deshabilitadas explícitamente por ahora y tendrán soporte en una versión futura.
Instrumentación manual
Cualquier instrumentación personalizada escrita con la API de rastreo de OpenTelemetry será capturada por el agente.
Ejemplo:
from opentelemetry import trace
tracer = trace.get_tracer(__name__)
with tracer.start_as_current_span("my-custom-span")as span:
span.set_attribute("custom.attribute","value")
# Your code here
Característica admitida
API de trazas
✅ Totalmente compatible: Cree spans personalizados y agregue atributos mediante la API de Tracing de OpenTelemetry
APImétrica
❌ Aún no se admite: La API de métricas de OpenTelemetry no está habilitada en el agente de Python
API de Logs
✅ Ya funciona: El agente ya soporta el módulo de logging. No existe una API de OpenTelemetry para logging en Python (solo existe un SDK). Lo que OpenTelemetry configura para el logging es si está habilitado y a qué endpoints enviar los datos.
Cómo funciona
Cuando el soporte de OpenTelemetry está habilitado:
El agente busca en el sistema para determinar si las bibliotecas de instrumentación de OpenTelemetry están instaladas
Cambio automático: Si se detecta, el agente utiliza la instrumentación de la biblioteca OpenTelemetry en lugar de los hooks de New Relic
Integración fluida: Los spans de OpenTelemetry se integran en las trazas de New Relic
Limitaciones conocidas
Métricas no admitidas: La API de métricas de OpenTelemetry aún no está habilitada
Algunas bibliotecas de AWS y gRPC excluidas: Se seguirá usando la instrumentación de New Relic
Bibliotecas de IA deshabilitadas: La instrumentación nativa de OpenTelemetry para bibliotecas de IA está deshabilitada por ahora
Configuración de inclusión/exclusión: Se planean opciones de ajuste fino para futuras versiones, pero actualmente solo funciona habilitar/deshabilitar
Habilitar el soporte de la API de OpenTelemetry
Para habilitar el soporte de la API de OpenTelemetry en el agente de Ruby, agregue lo siguiente a su archivo de configuración newrelic.yml:
opentelemetry:
enabled:true
O configure la variable de entorno:
bash
$
NEW_RELIC_OPENTELEMETRY_ENABLED=true
Importante
Cuando el soporte de OpenTelemetry está habilitado, el agente detectará automáticamente si opentelemetry-api está instalado y cambiará al uso de la instrumentación de OpenTelemetry para las bibliotecas compatibles.
Instrumentación manual
Cualquier instrumentación personalizada escrita con la API de rastreo de OpenTelemetry será capturada por el agente.
✅ Soportado: Crear spans personalizados y agregar atributos usando la API de Tracing de OpenTelemetry
APImétrica
❌ No compatible: API de métricas de OpenTelemetry
API de Logs
❌ No admitido: OpenTelemetry Logs API
Vínculos de span
❌ No compatible: Enlaces de Span
Eventos en Spans
❌ No admitido: Eventos en Spans
Cómo funciona
Cuando el soporte de OpenTelemetry está habilitado, el agente Ruby de New Relic:
Escucha las llamadas a las API de rastreo de OpenTelemetry
Traduce esas llamadas a modelos de datos de New Relic
Incorpora spans de OpenTelemetry en las trazas de New Relic
callout.information
De forma predeterminada, la instrumentación de OpenTelemetry se excluye para las bibliotecas que el agente Ruby de New Relic también instrumenta. Esto incluye bibliotecas instrumentadas de forma nativa y bibliotecas con paquetes de instrumentación en opentelemetry-ruby-contrib.
Limitaciones conocidas
Soporte limitado de API: Solo se admite la API de Traces en esta versión
Métricas y logs: No disponible
Enlaces de span y eventos: No compatible actualmente
Verificar que funcione
Después de habilitar el soporte de la API de OpenTelemetry, verifique que esté funcionando:
Despliegue su aplicación con la configuración actualizada del agente.
Si utiliza instrumentación personalizada, asegúrese de que su código cree spans/métricas mediante las API de OpenTelemetry.
Vea las trazas distribuidas para ver los spans creados por las API de OpenTelemetry integradas en sus trazas
Limitaciones y problemas conocidos
Limitaciones de la instrumentación
Limitación
Descripción
Instrumentación de biblioteca no compatible
Las instrumentaciones de bibliotecas de OpenTelemetry que requieren la instalación de paquetes por separado no se admiten en esta versión. Solo las instrumentaciones nativas que están integradas directamente en la librería por su mantenedor funcionan automáticamente.
Instrumentación de bytecode de Java no detectada
La autoinstrumentación de OpenTelemetry para Java que utiliza manipulación de bytecode no será detectada por el agente de Java de New Relic.
Diferencias de convenciones semánticas
Algunas instrumentaciones de OpenTelemetry utilizan convenciones de nomenclatura diferentes para spans y métricas en comparación con la instrumentación integrada de New Relic:
Elasticsearch: Los nombres de los spans y los nombres de las operaciones pueden diferir en el uso de mayúsculas y en longitud.
RabbitMQ: El rastreo distribuido funciona de manera diferente (enlaces de span vs. relaciones padre/hijo)
Sugerencia
Estas diferencias pueden afectar los dashboards y las condiciones de alerta existentes que dependen de nombres específicos de spans o métricas. Revise y actualice sus consultas si cambia de la instrumentación de New Relic a la instrumentación de OpenTelemetry para estos servicios.
Limitaciones específicas del agente
Python: Solo se admite la API de Trazas; las API de Métricas y Logs no están disponibles
Ruby: Solo se admite la API de Trazas; las API de Métricas y Logs no están disponibles
.NET: Habilitar las métricas de OpenTelemetry puede aumentar los costos de ingesta de métricas dimensionales
Resolución de problemas
Los spans de OpenTelemetry no aparecen en las trazas
Si ha habilitado el soporte para la API de OpenTelemetry pero no ve los spans generados por OTel en sus trazas:
Verifique la configuración de su agente para confirmar que el soporte de OpenTelemetry esté habilitado:
Revise las variables de entorno o los archivos de configuración
Revise los logs del agente para confirmar que el soporte de OpenTelemetry esté activo
Asegúrese de haber reiniciado su aplicación después de cambiar la configuración
Confirme que está ejecutando la versión mínima requerida del agente que admite las API de OpenTelemetry. Consulte la tabla de lenguajes soportados de arriba.
¿Necesitas ayuda?
Si tiene problemas con el soporte de la API de OpenTelemetry, comuníquese con el Soporte de New Relic para obtener asistencia.