The Ruby VM (Virtual Machine) schedules Ruby threads for execution. At any given point, only one thread at a time can interact with the state of the Ruby VM.
AppSignal supports Ruby VM out of the box. When AppSignal detects Ruby VM metrics, it will create an Automated Dashboard, allowing you to monitor core metrics visually.
Automated dashboards will appear in the dashboard section of the AppSignal app.
The Ruby VM automated dashboard will have the following graphs:
|Garbage Collection Count
Tags give you a contextual breakdown of Ruby VM performance information. AppSignal reports the following tags for Ruby VM performance:
|The name of the host the metric was reported from.
|The total metric value for all hosts.
AppSignal will represent each tag with a colored line on the graph:
Allocated objects graph
The Allocated objects graph shows how many complex Ruby values (objects, not strings, integers, booleans, etc.) are using memory in the Ruby virtual machine.
You can use the Allocated objects graph to monitor and optimize your application's memory usage and performance.
Garbage collection count graph
The GC counts graph shows the amount of garbage collection events/runs during the last minute, split between major and minor events.
You can use the GC counts graph to monitor the frequency of garbage collection and its impact on your application’s performance and memory usage.
Heap slots graph
The Heap slots graph shows the heap slots currently allocated by the Ruby virtual machine, split between live and free slots.
You can use the Heap slots graph to monitor memory allocation and identify the potential causes of memory leaks or fragmentation.
Ruby VM graph
The Ruby VM graph shows statistics from the RubyVM.stat method about the constant cache and the classes created in your application.
You can use the Ruby VM graph to monitor the cache status of constant values and how your application affects the Ruby VM state.
Thread count graph
The Thread count graph shows the number of threads currently executing in your application.
You can use the Thread count graph to monitor your application's threading. Ruby VM Lock runs serially, meaning it can only execute one thread at a time. A high thread count may lead to performance problems.