Die Ruby VM (Virtual Machine) plant die Ausführung von Ruby-Threads. Zu jedem Zeitpunkt kann nur ein Thread gleichzeitig mit dem Zustand der Ruby VM interagieren.
AppSignal unterstützt die Ruby VM sofort. Wenn AppSignal Ruby-VM-Metriken erkennt, wird ein Magic Dashboard erstellt, mit dem Sie zentrale Metriken visuell überwachen können.
Magic Dashboards
Magic Dashboards erscheinen im Dashboard-Bereich der AppSignal-App.
Das Ruby VM Magic Dashboard enthält die folgenden Graphen:
| Graph | Metriken | Tags |
|---|
| Allokierte Objekte | allocated_objects | hostname |
| Garbage Collection Count | minor_gc_count minor_gc_count gc_count | metrichostname |
| Heap-Slots | heap_live heap_free | metrichostname |
| Ruby VM | class_serialglobal_constant_stateconstant_cache_invalidations constant_cache_misses | metrichostname |
| Thread Count | thread_count | hostname |
Tags geben Ihnen eine kontextbezogene Aufschlüsselung der Performance-Informationen der Ruby VM. AppSignal meldet die folgenden Tags für die Ruby-VM-Performance:
| Name | Beschreibung |
|---|
hostname | Der Name des Hosts, von dem die Metrik gemeldet wurde. |
metric | Der gesamte Metrikwert für alle Hosts. |
AppSignal stellt jedes Tag mit einer farbigen Linie im Graphen dar:
Graph der allokierten Objekte
Der Graph der allokierten Objekte zeigt, wie viele komplexe Ruby-Werte (Objekte, nicht Strings, Integer, Booleans usw.) Speicher in der virtuellen Ruby-Maschine verwenden.
Sie können den Graphen der allokierten Objekte verwenden, um die Speichernutzung und Performance Ihrer Anwendung zu überwachen und zu optimieren.
Garbage-Collection-Count-Graph
Der GC-Counts-Graph zeigt die Anzahl der Garbage-Collection-Ereignisse/Läufe innerhalb der letzten Minute, aufgeteilt zwischen Major- und Minor-Ereignissen.
Sie können den GC-Counts-Graphen verwenden, um die Häufigkeit der Garbage Collection und deren Auswirkungen auf die Performance und Speichernutzung Ihrer Anwendung zu überwachen.
Heap-Slots-Graph
Der Heap-Slots-Graph zeigt die aktuell von der virtuellen Ruby-Maschine allokierten Heap-Slots, aufgeteilt zwischen aktiven und freien Slots.
Sie können den Heap-Slots-Graphen verwenden, um die Speicherallokation zu überwachen und mögliche Ursachen für Memory Leaks oder Fragmentierung zu identifizieren.
Ruby-VM-Graph
Die Metriken constant_cache_misses und constant_cache_invalidations sind
nur in Ruby-Versionen 3.2.0 und höher verfügbar.
Der Ruby-VM-Graph zeigt Statistiken aus der Methode RubyVM.stat über den Konstanten-Cache und die in Ihrer Anwendung erstellten Klassen.
Sie können den Ruby-VM-Graphen verwenden, um den Cache-Status von Konstantenwerten zu überwachen und zu sehen, wie Ihre Anwendung den Zustand der Ruby VM beeinflusst.
Thread-Count-Graph
Der Thread-Count-Graph zeigt die Anzahl der aktuell in Ihrer Anwendung laufenden Threads.
Sie können den Thread-Count-Graphen verwenden, um das Threading Ihrer Anwendung zu überwachen. Das Ruby VM Lock arbeitet seriell, was bedeutet, dass nur jeweils ein Thread ausgeführt werden kann. Eine hohe Thread-Anzahl kann zu Performance-Problemen führen.