• EnglishEspañol日本語한국어Português
  • Inicia sesiónComenzar ahora

Te ofrecemos esta traducción automática para facilitar la lectura.

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

Crea una propuesta

Guía para utilizar la API agente de Java

La API New Relic agente de Java le permite controlar, personalizar y ampliar la funcionalidad del agente de Java. Esta API consta de:

  • Métodos estáticos en la clase com.newrelic.api.agent.NewRelic
  • Una anotación @Trace para implementar instrumentación personalizada
  • Una jerarquía de objetos API que proporciona funcionalidad adicional

Utilice esta API para configurar la instrumentación personalizada de su aplicación Java y recopilar datos más detallados. Para obtener información detallada sobre esta API, consulte el Javadoc completo en GitHub.

Otra forma de configurar instrumentación personalizada es utilizar instrumentación XML. La opción XML es más simple y no requiere modificación del código de su aplicación, pero carece de la funcionalidad completa de la API del agente de Java.

Importante

Para obtener mejores resultados al utilizar la API, asegúrese de tener la última versión del agente de Java. Varias API utilizadas en los ejemplos requieren agente de Java 6.4.0 o superior.

Para conocer todas las API de New Relic disponibles, consulte Introducción a las API.

Utilice la API

Para acceder a la API, descárguela desde maven central mediante una herramienta de compilación.

A continuación se muestra un ejemplo de gradle donde puede reemplazar ${agent.version} con la versión de su agente:

implementation 'com.newrelic.agent.java:newrelic-api:${agent.version}'

Puede llamar a la API incluso sin que el agente se esté ejecutando, pero los métodos no funcionarán hasta que el agente cargue su aplicación.

Transacción

Para instrumentar Transactions en su aplicación, utilice las siguientes API.

Si quieres...

Utilizar esta

Crea un Transaction cuando New Relic no crea uno automáticamente

@Trace(dispatcher = true) sobre el método que engloba el trabajo a reportar. Cuando esta anotación se utiliza en un método dentro del contexto de una transacción existente, esto no iniciará una nueva transacción, sino que incluirá el método en la transacción existente.

Captura la duración de un método que New Relic no traza automáticamente

@Trace() en el método que desea cronometrar.

Establecer el nombre de la corriente Transaction

NewRelic.setTransactionName(...)

Inicie el cronómetro para el tiempo de respuesta del Transaction actual y para hacer que un Transaction que cree se informe como una transacción Web , en lugar de como una transacción Other .

NewRelic.setRequestAndReponse(...)

Agregue un atributo personalizado a Transactions y TransactionEvents

NewRelic.addCustomParameter(...)

Agrega seguimiento de usuarios a Transactions configurando el atributo de agente enduser.id .

NewRelic.setUserId()

Evitar que un Transaction sea reportado a New Relic

NewRelic.ignoreTransaction()

Excluye un Transaction al calcular la puntuación Apdex de tu aplicación

NewRelic.ignoreApdex()

Ver registro relacionado

Para ver el registro directamente dentro del contexto de los errores y la traza de su aplicación, use estas llamadas API para anotar su registro:

Para obtener más información sobre cómo correlacionar los datos log con otros telemetry data, consulte nuestra documentación logs en el contexto .

Instrumentar el trabajo asincrónico

Para obtener información detallada, consulte agente de Java API para aplicación asincrónica.

Si quieres...

Utilizar esta

Traza un método asíncrono si está vinculado a un Transaction existente...

@Trace(async = true)

Vincular el Transaction asociado con el Token en el hilo actual...

Token.link() o Token.linkAndExpire()

Caducar un Token asociado con el Transaction actual...

Token.expire()

Deje de cronometrar un Segment y haga que se informe como parte de su padre Transaction

Segment.end()

Dejar de cronometrar un Segment y no informarlo como parte de su padre Transaction

Segment.ignore()

Uso de API de rastreo distribuido

Estas API requieren que rastreo distribuido esté habilitado. Consulte la configuración del agente de Java para conocer todas las opciones de configuración del rastreo distribuido.

