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 arquivoProbeConfig.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 arquivoAgentConfig.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çãoINJECTION
. Especificamente, revise as seguintes configurações configuráveis:excluded_extensions
excluded_context_roots
excluded_patterns
-
- Informações adicionais sobre a funcionalidade:
-
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.
-
O Servlet deve fazer uma chamada para
getOutputStream()
e gravar o HTML em umServletOutputStream
válido OU deve fazer uma chamada paragetWriter()
e gravar o HTML em umPrintWriter
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.
-
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.