Zum Hauptinhalt springen
Die Instrumentierung von AppSignal erstellt Ereignisse für Codeabschnitte, die instrumentiert werden. Diese Ereignisse werden verwendet, um die Ausführungsdauer des Codes und die Garbage Collection einzelner Bibliotheken und Codeblöcke zu berechnen. Durch die Instrumentierung kann AppSignal Problemstellen im Code erkennen. Dadurch lässt sich feststellen, ob die Datenbankabfragen einer Anwendung langsam sind oder ob ein einzelner API-Aufruf für die größte Verlangsamung einer Anfrage verantwortlich ist. Damit der Code präzise instrumentiert wird, folgt jeder Ereignisname einer ganz bestimmten Benennungsmethode. Die Wahl eines guten Namens kann maßgeblich beeinflussen, wie AppSignal die eingehenden Daten verarbeitet und darstellt. Das Benennen von Ereignissen kann schwierig sein, aber diese kurze Erklärung, wie ein Ereignisname verwendet wird, soll Ihnen hoffentlich bei der Wahl eines guten Namens helfen. Mehr zur Instrumentierung erfahren Sie in unseren Leitfäden zur eigenen Instrumentierung:

Ereignisgruppen

Jedes von der Instrumentierung von AppSignal erzeugte Ereignis hat einen Namen. In diesem Namen ist auch die übergeordnete Gruppe des Ereignisses enthalten. Dieser Gruppenname ermöglicht es AppSignal, Ereignisse aus Datenbankabfragen und View-Rendering zusammenzufassen. Mithilfe dieser Gruppierung können wir Übersichten erstellen, die die Ausführungszeiten pro Gruppe sowie einzelne Ereignisse anzeigen. Unsere Rails-Integration erstellt zum Beispiel diese Gruppen: active_record, action_view, action_controller usw.

Benennung von Ereignissen

Ein Ereignisname ist eine Zeichenkette, die aus alphanumerischen Zeichen, Unterstrichen und Punkten besteht. Leerzeichen und Bindestriche sind nicht zulässig. Denken Sie an folgende Regex, ([a-zA-Z0-9_.]+): Wird der Ereignisname von dieser Regex akzeptiert, ist er zulässig. Beginnen wir mit einem einfachen Ereignisnamen.
Shell
sql.active_record
^   ^
|   second part (group)
first part (action)
Die Aktion eines Ereignisnamens ist alles bis zum letzten Punkt . in einem Schlüssel. Die Gruppe ist alles nach diesem Punkt. Die Gruppe eines Ereignisses ist die Codebibliothek, zu der es gehört, oder die Art der Aktion, wie z. B. eine Datenbankabfrage oder eine HTTP-Anfrage. Das funktioniert auch mit mehreren Punkten in einem Schlüssel.
Shell
fetch.partition3.database
^                ^
|                second part (group)
first part (action)
Wir verwenden dieses Benennungsschema selbst für die Ruby-Methodeninstrumentierung. Wenn ein Name mit nur einem Teil vorkommt, wird das Ereignis automatisch unter der Gruppe other eingeordnet.

Beispiele

Einige Beispiele für Schlüssel, die von AppSignal-Integrationen verwendet werden:
  • ActiveRecord: sql.active_record
  • Redis: query.redis
  • Elasticsearch: search.elasticsearch
  • ActionView: render_template.action_view und render_partial.action_view
  • Rubys Net::HTTP: request.net_http
  • Sidekiq: perform_job.sidekiq
  • Ruby-Methodeninstrumentierung:
    • method_name.ClassName.other und
    • method_name.class_method.NestedClassName.ParentModule.other