Olá, estudante! Esta é a visão inicial do New Relic. Como podem perceber, já tenho um projeto configurado de tempos passados. Não precisam se preocupar com ele. O que vamos fazer agora é configurar o nosso projeto para que ele apareça aqui junto com essas entidades do New Relic. Inclusive, guardem esse conceito de entidades, ou entity, que vamos explorá-lo mais adiante.
Configurando o projeto no New Relic
Para adicionar a configuração do Next.js ao New Relic e visualizá-la no nosso sistema, é necessário instalar o provedor do New Relic no nosso projeto. Na seção de notas de aula, você encontrará o link da documentação que apresenta o passo a passo para realizar essa configuração. Vamos realizar o processo juntos neste vídeo.
How to monitor a Next.js application
Apesar de estar em inglês, você pode selecionar todo o conteúdo e traduzi-lo. Depois, vamos percorrer a página do artigo e localizar o comando necessário para a instalação.
Comando retirado da documentação:
npm install newrelic @newrelic/next
Basicamente, instalaremos o New Relic e o newrelic/next no nosso projeto Buscante.
Após copiar os nomes, retornaremos ao nosso VSCode, interromperemos a execução do projeto e digitaremos npm i no terminal para realizar a instalação. Na sequência, colamos os nomes que copiamos da documentação.
npm i newrelic @newrelic/next
Executamos o comando e aguardamos.
Demorou um pouco para instalar essas dependências. Verificamos no arquivo package.json para garantir que foram instaladas corretamente.
package.json
{
"dependencies": {
"@newrelic/next": "^0.7.0",
"newrelic": "^11.10.4",
"next": "14.0.4",
"react": "^18",
"react-dom": "^18"
}
Agora temos o New Relic Next e o New Relic disponíveis.
Voltamos ao nosso navegador para conferir o que a documentação diz. Mais abaixo da seção onde copiamos os dois pacotes, encontramos informações sobre a necessidade de incluir a versão desses pacotes nas dependências do projeto.
Continuando na parte de configuração, é mencionado que devemos adicionar a linha de NODE_OPTIONS='-r @newrelic/next' no comando de inicialização do projeto, next start. Além disso, se prosseguirmos um pouco mais, veremos as instruções para ambas as etapas, tanto para o dev quanto para a start.
Para simplificar, podemos copiar tudo de uma vez.
Script copiado da documentação:
"scripts": {
"dev": "NODE_OPTIONS='-r @newrelic/next' next",
"build": "next build",
"start": "NODE_OPTIONS='-r @newrelic/next' next start",
"lint": "next lint"
},
Retornamos ao VS Code e na seção de scripts na linha 5, substituiremos o conteúdo pelo que copiamos da documentação do New Relic.
package.json
"scripts": {
"dev": "NODE_OPTIONS='-r @newrelic/next' next",
"build": "next build",
"start": "NODE_OPTIONS='-r @newrelic/next' next start",
"lint": "next lint"
},
Salvamos a alteração.
Vamos prosseguir com a análise para verificar se há outras alterações mencionadas que devemos realizar. Ele sugere personalizar o comando -r nas NodeOptions e também incluir o arquivo de configuração do New Relic, chamado newrelic.js. Ele fornece um exemplo desse arquivo que podemos simplesmente copiar e colar.
Agora, clicamos em "see an example config file for your Next.js app" e copiamos o arquivo completo:
"use strict";
exports.config = {
app_name: ["newrelic-nextjs-integration"],
license_key: "",
distributed_tracing: {
enabled: true,
},
logging: {
level: "info",
},
application_logging: {
forwarding: {
enabled: true,
},
},
allow_all_headers: true,
attributes: {
exclude: [
"request.headers.cookie",
"request.headers.authorization",
"request.headers.proxyAuthorization",
"request.headers.setCookie*",
"request.headers.x*",
"response.headers.cookie",
"response.headers.authorization",
"response.headers.proxyAuthorization",
"response.headers.setCookie*",
"response.headers.x*",
],
},
};
Vamos retornar ao VSCode agora.
Acessaremos a raiz do projeto e criaremos um novo arquivo chamado newrelic.js. Verificaremos se o conteúdo está completamente copiado e então o colaremos. Na linha 12, encontramos o termo app_name. Substituiremos isso por Buscante, que é o nome do nosso projeto.
newrelic.js
"use strict";
exports.config = {
app_name: ["buscante"],
license_key: "",
distributed_tracing: {
enabled: true,
},
logging: {
level: "info",
},
application_logging: {
forwarding: {
enabled: true,
},
},
allow_all_headers: true,
attributes: {
exclude: [
"request.headers.cookie",
"request.headers.authorization",
"request.headers.proxyAuthorization",
"request.headers.setCookie*",
"request.headers.x*",
"response.headers.cookie",
"response.headers.authorization",
"response.headers.proxyAuthorization",
"response.headers.setCookie*",
"response.headers.x*",
],
},
};
Após salvar, na linha 16, será necessário inserir a chave de licença exclusiva do NewRelic.
Para encontrar suas chaves de projeto e de uso, podemos começar no NewRelic. Retornando ao navegador, clicamos em "Add Data" do lado superior esquerdo. Uma opção é seguir a instalação guiada clicando em "Guided install". Ao acessar essa guia, na lateral direita, você encontrará a seção onde pode localizar sua chave de licença (em inglês, "Looking for your license key?").
Lá, haverá um botão para gerar e copiar a chave, "Generate and copy license key". Vamos proceder com isso: clicamos no botão para gerar a chave, que será automaticamente copiada para a área de transferência.
Ao retornar à nossa aplicação no VSCode, colamos a chave de licença.
newrelic.js
/
license_key: "b4bf4b45cfdb314f9c7cd2abb8952bcFFFFNRAL",
// código omitido
Essa chave é única para cada conta, então é essencial gerar a sua para que a configuração do NewRelic funcione corretamente. Agora, salvamos o arquivo.
Conclusão e Próximos Passos
A configuração foi concluída em nossa aplicação. No entanto, para que isso seja refletido no NewRelic e esteja disponível em ambiente de produção, será necessário realizar um novo commit e deploy da aplicação. Faça isso rapidamente e nos encontraremos no próximo vídeo para configurar o NewRelic do outro lado.
Realizarei o commit e efetuarei o deploy. Você precisará fazer o mesmo do seu lado e nos vemos no próximo vídeo!