Depuração e solução de problemas de proxies Node.js

Você está vendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
informações

É uma boa prática garantir que qualquer código Node.js adicionado a um proxy funcione antes de implantá-lo no Edge. Neste tópico, discutimos maneiras de depurar e solucionar problemas de proxies que incluem aplicativos Node.js após a implantação.

Aumentar o tamanho do pool de conexões para melhorar o desempenho

Se o desempenho estiver lento, aumente o tamanho do pool de conexões padrão do Node.js com maxSockets ou desative o pool de soquetes. Para mais informações e exemplos de código, consulte Dicas de desempenho do Node.js: pool de soquetes na comunidade Apigee.

Como ver registros do Node.js

Para ver informações de registro sobre seu aplicativo Node.js:

  1. Na página principal de proxies da API, clique no proxy que quer visualizar.
  2. Na página de resumo do proxy selecionado, clique em Registros do Node.js no lado direito da barra de ferramentas.

Na página "Registros", é possível selecionar um período para visualizar os registros, conforme mostrado abaixo. Os registros gravam chamadas de método HTTP, sucesso ou falha de chamadas, mensagens console.log e assim por diante. Insira uma string de pesquisa no campo de pesquisa para exibir todas as entradas de registro que contêm essa string.

Como usar a ferramenta de rastreamento

A ferramenta de rastreamento é útil para a depuração geral do proxy. Para ver informações detalhadas sobre o uso da ferramenta de rastreamento, consulte Como usar a ferramenta de rastreamento.

Saída do console de impressão

É possível incorporar instruções console.log no código Node.js e ver a saída na ferramenta de trace. Por exemplo, a instrução a seguir imprime o valor da variável config.user:

console.log('Logging in as %s', config.username);

Para visualizar a saída de mensagens do console.log na ferramenta de rastreamento, chame sua API na ferramenta Trace e clique em Saída de todas as transações para abrir o painel de saída:

Supondo que você executou o seguinte código...

var http = require('http');

console.log('node.js application starting...');

var svr = http.createServer(function(req, resp) {
    resp.end('Hello, World!');
});

svr.listen(9000, function() {
    console.log('Node HTTP server is listening');
});

... as instruções do console aparecem no painel:

Como definir as configurações de tempo limite do destino do Nginx

Se você estiver usando o Nginx como proxy e encontrar erros "Gateway inválido", tente aumentar a configuração de tempo limite do proxy do Nginx conforme explicado aqui:

Exemplo:

proxy_connect_timeout       60;
proxy_read_timeout          120;

Dependendo de quanto tempo o servidor leva para responder pode determinar as configurações ideais de tempo limite. Por exemplo, um tempo limite de leitura de 45 a 60 segundos pode ser ideal para fornecer um buffer razoável.

Como definir as configurações de tempo limite desejado da Apigee

Também é possível configurar os valores de tempo limite padrão da Apigee no elemento HttpTargetConnection em TargetEndpoint. Os valores padrão são:

connect.timeout.millis - 60 seconds
io.timeout.millis - 120 seconds
<HTTPTargetConnection>
    <Properties>
        <Property name="connect.timeout.millis">5000</Property>
        <Property name="io.timeout.millis">5000</Property>
    </Properties>
    <URL>http://www.google.com</URL>
</HTTPTargetConnection>

Consulte também a Referência de propriedades do endpoint.

Mais informações

Para saber mais sobre depuração, consulte:

Próximas etapas

Para informações sobre o suporte a módulos Node.js na Apigee Edge, incluindo informações sobre suporte para HTTP/HTTPS, TLS e outros tópicos avançados, consulte Noções básicas sobre o suporte do Edge para módulos Node.js.