Skip to content

An ActionCable rails process monitoring gem for local monitoring.

License

Notifications You must be signed in to change notification settings

WriteCodeEveryday/resource_monitor

Repository files navigation

ResourceMonitor

This is a simple rails resource monitoring gem.

Requires ActionCable and Rails 5.0+, and is optimized to run under Linux / Mac servers.

Creates a simple page under /resources/ that is updated with CPU/RAM usage in realtime.

Although not a major performance hog, this should only be run in production when there is evidence of resource overuse, look under the Usage section for instructions for disabling the gem.

Latest Version: 1.0 Last Feature Set: Complete Engine and Simplified Installation. Support for ActionController and ActiveRecord benchmarks.

Installation

Add this line to your application's Gemfile:

gem 'resource_monitor'

And then execute:

$ bundle install

Add the following to the top of your application_controller.rb file You may also add it to the controllers you think may be causing some issues.

# This should be a single line
around_action def benchmark; ResourceMonitor.benchmark(self); yield; ResourceMonitor.benchmark(self); end

You can also utilize standard callbacks and add only, except conditions

# This should be a single line (enables resource monitoring in the "index")
around_action def benchmark; ResourceMonitor.benchmark(self); yield; ResourceMonitor.benchmark(self); end, only: :index

# This should be a single line (enables resource monitoring for everything except 'index')
around_action def benchmark; ResourceMonitor.benchmark(self); yield; ResourceMonitor.benchmark(self); end, except: :index

Usage

You can try out the gem by using

$ rake resource_monitor:console

Once inside irb, you can use the following

  ResourceMonitor.benchmark(self)

Bundle install and browse to /resources/.

If you want to disable this, you can easily comment out the contents of resource_monitor_app or use an ENV variable such as below.

around_action :resource_monitor_app

def resource_monitor_app
  if ENV['MONITORING_ENABLED']
    ResourceMonitor.benchmark(self)
    yield
    ResourceMonitor.benchmark(self)
  else
    yield
  end
end

Development

After checking out the repo, run bin/setup to install dependencies.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/WriteCodeEveryday/resource_monitor.

License

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

About

An ActionCable rails process monitoring gem for local monitoring.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published