Problème
Vous utilisez l'agent New Relic Ruby avec l'attachement automatique Kubernetes APM pour un framework non Rails (comme Sinatra), mais aucune donnée APM n'apparaît dans votre compte New Relic.
Solution
Appelez explicitement Bundler.require au début du processus de démarrage de votre application.
Pour de nombreux frameworks, cela peut être fait en l'ajoutant à votre fichier d'application principal ou à un fichier config.ru avant que vos classes d'application ne soient définies.
Exemple (config.ru ou app.rb):
# config.ru
require 'bundler'Bundler.require
# ... rest of your application's startup coderequire_relative './my_sinatra_app'run MySinatraAppAprès avoir ajouté ce code, redéployez votre application. Les données devraient commencer à apparaître dans New Relic dans quelques minutes.
Cause
L'attachement automatique de Kubernetes APM fonctionne en corrigeant la méthode Bundler::Runtime#require pour injecter le gemme newrelic_rpm dans votre application.
Alors que les applications Rails appellent automatiquement Bundler.require pendant leur processus de démarrage, de nombreux autres frameworks ne le font pas. Si Bundler.require n'est jamais appelé, l'agent New Relic n'est jamais chargé dans l'environnement de votre application. L'ajout de cette ligne garantit que l'agent est chargé comme prévu.