Rastreo distribuido te permite ver el camino que sigue una solicitud a medida que viaja a través de un sistema distribuido. Para obtener instrucciones generales sobre cómo utilizar las siguientes llamadas para implementar rastreo distribuido, consulte Usar las API de rastreo distribuido. Para ver estas API en acción, consulte Uso del agente de Java para distribuir API de seguimiento con Kafka.

Importante

Con la versión 6.4.0 del agente, se introdujeron las siguientes API de rastreo distribuido, con la excepción de addCustomAttribute(), que se introdujo en 6.1.0. Recomendamos encarecidamente utilizar estas API en lugar de las obsoletas.

Si quieres...

Utilizar esta

Obtenga información sobre los encabezados de tipo específico de un mensaje entrante o saliente.

Headers

Para una implementación proporcionada de Headers use ConcurrentHashMapHeaders.

Vea un ejemplo de implementación de encabezados W3C Trace Context en el uso de la API de DT con Kafka.

Cree e inserte encabezados de rastreo distribuido en una estructura de datos Headers . Esta API insertará encabezados newrelic y W3C Trace Context (traceparent y tracestate), a menos que el agente esté configurado explícitamente para excluir los encabezados newrelic .

Para obtener más información sobre cómo obtener referencias a la transacción actual y otras clases de API, consulte Obtener referencias.

Acepte los encabezados de rastreo distribuido enviados desde el servicio de llamadas y vincule estos servicios en un rastreo distribuido.

Para obtener más información sobre cómo obtener referencias a la transacción actual y otras clases de API, consulte Obtener referencias.

Comprenda una clase de utilidad que proporciona constantes de enumeración para definir el tipo de transporte al aceptar encabezados distribuidos de rastreo.

Agregar atributo personalizado a SpanEvents en rastreo distribuido

NewRelic.getAgent().getTracedMethod().addCustomAttribute(...)

Advertencia

Con la versión 6.4.0 del agente, las siguientes API de rastreo distribuido han quedado obsoletas y reemplazadas por las API de la tabla anterior. Se recomienda encarecidamente actualizar el agente y utilizar las nuevas API en lugar de estas obsoletas.

Si quieres...

Utilizar esta

Cree una carga útil para enviarla a un servicio llamado.

Para obtener más información sobre cómo obtener referencias a la transacción actual y otras clases de API, consulte Obtener referencias.

Advertencia

API obsoleta a partir del agente 6.4.0

Aceptar una carga útil enviada desde el primer servicio; esto unirá estos servicios en una traza.

Para obtener más información sobre cómo obtener referencias a la transacción actual y otras clases de API, consulte Obtener referencias.

Advertencia

API obsoleta a partir del agente 6.4.0

Carga utilizada para conectar servicios. La llamada text() devuelve una representación de cadena JSON de la carga útil.

DistributedTracePayload.text()

Advertencia

API obsoleta a partir del agente 6.4.0

Carga utilizada para conectar servicios. La llamada httpSafe() devuelve una representación de cadena JSON codificada en base64 de la carga útil.

DistributedTracePayload.httpSafe()

Advertencia

API obsoleta a partir del agente 6.4.0

Uso de API de seguimiento de múltiples aplicaciones (CAT)

Importante

El seguimiento de aplicaciones múltiples ha quedado obsoleto a partir de la versión 7.4.0 del agente y se eliminará en una versión futura del agente.

En lugar de utilizar el rastreo multiaplicación, recomendamos nuestra característica rastreo distribuido . rastreo distribuido es una mejora de la característica de rastreo multiaplicación y se recomienda para sistemas distribuidos grandes.

Para rastrear llamadas externas y agregar rastreo de múltiples aplicaciones, use las siguientes API:

Si quieres...

Utilizar esta

Traza a través de un canal de transporte personalizado que New Relic no admite de forma predeterminada, como un transporte RPC propietario

Consulte también la información de este documento sobre el uso Transaction para obtener referencias a las clases de API de New Relic.

Ver o cambiar el nombre de la métrica o el nombre de una métrica acumulada de un TracedMethod

(El nombre de una métrica acumulada, como OtherTransaction/all, no tiene como ámbito una transacción específica. Representa todas las transacciones en segundo plano.)

