Skip to main content
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 Intelligence dashboard, allowing you to monitor core metrics visually.

Intelligence dashboards

Intelligence dashboards will appear in the dashboard section of the AppSignal app. The Ruby VM Intelligence dashboard in AppSignal The Ruby VM Intelligence dashboard, titled Ruby (VM) metrics, will have the following graphs: In the dashboard, the Garbage Collection Count graph is titled “GC counts”. Tags give you a contextual breakdown of Ruby VM performance information. AppSignal reports the following tags for Ruby VM performance: AppSignal will represent each tag with a colored line on the graph: Ruby VM Intelligence dashboard example graph

Allocated objects graph

The Allocated objects graph shows how many objects the Ruby virtual machine allocated since the previous measurement, one minute earlier. 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.

GC time graph

The GC time graph shows how long the Ruby VM spent in garbage collection between measurements. It only shows data when the Ruby GC profiler is enabled. You can use the GC time graph to see how much time each host spends in garbage collection.

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 metrics constant_cache_misses and constant_cache_invalidations are only available in Ruby versions 3.2.0 and higher.
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 live threads in your application’s process, including sleeping threads. 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.