A New Relic oferece diversas ferramentas para ajudar a obter as informações necessárias para fornecer métricas úteis sobre sua aplicação Node.js. Esses incluem:
- Lendo os nomes das rotas (se usados) dos roteadores Express e Restify
- Usando a API para nomear a solicitação atual, seja com nomes simples ou grupos de controladores com ações
- Regras de suporte armazenadas na configuração do seu agente que podem marcar solicitações para serem renomeadas ou ignoradas com base em expressões regulares correspondentes aos URLs brutos da solicitação (também disponíveis como chamada de API)
O número de nomes que o New Relic rastreia precisa ser pequeno o suficiente para que a experiência do usuário seja robusta. Ele também precisa ser grande o suficiente para fornecer a quantidade certa de informações (sem sobrecarregar você com dados) para que você possa identificar pontos problemáticos em seu aplicativo com mais facilidade.
Para obter mais informações, consulte a documentação de configuração do agente Node.js , a documentação da API do agente Node.js no Github e o aplicativo de exemplo do agente Node.js.
Solicitar nomes
O agente Node.js captura o método HTTP junto com um caminho potencialmente parametrizado (como /user/:id
) ou uma expressão regular (como /^/user/([-0-9a-f]+)$/
). Essas informações passam a fazer parte do nome da solicitação.
Se você tiver suporte para rastreamento lento da transação e tiver adicionado 'request.parameters.*'
a attributes.include
em seu arquivo de configuração, o rastreamento da transação também terá os parâmetros da solicitação e seus valores anexados. Se você não gostar dos nomes de solicitação que o agente Node.js usa, poderá usar a chamada de API para criar nomes mais descritivos.
Dica
Se agrupar suas solicitações sob o nome genérico, /*
será suficiente e você não precisará personalizar seu arquivo de configuração ou chamada de API.
Requisitos
A New Relic usa nomes de solicitação para agrupar solicitações para muitos gráficos e tabelas. O valor dessas visualizações diminuirá à medida que o número de nomes de solicitações diferentes aumentar.
Por exemplo, não inclua dados potencialmente dinâmicos, como GUIDs, IDs numéricos ou carimbo de data/hora nos nomes de solicitação que você criar. Se sua solicitação for lenta o suficiente para gerar um rastreamento da transação, esse trace conterá a URL original. Se você ativar a captura de parâmetro, o parâmetro também será anexado ao trace.
Dica
Evite ter mais de 50 nomes de transação diferentes. Por exemplo, se você tiver mais de algumas centenas de nomes de solicitações diferentes, repense sua estratégia de nomenclatura.
Evite problemas de agrupamento métrico
A API de nomenclatura de solicitações ajuda a New Relic a evitar problemas ao tentar lidar com muitas métricas, o que às vezes é chamado de "explosão métrica". A New Relic possui diversas estratégias para lidar com essas questões; o mais grave é simplesmente adicionar o aplicativo ofensivo à sua lista de negações.
O principal motivo para você ter cuidado ao usar essas ferramentas de nomenclatura de solicitações é evitar que isso aconteça com seu aplicativo. Para mais informações, veja questões de agrupamento métrico.
Diretrizes
Defina suas regras de configuração das mais específicas às mais gerais. As primeiras regras listadas em seu arquivo de configuração ou adicionadas com a API de nomenclatura de transação do Node.js serão aplicadas primeiro e devem ser estritamente de destino. Regras "fall-through" mais gerais devem ser adicionadas no final da lista, porque serão avaliadas na ordem em que foram configuradas ou adicionadas usando a API de nomenclatura de transação do Node.js.
Carregar a API
Certifique-se de que carregar o módulo New Relic seja a primeira coisa que seu aplicativo faz, pois ele precisa ser inicializado antes que o restante do seu aplicativo seja carregado:
const newrelic = require('newrelic');
Isso retorna a API Node.js do New Relic. Você pode solicitar o módulo com segurança de vários módulos em seu aplicativo, pois ele só é inicializado uma vez.
Solicitar chamada de API
Aqui está um resumo da chamada de API de solicitação para o agente Node.js da New Relic.
Chamada de API de instrumentação personalizada
Use esta chamada de API para expandir sua instrumentação com instrumentação personalizada.
Métrica chamada personalizada de API
Use esta chamada de API para registrar métricas arbitrárias adicionais.
Evento personalizado chamada de API
Use esta chamada de API para registrar eventos adicionais:
Métodos de manipulação de transação
Use esta chamada de API para interagir com a transação atual
Regras para nomear e ignorar solicitações
Se não quiser colocar chamadas para o módulo New Relic diretamente no código do seu aplicativo, você poderá usar regras baseadas em padrões para nomear solicitações. Existem dois conjuntos de regras: um para renomear solicitações e outro para marcar solicitações para serem ignoradas pela instrumentação do New Relic.
Aqui está a estrutura das regras no agente Node.js da New Relic.
Aqui estão exemplos completos de como as regras são incluídas no arquivo de configuração:
Chamada de API para regras
Aqui estão as chamadas de API para nomear e ignorar regras com o agente Node.js da New Relic.