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.