Consulte también la información de este documento sobre el uso TracedMethod para obtener referencias a las clases de API de New Relic.

Informar una llamada a un servicio HTTP externo, servidor de base de datos, cola de mensajes u otro recurso externo que se está trazando utilizando la anotación@Trace del agente de Java API

TracedMethod.reportAsExternal(...) pasando argumentos construidos usando el constructor ExternalParameters .

Consulte también la información de este documento sobre el uso TracedMethod para obtener referencias a las clases de API de New Relic.

Habilite y agregue seguimiento de aplicaciones múltiples cuando se comunique con un servicio HTTP o JMS externo instrumentado por New Relic

TracedMethod.addOutboundRequestHeaders(...) junto con TracedMethod.reportAsExternal(...)

Consulte también la información de este documento sobre el uso TracedMethod para obtener referencias a las clases de API de New Relic.

Agregar tiempo para un servidor de aplicaciones o despachador que no es compatible automáticamente

Transaction.setRequest(...), Transaction.setResponse(...), o NewRelic.setRequestAndResponse(...), y Transaction.markResponseSent()

Consulte también la información de este documento sobre el uso Transaction para obtener referencias a las clases de API de New Relic.

Obtener referencias a las clases API de New Relic

Otras tareas requieren el objeto New Relic Agent. El objeto Agent expone varios objetos que le brindan la siguiente funcionalidad:

Si quieres...

Utilizar esta

Obtener una referencia a la actualidad Transaction

NewRelic.getAgent().getTransaction()

Obtenga un Token para vincular trabajo asincrónico

Comience y obtenga una referencia a un Segment

Obtener una referencia del método que se está trazando actualmente.

NewRelic.getAgent().getTracedMethod()

Obtener una referencia al logger Agent

NewRelic.getAgent().getLogger()

Obtener una referencia a la configuración Agent

NewRelic.getAgent().getConfig()

Obtenga una referencia a un agregador de métrica personalizada

NewRelic.getAgent().getAggregator()

Obtener una referencia a Insights (nuestro nombre original de la característica que regía el evento personalizado) para registrar el evento personalizado.

NewRelic.getAgent().getInsights()

Funcionalidad API adicional

Las siguientes API brindan funcionalidad adicional, como configurar información del servidor de aplicaciones, informar errores, agregar información de tiempo de carga de la página , registrar métrica personalizada y enviar eventos personalizados.

Si quieres...

Utilizar esta

Establecer explícitamente la información de puerto, nombre y versión para un servidor de aplicaciones o despachador y el nombre de instancia para una JVM

Informar un error que New Relic no informa automáticamente

NewRelic.noticeError(...)

Dentro de una transacción, gana la última llamada a noticeError . Solo se informará 1 error por transacción.

Agrupe los errores con su propia huella digital definida personalizada; implemente la interfaz ErrorGroupCallback que se utiliza para generar claves de agrupación para los errores que se enviarán a New Relic. La huella digital se utilizará para agrupar mensajes de error en la Errors Inbox UI de la .

public interface ErrorGroupCallback { String generateGroupingString(ErrorData errorData); }

Configure su propia huella digital de error mediante una función de devolución de llamada. Para registrar un ErrorGroupCallback que se utiliza para generar una clave de agrupación para el error proporcionado.

NewRelic.setErrorGroupCallback(errorGroupCallback)

Agregue el tiempo de carga de la página del browser para Transactions que New Relic no agrega al encabezado automáticamente

Crear y acumular métricas personalizadas

NewRelic.recordMetric(...), .recordResponseTimeMetric(...), o .incrementCounter(...)

Grabar evento personalizado

Insights.recordCustomEvent(...)

O utilice NewRelic.addCustomParameter(...) para agregar un atributo personalizado al tipo TransactionEvent definido por New Relic .

Consulte también la información de este documento sobre el uso Insights para obtener referencias a las clases de API de New Relic.

Ejemplos de uso de API adicionales

Para obtener ejemplos de código detallados sobre el uso de las API, consulte la documentación de New Relic sobre instrumentación personalizada para:

Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.