Solução de Problemas de Injeção do Agente do Browser do APM

Os usuários podem encontrar vários erros durante a configuração de injeção do APM Browser Agent. As causas e as ações recomendadas para esses erros são listadas abaixo.

A página não é injetada automaticamente com o Agente do Browser

Causas Possíveis:

  • A injeção do Agente do Browser do APM não está ativada corretamente.

    Ação: Verifique como ativar o recurso. Para obter detalhes, consulte Ativar Injeção do Agente do Browser do APM.

  • O servidor de aplicativos não é suportado pelo APM.

    Ação: Confirme se o servidor de aplicativos tem suporte verificando a matriz de certificação do OCI APM.

  • A página não é fornecida pelo servidor de Aplicativos em que o Agente do APM está em execução.

    Ação: Verifique se a página é realmente atendida pelo servidor de Aplicativos em que o Agente do APM está sendo executado.
    • Se a página for atendida em um cache (por exemplo, CDN) ou em um Servidor Web (por exemplo, Oracle HTTP Server ou Apache), o servidor de conteúdo deverá ter a página injetada.

    • Se a página for armazenada no cache pelo navegador, tente realizar uma atualização fixa (por exemplo, Shift e Reload) ou limpar o cache do navegador.

  • Verifique se a página HTML contém HTML "válido". O consórcio W3C tem muitas regras e validadores que você pode verificar a validade da página.

    Ação: Algumas formas simples de verificar são as seguintes:
    • No browser, exiba a origem da página e verifique se ela começa com "<html", "<!--" ou "<!doctype html".

      Se ele começar com alguma outra tag e você ainda precisar forçar a injeção, você poderá adicionar essa tag ao parâmetro "valid_html_start" no arquivo ProbeConfig.acml.

    • Usando as ferramentas de desenvolvimento do seu browser, verifique se o cabeçalho "Content-Type" na resposta HTTP contém "text/html".

  • Se não houver mensagem de erro clara disponível, você poderá fazer o seguinte:
    • Defina o nível de log como DEBUG no arquivo AgentConfig.properties adicionando o parâmetro com.oracle.apm.agent.logging.level=DEBUG.

      Depois disso, recarregue a página no browser e procure mensagens no arquivo Agent.log que contém a string "DEBUG <Filtro>".

    • Revise o arquivo ProbeConfig.acml e verifique se ele não atingiu nenhuma das definições de exclusão na seção INJECTION. Especificamente, revise as seguintes configurações configuráveis:
      • excluded_extensions
      • excluded_context_roots
      • excluded_patterns
  • Informações adicionais sobre a funcionalidade:
    1. O HTML deve ser gerado por um Servlet ou uma JSP em que o Agente Java do APM esteja em execução. Se você gerar HTML em um filtro ou por meio de algum outro mecanismo, é improvável que ele funcione.

    2. O Servlet deve fazer uma chamada para getOutputStream() e gravar o HTML em um ServletOutputStream válido OU deve fazer uma chamada para getWriter() e gravar o HTML em um PrintWriter válido.

      O Oracle InjectionFilter deve fazer parte da cadeia de servlets (adicionado automaticamente à cadeia de filtros do aplicativo). Se qualquer outro filtro for usado para ignorá-lo, a injeção não será possível.

    3. Codificação de transferência. O Agente deve ser capaz de interceptar e injetar antes que o fluxo de resposta HTML seja transformado por:
      • Transfer-Encoding: chunked.
      • Transfer-Encoding: compress.
      • Transfer-Encoding: deflate.
      • Transfer-Encoding: gzip.

A página não foi processada com sucesso

Ação: Primeiro, tente desativar a injeção do Agente do Browser do APM usando o arquivo AgentConfig.properties. Para obter detalhes, consulte Desativar Injeção do Agente do Browser do APM. Depois de fazer isso, espere cerca de um minuto e repita a página em questão. Não é necessário reinicializar o Servidor de Aplicativos.