• EnglishEspañol日本語한국어Português
  • EntrarComeçar agora

Esta tradução de máquina é fornecida para sua comodidade.

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

Criar um problema

Ignorando transação específica

O New Relic for Ruby permite desabilitar seletivamente a instrumentação para solicitações específicas em seu aplicativo Rails, Roda ou Sinatra.

Bloqueando toda a instrumentação

Chame newrelic_ignore sem argumentos de dentro de um controlador Rails, aplicativo Roda ou aplicativo Sinatra para evitar a instrumentação de todas as solicitações atendidas por esse controlador ou aplicativo:

newrelic_ignore

Usar newrelic_ignore evita que o agente registre quaisquer dados de desempenho (métrica, rastreamento de transação, evento, erros de rastreamento e assim por diante) para a transação de destino e também impedirá que a transação contribua para sua pontuação geral do Apdex.

Ignorando ações específicas com Rails

Se quiser ignorar apenas ações específicas com um controlador Rails, você pode usar as opções :only ou :except com newrelic_ignore.

Por exemplo, para ignorar apenas as ações index e show no controlador, use:

newrelic_ignore :only => [:index, :show]

Para ignorar todas as ações no controlador except index:

newrelic_ignore :except => [:index]

Ignorando rotas específicas com Roda

Ignore rotas específicas em aplicativos Roda passando uma rota estilo Roda para newrelic_ignore de fora do bloco route de seu aplicativo Roda. Para obter mais informações, consulte Roda: ignorando rotas.

Ignorando rotas específicas com Sinatra

Se desejar ignorar apenas rotas específicas no seu aplicativo Sinatra, você poderá passar uma definição de rota no estilo Sinatra para newrelic_ignore no seu aplicativo Sinatra. Para obter mais informações, consulte Sinatra: Ignorando rotas.

Ignorando contribuições do Apdex

Se você quiser evitar que todas as ações em um controlador contribuam para sua pontuação Apdex, mas ainda quiser outros dados de desempenho, use newrelic_ignore_apdex:

newrelic_ignore_apdex

Em um aplicativo Rails, newrelic_ignore_apdex suporta as mesmas opções:only e :except que newrelic_ignore. Em uma aplicação Roda ou Sinatra, ele aceitará a mesma rota estilo Roda ou rota estilo Sinatra para direcionar transações específicas.

Bloqueando a instrumentação do browser

Usar newrelic_ignore_enduser evita que o agente insira automaticamente o JavaScript usado para capturar dados . A instrumentação do lado do servidor não será afetada.

Para evitar a injeção do agente no browser para todas as ações em um controlador, adicione uma chamada como esta à classe do controlador:

newrelic_ignore_enduser

Em um aplicativo Rails, newrelic_ignore_enduser suporta as mesmas opções:only e :except que newrelic_ignore. Em uma aplicação Roda ou Sinatra, ele aceitará a mesma rota estilo Roda ou rota estilo Sinatra para direcionar transações específicas.

Ignorando a transação dinamicamente

Em alguns casos, você pode basear a decisão de ignorar uma transação específica em critérios conhecidos apenas em tempo de execução, durante a solicitação. Para cenários como este, os mecanismos declarativos explicados acima não são adequados. A partir do agente Ruby versão 3.9.2, em vez disso, você pode usar a seguinte família de chamadas de API a partir de qualquer ponto da sua transação:

NewRelic::Agent.ignore_transaction
NewRelic::Agent.ignore_apdex
NewRelic::Agent.ignore_enduser

Esses métodos terão resultados semelhantes às chamadas newrelic_ignore, newrelic_ignore_apdex e newrelic_ignore_enduser , mas podem ser chamados durante uma solicitação em vez de durante a definição da classe.

Ignorando transação por URL com configuração

Você pode ignorar a transação por URL usando a configuração rules.ignore_url_regexes :

rules:
ignore_url_regexes: ["secret", "^/admin"]

Esta configuração impedirá apenas que eventos de transação que correspondam ao padrão definido sejam relatados. Use qualquer método da família newrelic_ignore* se desejar impedir que todos os dados, como dados trace , sejam relatados a partir de uma transação.

Observe que as expressões regulares não incluem nenhum tipo de ancoragem por padrão. O /secret/ regex corresponderá a 'newrelic.com/secret/login' e também corresponderá a 'newrelic.com/users/secretpanda'. O regex de administração ancorado corresponderá a 'newrelic.com/admin/praetorians' mas não corresponderá a 'newrelic.com/users/totally-real-admin'.

Se necessário, você também pode fornecer uma lista de regexes em uma string separada por vírgula, permitindo definir ignorar regexes com uma variável de ambiente:

NEW_RELIC_RULES_IGNORE_URL_REGEXES="secret,^/admin"

Como sempre, a configuração das variáveis de ambiente substituirá a configuração em newrelic.yml.

Resolução de problemas

A família de métodos newrelic_ignore* só funcionará dentro das classes do controlador Rails, fora do bloco route do aplicativo Roda (subclasses de Roda) ou dentro do aplicativo Sinatra (subclasses de Sinatra::Base). Outro aplicativo deve usar a família NewRelic::Agent.ignore_* de chamadas de cada solicitação que você deseja ignorar, o que funcionará em qualquer contexto.

Se você obtiver um NoMethodError ao tentar usar newrelic_ignore de dentro de um controlador Rails, aplicativo Roda ou aplicativo Sinatra, certifique-se de que newrelic_rpm foi necessário antes de tentar chamar newrelic_ignore dentro de sua definição de classe.

Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.