O agente Ruby automaticamente instrumento rack middlewares. Se você não estiver familiarizado com os fundamentos dos middlewares Rack, revise os recursos vinculados pelo guia Rails on Rack. Além disso, o agente Ruby fornece alguns recursos via middlewares Rack:
instrumentação automática para
A New Relic instala automaticamente esses middlewares para Rails e Sinatra.
Instrumentação de rack
As duas maneiras mais comuns de configurar middlewares Rack são a API Rack::Builder
(geralmente de config.ru) e a configuração stack de middleware Rails:
Visualizando dados de middleware
Você pode visualizar dados de middleware no APM.
Desativando a instrumentação do Rack
Se não quiser instrumentar middlewares de Rack, você pode desativar a instrumentação de middleware de Rack com a configuração disable_middleware_instrumentation
. Você também pode ignorar transações específicas.
Instalando manualmente os middlewares do agente Ruby
A implementação do recurso de rastreamento multiaplicativo do agente Ruby da New Relic usa instrumentação de middleware Rack para ler e gravar cabeçalhos HTTP necessários para passar informações entre aplicativos de monitor. Se você estiver usando o Sinatra, desativou a instrumentação de middleware conforme descrito acima e deseja usar o rastreamento multiaplicativo, deverá adicionar manualmente o middleware NewRelic::Rack::AgentHooks
à sua stack de middleware.
Importante
A partir da versão 8.0.0, o rastreamento multiaplicativo está obsoleto em favor do distributed tracing. Quando ativado, distributed tracing é configurado automaticamente para todos os aplicativos baseados em rack, sem a necessidade de um middleware adicional.
Se quiser continuar usando o rastreamento multiaplicativo, você precisará atualizar sua configuração.
Instrumentação manual de rack
Versões anteriores do agente Ruby suportavam middlewares Rack instrumentados manualmente por meio do módulo NewRelic::Agent::Instrumentation::Rack
. Esta instrumentação foi removida e não há garantia de funcionamento no agente Ruby versão 4.0.0 ou superior. Esta forma de instrumentação manual é desnecessária na instrumentação automática de middleware. Recomendamos que você remova referências a este módulo do seu código após atualizar para 3.9.0 ou superior.