Passer au contenu principal

Remarques :

  • Cette fonctionnalité est disponible depuis la version 1.3 de la gem Ruby et ne fonctionne que pour les classes.
  • La prise en charge de Ruby 3.0 pour les arguments par mots-clés a été ajoutée dans la gem Ruby 2.11.4.
Parfois, les blocs d’instrumentation ne sont pas suffisamment précis. Chaque application est différente, tout comme le code qui l’exécute. Les développeurs savent quel code et, plus précisément, quelles méthodes instrumenter. Il est possible d’instrumenter des méthodes dans votre code Ruby directement avec AppSignal. En utilisant la gem Ruby appsignal, vous pouvez utiliser nos intégrations d’objet qui vous fournissent des assistants utiles pour le faire.

Installation

Activez l’intégration d’objet en exigeant la ligne suivante après le chargement de la gem appsignal elle-même
require 'appsignal/integrations/object'
puis procédez en spécifiant les méthodes que vous voulez tester sur n’importe quelle classe que vous voulez.

Exemple

require 'appsignal'
require 'appsignal/integrations/object'

class Foo
  def bar
    1
  end
  appsignal_instrument_method :bar

  def self.bar
    2
  end
  appsignal_instrument_class_method :bar
end

Foo.new.bar
# => 1
Foo.bar
# => 2

Utilisation

Nous avons différents assistants pour les méthodes d’instance et les méthodes de classe, appsignal_instrument_method et appsignal_instrument_class_method respectivement. Appelez-les au niveau de la classe dans n’importe quelle classe Ruby, même celles de la bibliothèque standard Ruby, et commencez à instrumenter. Vous n’avez besoin de rien d’autre dans la classe, une fois que vous chargez le fichier d’intégration, il devient disponible partout. Instrumentez n’importe quelle méthode en appelant l’assistant avec le nom de la méthode que vous voulez instrumenter. Si la méthode n’existe pas, cela lèvera une erreur, comme Ruby le ferait par défaut. Une fois qu’une requête a été traitée par AppSignal avec ce type d’instrumentation, vous pourrez voir l’instrumentation de la méthode dans la répartition des événements sur la page d’échantillon. Arbre d'événements avec instrumentation de méthodes Vous pouvez également personnaliser le nom de l’événement qui nous est envoyé en utilisant l’option :name.
class Foo
  def bar
  end
  appsignal_instrument_method :bar

  def self.bar
  end
  appsignal_instrument_class_method :bar, name: "bar.class_method.Foo.methods"
end