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 directorio oracle-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 directorio oracle-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 archivo AgentConfig.properties ubicado en el directorio oracle-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.

Para configurar esta función, haga lo siguiente:
  • Active el sondeo LOG_LIB en el archivo ProbeConfig.acml.

  • Active la inyección de log deseada en la sección detallada LOG_LIB de ProbeConfig.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 y traceId 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 y traceId activos para una solicitud HTTP determinada. Tenga en cuenta que el contenido estático, como favicon.ico, normalmente no tiene un spanId o traceId asociado.
  • La inyección de contexto de diagnóstico asignado (MDC) aprovecha las funciones incorporadas de log4j, log4j2 y logback para que spanId y traceId 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)