Gem Version

SolidApm

Rails engine to manage APM data without using a third party service.

Installation

Add to your Gemfile:

bin/bundle add solid_apm

Mount the engine in your routes file:

# config/routes.rb
Rails.application.routes.draw do
  mount SolidApm::Engine => "/solid_apm"
end

Routing constraint can be use to authorize access. See Routing constraint for more information.

Configure the database connection:

# config/initializers/solid_apm.rb
SolidApm.connects_to = { database: { writing: :solid_apm } }

Install and run the migrations:

DATABASE=solid_apm bin/rails solid_apm:install:migrations

Usage

Go to http://localhost:3000/solid_apm and start monitoring your application.

Add context

class ApplicationController
  before_action do
    SolidApm.set_context(user_id: current_user&.id)
  end
end

TODOs

Features

  • [ ] Better handle subscribing to ActiveSupport notifications
  • [ ] Custom events

Interface

  • [ ] Paginate transactions list
  • [ ] Allow date range transactions index

Contributing

Contribution directions go here.

Release

bin/bump major|minor|patch
# GitHub Actions will take care of the rest

License

The gem is available as open source under the terms of the MIT License.