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

Você está visualizando a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
info

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

Aumentar o tamanho do pool de conexões para melhorar a performance

Se o desempenho estiver lento, tente resolver o problema aumentando o tamanho do pool de conexões Node.js padrão com maxSockets ou desativando o pool de soquetes completamente. Para mais informações e exemplos de código, consulte Dicas de desempenho do Node.js: pool de soquetes na Comunidade Apigee.

Como conferir os registros do Node.js

Para conferir as informações de registro do seu aplicativo Node.js:

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

Na página "Registros", selecione um intervalo de tempo para exibir os registros, conforme mostrado abaixo. Os registros registram 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 a string.

Como usar a ferramenta de rastreamento

A ferramenta de trace é útil para depuração geral de proxy. Para informações detalhadas sobre como usar a ferramenta de rastreamento, consulte Como usar a ferramenta Trace.

Saída do console de impressão

É possível incorporar instruções console.log no código do Node.js e conferir a saída na ferramenta de rastreamento. 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 das mensagens de 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 configurar o tempo limite de destino do Nginx

Se você estiver usando o Nginx como proxy e receber erros de "Bad Gateway", aumente a configuração de tempo limite do proxy Nginx conforme explicado aqui:

Exemplo:

proxy_connect_timeout       60;
proxy_read_timeout          120;

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

Como configurar o tempo limite de destino da Apigee

Também é possível configurar os valores de tempo limite padrão da Apigee no elemento HttpTargetConnection no 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 das propriedades de endpoint.

Para saber mais

Para saber mais sobre depuração, consulte:

Próximas etapas

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