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

É 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 aborda 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 você notar um desempenho lento, poderá resolver o problema aumentando o tamanho padrão do pool de conexões do Node.js com maxSockets ou desativando o pool de sockets. Para mais informações e exemplos de código, consulte Dicas de desempenho do Node.js: agrupamento de sockets na comunidade do Apigee.

Como visualizar registros do Node.js

Para conferir informações de registro sobre seu 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 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 mostrar todas as entradas de registro que contêm a string.

Como usar a ferramenta de rastreamento

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

Como imprimir a saída do console

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

Supondo que você tenha executado 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 as definições de tempo limite de destino do Nginx

Se você estiver usando o Nginx como um proxy e encontrar erros de "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 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 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 a Referência de propriedades do endpoint.

Para saber mais

Para saber mais sobre depuração, consulte:

Próximas etapas

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