PlainApm for Ruby
PlainAPM monitors your Rails application and helps you understand changes in its performance.
Installation
Add this line to your application's Gemfile:
gem 'plain_apm'
And then execute:
bundle install
Or install it yourself as:
gem install plain_apm
Ractor and TracePoint issues on Ruby 3.0
PlainAPM extension to track object allocation on a per-thread basis is built on top of Ruby's TracePoint API.
However, Rubies 3.0, 3.1, 3.2 and 3.3 as of January 2024 contain bugs which, when Tracepoints are used in together with Ractors, can cause crashes or inconsistent tracing results.
Build process for the native extension contains checks for presence of these bugs and disables object allocation tracing accordingly.
If you are sure your app is not using Ractors, you can override this by installing plain_apm with --enable-object-tracing-override flag:
gem install plain_apm -- --enable-object-tracing-override
When using bundler, you can configure it to pass this flag to gem install by running:
bundle config set --global build.plain_apm --enable-object-tracing-override
See also:
Usage
To be able to use the gem, collect, and view your app's performance metrics, request an APP key on plainapm web site and follow the installation instructions.
Contributing
Bug reports and pull requests are welcome on GitHub.
Alternatively, feel free to send questions, suggestions, and feedback to PlainAPM support.