/
APM - NodeJS

APM - NodeJS

Instalação do APM em sua aplicação

Adicione o módulo elastic-apm-node como uma dependência ao seu aplicativo:

npm install elastic-apm-node --save

Inicialização Manual

Para as aplicações NodeJS, iremos fazer o setup do agente APM utilizando variáveis de ambiente. Para isto, precisamos incluir na aplicação o seguinte código:

// Start the agent before any thing else in your app var apm = require('elastic-apm-node').start()

Essa configuração irá trazer automaticamente o agente do APM, e precisamos informar suas variáveis através do arquivo de variáveis de ambiente da aplicação:

ELASTIC_APM_SERVICE_NAME=<service name> ELASTIC_APM_SECRET_TOKEN=<token> ELASTIC_APM_SERVER_URL=<server url> ELASTIC_APM_ENVIRONMENT=$config_env

Métodos alternativos de Inicialização do APM

require('elastic-apm-node').start(...)

A maneira mais comum de iniciar o agente APM é exigir o módulo elastic-apm-node e chamar o método .start() na parte superior do módulo principal. Isso permite que você use qualquer um dos métodos para configurar o agente.

 

require('elastic-apm-node/start')

Outra maneira de iniciar o agente é com o módulo elastic-apm-node/start que importa e inicia o agente.

Este método de início existe para aqueles que usam uma ferramenta como Babel ou esbuild para traduzir/transpilar de código usando módulos ES (como no exemplo a seguir) para código usando CommonJS. Ele garante que o agente APM seja iniciado antes de outras importações no mesmo arquivo. Consulte as importações do módulo ES içado abaixo para obter detalhes.

Uma limitação dessa abordagem é que você não pode configurar o agente com um objeto de opções, mas precisa confiar em um dos outros métodos de configuração, como definir as variáveis de ambiente ELASTIC_APM_....

 

node -r elastic-apm-node/start ...

Outra maneira de iniciar o agente é com a opção de linha de comando -r elastic-apm-node/start para node. Isso importará e iniciará o agente do APM antes do início do código do aplicativo. Este método permite habilitar o agente sem tocar em nenhum código. Este é o método de início recomendado para monitorar as funções do AWS Lambda.

A opção -r, --require também pode ser especificada por meio da variável de ambiente NODE_OPTIONS:


Para casos de uso mais específicos, como por exemplo a utilização do TypeScript, consultar a documentação oficial da Elastic: https://www.elastic.co/guide/en/apm/agent/nodejs/current/set-up.html