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

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

É recomendável garantir que qualquer código do Node.js adicionado a um proxy funcione antes de implantá-lo no Edge. Este tópico discute maneiras de depurar e solucionar problemas de proxies que incluem aplicativos do Node.js depois de implantados.

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

Se você notar uma performance lenta, talvez seja possível resolver o problema aumentando o tamanho padrão do pool de conexões do Node.js com maxSockets ou desativando o pool de soquetes. Para mais informações e exemplos de código, consulte Dicas de performance do Node.js: pool de soquetes na comunidade da Apigee.

Como visualizar registros do Node.js

Para visualizar informações de registro sobre o aplicativo Node.js:

  1. Na página principal de proxies de API, clique no proxy que você 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 de registros para visualizar, 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 mostrar todas as entradas de registro que contêm a string.

Como usar a ferramenta Trace

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

Como imprimir a saída do console

É possível incorporar instruções console.log no código do Node.js e visualizar a saída na ferramenta 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 das mensagens console.log na ferramenta Trace, chame a API na ferramenta Trace e clique em Saída de todas as transações para abrir o painel de saída:

Supondo que você tenha executado o código a seguir...

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 as definições de tempo limite de destino do Nginx

Se você estiver usando o Nginx como um proxy e receber erros "Bad Gateway", 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, é 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 as definições de 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 Referência das propriedades de endpoint.

Para saber mais

Para saber mais sobre a depuração, consulte:

Próximas etapas

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