Opções Configuráveis do Agente Java do APM

O agente Java do APM tem as seguintes opções configuráveis na coleta de dados:

Rastreamentos Resumidos

Esse recurso foi projetado para eliminar casos de contagem excessiva de intervalos por rastreamento. Quando muitos intervalos são criados em uma única chamada, o agente pode causar uma sobrecarga maior que a desejada, também pode aumentar a contagem de intervalos horários, causando uma cobrança maior que a esperada. Os casos em que isso pode ser um problema incluem chamadas recursivas (intencionais ou não), código gerado resultando em um grande número de SQLs executadas por transação e outras.

  • O recurso abridge permite que os usuários limitem o número máximo de intervalos por chamada. Ele também fornece uma maneira de excluir intervalos que podem ser considerados "não dignos" (por exemplo, alto volume de SQLs muito rápidos).
  • Limites de contagem específicos de sondagem, inclusão/exclusão baseada em nome de extensão e limiares JDBC são configuráveis por thread, por chamada. Para obter detalhes sobre as opções de configuração, consulte o arquivo ProbeConfig.acml no diretório oracle-apm-agent\config.
  • A configuração padrão é limitar cada chamada a 100 intervalos.
  • Estatísticas de resumo básicas sobre intervalos eliminados podem ser coletadas por thread, por chamada.

Abaixo está um exemplo de uma definição que limitará o número máximo de intervalos JDBC por chamada de thread a 50, excluirá uma SQL mundana conhecida e excluirá as SQLs que forem executadas em menos de 2ms. Observe que, ativando a opção summarize, o agente adicionará as seguintes métricas ao intervalo pai: contagem de intervalos eliminados, duração média do intervalo eliminado, tempo mínimo de intervalo eliminado, tempo máximo de intervalo eliminado, contagem de erros de intervalo eliminado, bem como registros de log mostrando os 5 intervalos eliminados mais longos e os 5 primeiros erros eliminados.

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

Disjuntor

  • O disjuntor reduz automaticamente o consumo do agente dos recursos da JVM quando uma intensa pressão de recurso é detectada. O disjuntor retomará automaticamente a função normal do agente quando a pressão do recurso for suficientemente aliviada.
  • Por padrão, o disjuntor de forma incremental e automática interrompe/retoma o trabalho do agente com base no uso da memória heap e no tempo de coleta de lixo.
    Fator de Desempenho Interrupção Retomada Intervalo Componentes de Destino
    Uso da Memória Heap 95% 85% 2 minutos Sondagens
          5 minutos Agente completo
    Tempo de Coleta de Lixo 10% 5% 2 minutos Sondagens
          5 minutos Agente completo
  • Fatores de desempenho, limites de interrupção, limites de retomada, intervalos e componentes de destino são configuráveis. Para obter detalhes, consulte o arquivo CircuitBreakerConfig.acml no diretório oracle-apm-agent\config\<version>.
  • O disjuntor é ativado por padrão. Ele pode ser desativado e reativado usando a propriedade com.oracle.apm.agent.circuit.breaker.enable do arquivo AgentConfig.properties localizado no diretório oracle-apm-agent\config.

    A desativação e a reativação do disjuntor não exigem a reinicialização do agente Java do APM.

Amostra

  • Por padrão, todos os intervalos são coletados. Para alterar a configuração de amostragem, é necessário configurar a amostragem personalizada.
  • É possível reduzir a quantidade de dados de rastreamento especificando a configuração de amostragem. Para obter detalhes, consulte Configurar Amostragem do APM.
  • A operação de amostragem está sujeita ao limite de coleta de dados dos rastreamentos resumidos e do disjuntor.

Injeção de Biblioteca de Logs

Os spanId e traceId ativos podem ser injetados nas mensagens de log. Isso fornece correlação entre mensagens de log e Rastreamentos do APM para facilitar a análise e a solução de problemas de log.

Para configurar esse recurso, faça o seguinte:
  • Ative a investigação LOG_LIB no arquivo ProbeConfig.acml.

  • Ative a injeção de log desejada na seção LOG_LIB detalhada em ProbeConfig.acml.

A ativação da injeção da biblioteca de logs faz o seguinte:

  • A injeção automática permite a injeção de spanId e traceId sem modificação na configuração de log do aplicativo existente.

    Log4j 1.2, log4j 2, logback e java.util.logging são suportados.

  • WebLogic A injeção do log de acesso do servidor pode injetar spanId e traceId ativos para uma determinada solicitação HTTP. Observe que o conteúdo estático, como favicon.ico, geralmente não tem um spanId ou traceId associado.
  • A injeção de Contexto de Diagnóstico Mapeado (MDC) aproveita os recursos incorporados de log4j, log4j2 e logback para disponibilizar o spanId e o traceId ativos para frameworks de log.

    Você pode especificar as seguintes chaves na configuração de log MDC apropriada para a estrutura de log do aplicativo:
    • oracle.apm.spanId
    • oracle.apm.traceId