Zum Hauptinhalt springen

Hinweise:

  • Dieses Feature ist seit Ruby-Gem-Version 1.3 verfügbar und funktioniert nur für Klassen.
  • Ruby 3.0-Unterstützung für Keyword-Argumente wurde in Ruby-Gem 2.11.4 hinzugefügt.
Manchmal sind Instrumentierungs-Blöcke nicht genau genug. Jede Anwendung ist anders, und ebenso der Code, der sie ausführt. Entwickler wissen, welchen Code und, genauer gesagt, welche Methoden zu instrumentieren sind. Es ist möglich, Methoden in Ihrem Ruby-Code direkt mit AppSignal zu instrumentieren. Mit dem appsignal Ruby-Gem können Sie unsere Objekt-Integrationen verwenden, die Ihnen einige nützliche Helper dafür bereitstellen.

Installation

Aktivieren Sie die Objekt-Integration, indem Sie die folgende Zeile nach dem Laden des appsignal-Gems selbst requiren
require 'appsignal/integrations/object'
und fahren Sie damit fort, die Methoden anzugeben, die Sie in einer beliebigen Klasse testen möchten.

Beispiel

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

Verwendung

Wir haben unterschiedliche Helper für Instanzmethoden und Klassenmethoden, appsignal_instrument_method bzw. appsignal_instrument_class_method. Rufen Sie sie auf Klassenebene in jeder Ruby-Klasse auf, auch in denen aus der Ruby-Standardbibliothek, und beginnen Sie mit der Instrumentierung. Sie müssen nichts weiter in der Klasse einbinden; sobald Sie die Integrationsdatei laden, wird sie überall verfügbar. Instrumentieren Sie eine beliebige Methode, indem Sie den Helper mit dem Namen der Methode aufrufen, die Sie instrumentieren möchten. Wenn die Methode nicht existiert, wird ein Fehler ausgelöst, genau wie Ruby es standardmäßig tun würde. Sobald ein Request mit dieser Art von Instrumentierung von AppSignal verarbeitet wurde, können Sie die Methoden-Instrumentierung in der Event-Aufschlüsselung auf der Sample-Seite sehen. Event tree with method instrumentation Sie können den Namen des Events, das an uns gesendet wird, auch mit der Option :name anpassen.
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