Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Systeminformer | 8,883 | 8 hours ago | 110 | mit | C | |||||
A free, powerful, multi-purpose tool that helps you monitor system resources, debug software and detect malware. Brought to you by Winsider Seminars & Solutions, Inc. @ http://www.windows-internals.com | ||||||||||
Stats.js | 8,182 | 738 | 236 | a month ago | 6 | October 29, 2016 | 19 | mit | JavaScript | |
JavaScript Performance Monitor | ||||||||||
Androidperformancemonitor | 6,517 | 41 | 1 | a year ago | 10 | August 31, 2016 | 49 | apache-2.0 | Java | |
A transparent ui-block detection library for Android. (known as BlockCanary) | ||||||||||
React Intersection Observer | 3,922 | 153 | 395 | 3 months ago | 135 | July 22, 2022 | mit | TypeScript | ||
React implementation of the Intersection Observer API to tell you when an element enters or leaves the viewport. | ||||||||||
Easy Monitor | 2,852 | 8 | 7 | 8 months ago | 63 | March 30, 2020 | 1 | bsd-2-clause | JavaScript | |
企业级 Node.js 应用性能监控与线上故障定位解决方案 | ||||||||||
Myperf4j | 2,796 | 2 months ago | 6 | bsd-3-clause | Java | |||||
High performance Java APM. Powered by ASM. Try it. Test it. If you feel its better, use it. | ||||||||||
Ios Monitor Platform | 2,515 | 5 years ago | 21 | mit | ||||||
:books: iOS 性能监控 SDK —— Wedjat(华狄特)开发过程的调研和整理 | ||||||||||
Query Monitor | 1,433 | 11 days ago | 92 | gpl-2.0 | PHP | |||||
The Developer Tools Panel for WordPress | ||||||||||
React Cool Inview | 1,418 | 3 | 3 months ago | 86 | April 17, 2022 | 20 | mit | TypeScript | ||
😎 🖥️ React hook to monitor an element enters or leaves the viewport (or another element). | ||||||||||
Httpreports | 1,154 | 20 | a year ago | 99 | September 26, 2021 | 2 | mit | C# | ||
HttpReports is an APM (application performance monitor) system for .Net Core. |
A self-hosted tool to monitor the performance of your Ruby on Rails application.
This is a simple and free alternative to the New Relic APM, Datadog or other similar services.
It allows you to track:
RailsPerformance.measure do .. end
blockAll data are stored in local
Redis and not sent to any 3rd party servers.
Gem is production-ready. At least on my 2 applications with ~800 unique users per day it works perfectly.
Just don't forget to protect performance dashboard with http basic auth or check of current_user.
1. Add gem to the Gemfile (in appropriate group if needed)
2. Start rails server
3. Make a few requests to your app
4. open localhost:3000/rails/performance
5. Tune the configuration and deploy to production
Default configulation is listed below. But you can overide it.
Create config/initializers/rails_performance.rb
in your app:
RailsPerformance.setup do |config|
config.redis = Redis::Namespace.new("#{Rails.env}-rails-performance", redis: Redis.new)
config.duration = 4.hours
config.debug = false # currently not used>
config.enabled = true
# default path where to mount gem,
# alternatively you can mount the RailsPerformance::Engine in your routes.rb
config.mount_at = '/rails/performance'
# protect your Performance Dashboard with HTTP BASIC password
config.http_basic_authentication_enabled = false
config.http_basic_authentication_user_name = 'rails_performance'
config.http_basic_authentication_password = 'password12'
# if you need an additional rules to check user permissions
config.verify_access_proc = proc { |controller| true }
# for example when you have `current_user`
# config.verify_access_proc = proc { |controller| controller.current_user && controller.current_user.admin? }
# store custom data for the request
# config.custom_data_proc = proc do |env|
# request = Rack::Request.new(env)
# {
# email: request.env['warden'].user&.email, # if you are using Devise for example
# user_agent: request.env['HTTP_USER_AGENT']
# }
# end
# config home button link
config.home_link = '/'
config.skipable_rake_tasks = ['webpacker:compile']
end if defined?(RailsPerformance)
Add this line to your application's Gemfile:
gem 'rails_performance'
# or
group :development, :production do
gem 'rails_performance'
end
And then execute:
$ bundle
Create default configuration file:
$ rails generate rails_performance:install
Have a look at config/initializers/rails_performance.rb
and adjust the configuration to your needs.
You must also have installed Redis server, because this gem is storing data into it.
After installation and configuration, start your Rails application, make a few requests, and open https://localhost:3000/rails/performance
URL.
If you, for whatever reason (company policy, devise, ...) need to mount RailsPerformance yourself, feel free to do so by using the following snippet as inspiration.
You can skip the mount_at
and http_basic_authentication_*
configurations then, if you like.
# config/routes.rb
Rails.application.routes.draw do
...
# example for usage with Devise
authenticate :user, -> (user) { user.admin? } do
mount RailsPerformance::Engine, at: 'rails/performance'
end
end
You need to configure config.custom_data_proc
. And you can capture current_user, HTTP User Agent, etc. This proc is executed inside middleware, and you have access to Rack "env".
RailsPerformance.measure("some label", "some namespace") do
# your code
end
In addition it's wrapping gems internal methods and collecting performance information. See ./lib/rails_performance/gems/*
for more information.
Gem is using Redis. This is the only one dependency.
All information is stored into Redis. The default expiration time is set to config.duration
from the configuration.
Just clone the repo, setup dummy app (rails db:migrate
).
After this:
Like a regular web development.
Please note that to simplify integration with other apps all CSS/JS are bundled inside, and delivered in body of the request. This is to avoid integration with assets pipeline or webpacker.
For UI changes you need to use Bulma CSS (https://bulma.io/documentation).
The idea of this gem grew from curriosity how many RPM my app receiving per day. Later it evolutionated to something more powerful.
You are welcome to contribute. I've a big list of TODO.
If "schema" how records are stored i Redis is changed, and this is a breacking change, update: RailsPerformance::SCHEMA
to a newer value.
The gem is available as open source under the terms of the MIT License.