Opciones configurables del agente Java de APM
El agente Java de APM tiene las siguientes opciones configurables en la recopilación de datos:
Rastreos resumidos
Esta función está diseñada para eliminar casos de recuento excesivo de períodos por rastreo. Cuando se crean demasiados períodos en una sola llamada, el agente puede causar una sobrecarga superior a la deseada, también puede aumentar el recuento de intervalos por hora, causando una carga superior a la esperada. Los casos en los que este puede ser un problema incluyen llamadas recursivas (intencionales o no), código generado que da como resultado un gran número de SQL ejecutados por transacción y otros.
- La función abridge permite a los usuarios limitar el número máximo de períodos por llamada. También proporciona una forma de excluir períodos que se pueden considerar "no dignos" (por ejemplo, un gran volumen de SQL muy rápidos).
- Los límites de recuento específicos de sondeo, la inclusión/exclusión basada en nombre de intervalo y el umbral de JDBC se pueden configurar por thread y por llamada. Para obtener más información sobre las opciones de configuración, consulte el archivo
ProbeConfig.acml
en el directoriooracle-apm-agent\config
. - El valor por defecto es limitar cada llamada a 100 períodos.
- Las estadísticas de resumen básicas sobre los períodos borrados se pueden recopilar por thread y por llamada.
A continuación se muestra un ejemplo de un valor que limitará el número máximo de períodos de JDBC por llamada de thread a 50, excluirá un SQL mundano conocido y excluirá los SQL que se ejecutan en menos de 2 ms. Tenga en cuenta que al activar la opción summarize
, el agente agregará las siguientes métricas al período principal: recuento de períodos anulados, duración media de período anulado, tiempo mínimo de período anulado, tiempo máximo de período anulado, recuento de errores de período anulado, así como registros de log que muestran los 5 períodos anulados más largos y los primeros 5 errores anulados.
abridged_probes:
summarize: true
settings_by_probe:
- probe: "JDBC"
span_limit: 50
excluded_patterns:
- contains: "select sysdate from dual"
excluded: true
threshold:
duration: 2
start_thresholding_after: 10
Disyuntor
- El disyuntor reduce automáticamente el consumo de agentes de los recursos de JVM cuando se detecta una fuerte presión de los recursos. El disyuntor reanudará automáticamente la función normal del agente cuando la presión de los recursos se haya aliviado suficientemente.
- Por defecto, el disyuntor, de manera incremental y automática, detiene o reanuda el funcionamiento del agente en función del uso de memoria del montón y del tiempo de recolección de elementos no utilizados.
Factor de rendimiento Parar Reanudar Intervalo Componentes de destino Uso de memoria del montón 95 % 85 % 2 minutos Sondeos 5 minutos Agente completo Tiempo de recopilación de elementos no utilizados 10 % 5 % 2 minutos Sondeos 5 minutos Agente completo - Los factores de rendimiento, los umbrales de parada, los umbrales de reanudación, los intervalos y los componentes de destino se pueden configurar. Para obtener más información, consulte el archivo
CircuitBreakerConfig.acml
en el directoriooracle-apm-agent\config\<version>
. - El disyuntor está activado de forma predeterminada. Se puede desactivar y volver a activar mediante la propiedad
com.oracle.apm.agent.circuit.breaker.enable
del archivoAgentConfig.properties
ubicado en el directoriooracle-apm-agent\config
.No es necesario reiniciar el agente Java de APM para desactivar y volver a activar el disyuntor.
Ejemplo
- Por defecto, se recopilan todos los períodos. Para cambiar la configuración del muestreo, debe configurar el muestreo personalizado.
- Puede reducir la cantidad de datos de rastreo especificando la configuración de muestreo. Para obtener más información, consulte Configuración del muestreo de APM.
- La operación de muestreo está sujeta al límite de recopilación de datos de los rastreos resumidos y el disyuntor.
Inyección de la biblioteca de logs
Los archivos spanId
y traceId
activos se pueden inyectar en los mensajes de log. Esto proporciona correlación entre los mensajes de log y los rastreos de APM para facilitar el análisis de log y la resolución de problemas.
-
Active el sondeo
LOG_LIB
en el archivoProbeConfig.acml
. -
Active la inyección de log deseada en la sección detallada
LOG_LIB
deProbeConfig.acml
.
La activación de la inyección de la biblioteca de log realiza lo siguiente:
- La inyección automática permite la inyección de
spanId
ytraceId
sin modificar la configuración de registro de la aplicación existente.Log4j 1.2, log4j 2, logback y java.util.logging están soportados.
- WebLogic La inyección del log de acceso al servidor puede inyectar
spanId
ytraceId
activos para una solicitud HTTP determinada. Tenga en cuenta que el contenido estático, comofavicon.ico
, normalmente no tiene unspanId
otraceId
asociado. -
La inyección de contexto de diagnóstico asignado (MDC) aprovecha las funciones incorporadas de log4j, log4j2 y logback para que
spanId
ytraceId
activos estén disponibles para marcos de registro.Puede especificar las siguientes claves en la configuración de registro de MDC adecuada para el marco de registro de la aplicación:- oracle.apm.spanId (Fin de creación)
- oracle.apm.traceId (Fin de creación)