Esta é a documentação do Apigee Edge.
Acesse
Documentação da Apigee X. informações
A geração de registros é uma das maneiras eficientes de depurar problemas. As informações sobre a API como cabeçalhos, parâmetros de formulário, parâmetros de consulta, variáveis dinâmicas etc. podem ser registradas para referência posterior. As informações podem ser registradas localmente nos processadores de mensagens (apenas no Apigee Edge para nuvem privada) ou para servidores de terceiros, como Sumo Logic, Splunk ou Loggly.
Antipadrão
No código abaixo, o objeto httpClient
em uma política JavaScript é usado para registrar os dados em uma
servidor Sumo Logic. Isso significa que o processo de geração de registros ocorre
ao processamento de solicitações/respostas. Essa abordagem é contraprodutiva, porque aumenta o processamento
tempo, aumentando assim as latências gerais.
LogData_JS:
<!-- /antipatterns/examples/1-4.xml --> <Javascript async="false" continueOnError="false" enabled="true" timelimit="2000" name="LogData_JS"> <DisplayName>LogData_JS</DisplayName> <ResourceURL>jsc://LogData.js</ResourceURL> </Javascript>
LogData.js:
<!-- /antipatterns/examples/1-5.xml --> var sumoLogicURL = "..."; httpClient.send(sumoLogicURL); waitForComplete();
O culpado é a chamada para waitForComplete()
, que suspende o
operações até que o processo de geração de registros seja concluído. Um padrão válido é tornar esse modelo assíncrono
ao eliminar essa chamada.
Impacto
- Executar o código de geração de registros usando a política JavaScript aumenta a latência da API solicitação.
- Solicitações simultâneas podem estressar os recursos no processador de mensagens e, consequentemente, afetar negativamente o processamento de outras solicitações.
Prática recomendada
- Use a política MessageLogging para transferir/registrar dados para servidores de registro ou registros de terceiros de gerenciamento de projetos, como Sumo Logic, Splunk, Loggly etc.
- A maior vantagem da política de registro de mensagens é que ela pode ser definida no arquivo Fluxo do cliente, que é executado depois que a resposta é enviada de volta ao aplicativo cliente solicitante.
- A definição dessa política no fluxo pós-cliente ajuda a separar a atividade de geração de registros processamento de solicitação/resposta, evitando latências.
- Se houver um requisito específico ou um motivo para gerar registros via JavaScript (e não o
opção de fluxo do cliente mencionada acima), ela precisa ser feita de forma assíncrona. Em outras palavras,
Se você estiver usando um objeto
httpClient
, será necessário verificar se o JavaScript NÃO implementarwaitForComplete