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.
El agente de Java de APM brinda información detallada sobre los errores que ocurren dentro de su aplicación. Esto le brinda información valiosa sobre áreas problemáticas que pueden estar afectando el rendimiento de su aplicación o la experiencia del usuario final.
Con las versiones 3.40.0 o superiores del agente de Java, existen varias opciones de configuración que le permiten controlar cómo se informan los errores, que incluyen:
Configurar los errores esperados para que no afecten a la tasa de errores o Apdex
Error omitido
Informar errores que no se notifican automáticamente
Para obtener más información sobre cómo ver sus datos de error, consulte Análisis de errores. Para obtener una descripción general de los datos de error en todos los agentes, consulte Administrar errores en APM.
Ejemplos de errores comunes reportados
El agente de Java reporta errores en los siguientes escenarios:
Error al reportar
Comments
Errores no controlados (incluye rastreo del stack)
Si ocurre un error no controlado dentro de una transacción que el agente de Java estaba rastreando, el error se informará con el rastreo completo de la pila.
Códigos de estado HTTP (sin rastreo del stack)
Si una transacción genera un código de estado HTTP, el error se informará sin el rastreo del stack. Esto es porque:
El servidor de la aplicación detectó una condición de error y estableció explícitamente el código de estado.
O
La condición de error fue detectada por la lógica del programa y, por lo tanto, no hubo ningún objeto o stack de excepción.
Para incluir el rastreo del stack con estos tipos de transacciones, debe utilizar una llamada API noticeError(...) .
noticeError(...) Llamada API
Si el agente de Java realiza una llamada explícita utilizando la llamada API noticeError(...) , el error se informará independientemente de si ocurre o no dentro de una transacción. La información reportada depende del parámetro utilizado en la llamada API noticeError(...) , como se describe en los Javadocs.
Errores sin alcance que informan más del 100%
El agente de Java puede informar errores sin alcance, que son errores que no están vinculados a ninguna transacción. Debido a esto, es posible tener una transacción en un intervalo de tiempo y varios errores en el mismo intervalo de tiempo. En esta situación, New Relic mostraría una tasa de errores over 100%.
Configurar informes de errores
Importante
Para utilizar esta característica, actualice a la última versión (agente de Java 3.40.0 o superior).
El agente de Java proporciona varias opciones de configuración flexibles para controlar cómo se informan los errores.
Los errores reportados por estas versiones de noticeError se pueden configurar como error esperado en newrelic.yml. Las llamadas a esta API se anularán si el error se configura como ignorado en newrelic.yml. Para obtener más información, consulte Prioridad de configuración de errores.
Utilice estas noticeError() API de llamada para informar errores que no se informan automáticamente y configúrelos como error esperado en newrelic.yml:
Anular el error esperado a través de newrelic.yml.
Los errores informados por estas versiones de noticeError anularán la configuración esperada del errornewrelic.yml . Las llamadas a esta API se anularán si el error se configura como ignorado en el archivo yml. Para obtener más información, consulte Prioridad de configuración de errores.
Utilice estas API de llamada noticeError(...) para informar errores que no se informan automáticamente y configúrelos como errores esperados con la API (anula la configuración esperada del error yml):
Ignore o espere errores a través del archivo de configuración.
En las versiones 3.40.0 o superiores, puede controlar cómo se informan los errores mediante la configuración basada en YAML. Esto le permite omitir errores o esperar errores basados en códigos de estado HTTP or basados en una lista de nombres de clases de excepción más un mensaje de error opcional.
Ignoring errors impide que las clases o códigos de excepción especificados se informen a .
Expecting errors evita que las clases o códigos de excepción especificados afecten la tasa de errores y la puntuación Apdex de su aplicación. Esto le permite conservar la información de error para fines de resolución de problemas y al mismo tiempo evitar alertas basadas en la tasa de errores o la puntuación Apdex.
Estas configuraciones son dinámicas, por lo que al ejecutar agente notará cambios en newrelic.yml sin reiniciar JVM. Para obtener más información y ejemplos, consulte el archivo de configuración del agente de Java.
Configuración basada en YAML para la recopilación de errores
La configuración basada en YAML para la recopilación de errores le permite ignorar por completo errores específicos o eximir al error esperado de afectar la tasa de error de su aplicación y la puntuación Apdex. Puede marcar errores como ignorados o esperados según los siguientes criterios:
Un rango determinado de códigos de estado HTTP, presentados como una lista separada por comas o un rango de puntos
Una lista separada por comas que utiliza el nombre completo de un paquete/clase
and
y una cadena de mensaje de error proporcionada opcionalmente
De forma predeterminada, el agente de Java incluye una sección error_collector bajo la cual se encuentran todas las opciones de configuración de errores basadas en YAML . La recopilación de errores se puede habilitar o deshabilitar de la siguiente manera:
error_collector:
enabled:true
Los errores que no son de ningún interés particular pueden ignorarse por completo. Identificando errores a ignorar:
No serán reportados a APM.
No afectarán la tasa de errores de tu aplicación ni la puntuación Apdex.
Se puede evitar que los errores que son expected como parte de la lógica empresarial de una aplicación afecten la tasa de errores o la puntuación Apdex y aún así se informen a APM. Esto le permite conservar la información de error en la UI para fines de resolución de problemas y al mismo tiempo evitar alertas (basadas en la tasa de errores y la puntuación Apdex) causadas por estos errores.
expected parámetro en la llamada API noticeError(..)
expected_* configuración en el YAML
A continuación se muestran ejemplos de los resultados al combinar varias API de llamadas y configuraciones YAML.
Configuración de YAML:
error_collector:
ignore_classes:
-"com.example.ErrorClass"
y
API de llamada:
noticeError(com.example.ErrorClass)
Resultado:
El YAML ignore_classes anula la llamada API noticeError y el error se ignora.
Configuración de YAML:
error_collector:
expected_classes:
-"com.example.ErrorClass"
Y
API de llamada:
noticeError(com.newrelic.Exception)
Resultado:
El parámetro expected en la llamada API noticeError es verdadero de forma predeterminada y la configuración YAML expected_classes contiene una clase de error. Por lo tanto, el error se informa y se marca como expected.
El parámetro expected en la llamada API noticeError anula expected_classes en YAML. Por lo tanto, el error se informa como normal (no marcado como expected).
Configuración de YAML:
error_collector:
ignore_classes:
-"com.example.ErrorClass"
Y
Configuración YAML adicional:
error_collector:
expected_classes:
-"com.example.ErrorClass"
Resultado:
El YAML ignore_classes/ignore_messages anula el YAML expected_classes/expected_messages, por lo que se ignora el error. Este mismo principio se aplica a ignore_status_codes y expected_status_codes.
Examinar el registro para obtener detalles del error
Puede reunir los datos de su registro y de la aplicación para que la resolución de problemas sea más fácil y rápida. Con el contexto de inicio de sesión, puede ver el mensaje de registro relacionado con sus errores y la traza directamente en UI de su aplicación.