igorkasyanchuk / rails_performance

Monitor performance of you Rails applications (self-hosted and free)
https://www.railsjazz.com/
MIT License
976 stars 53 forks source link

undefined method `default?' for nil:NilClass #34

Closed jobygoude closed 1 year ago

jobygoude commented 3 years ago

My setup:

Config file:

# initializer/rails_performance.rb
RailsPerformance.setup do |config|
  redis_url       = ENV.fetch("REDIS_URL")
  config.redis    = Redis::Namespace.new("#{ENV.fetch('APP_NAMESPACE')}-rails-performance", redis: Redis.new(url: "#{redis_url}/1"))
  config.duration = 4.hours

  config.debug    = true # currently not used>
  config.enabled  = Rails.application.config.rails_performance_enabled

  # default path where to mount gem,
  # alternatively you can mount the RailsPerformance::Engine in your routes.rb
  config.mount_at = '/monitoring/performance'

  # protect your Performance Dashboard with HTTP BASIC password
  config.http_basic_authentication_enabled   = true
  config.http_basic_authentication_user_name = Rails.application.config.rails_performance_http_basic_authentication_user_name
  config.http_basic_authentication_password  = Rails.application.config.rails_performance_http_basic_authentication_password

  # 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? }
end if defined?(RailsPerformance)

And I have an error when visiting the page /monitoring/performance:

image

Full trace :

rails_performance (1.0.1) app/views/rails_performance/rails_performance/index.html.erb:3
actionview (6.1.1) lib/action_view/base.rb:247:in `public_send'
actionview (6.1.1) lib/action_view/base.rb:247:in `_run'
actionview (6.1.1) lib/action_view/template.rb:154:in `block in render'
activesupport (6.1.1) lib/active_support/notifications.rb:205:in `instrument'
actionview (6.1.1) lib/action_view/template.rb:345:in `instrument_render_template'
actionview (6.1.1) lib/action_view/template.rb:152:in `render'
actionview (6.1.1) lib/action_view/renderer/template_renderer.rb:61:in `block (2 levels) in render_template'
activesupport (6.1.1) lib/active_support/notifications.rb:203:in `block in instrument'
activesupport (6.1.1) lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport (6.1.1) lib/active_support/notifications.rb:203:in `instrument'
actionview (6.1.1) lib/action_view/renderer/template_renderer.rb:56:in `block in render_template'
actionview (6.1.1) lib/action_view/renderer/template_renderer.rb:71:in `block in render_with_layout'
activesupport (6.1.1) lib/active_support/notifications.rb:203:in `block in instrument'
activesupport (6.1.1) lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport (6.1.1) lib/active_support/notifications.rb:203:in `instrument'
actionview (6.1.1) lib/action_view/renderer/template_renderer.rb:70:in `render_with_layout'
actionview (6.1.1) lib/action_view/renderer/template_renderer.rb:55:in `render_template'
actionview (6.1.1) lib/action_view/renderer/template_renderer.rb:11:in `render'
actionview (6.1.1) lib/action_view/renderer/renderer.rb:61:in `render_template_to_object'
actionview (6.1.1) lib/action_view/renderer/renderer.rb:29:in `render_to_object'
actionview (6.1.1) lib/action_view/rendering.rb:117:in `block in _render_template'
actionview (6.1.1) lib/action_view/base.rb:273:in `in_rendering_context'
actionview (6.1.1) lib/action_view/rendering.rb:116:in `_render_template'
actionpack (6.1.1) lib/action_controller/metal/streaming.rb:218:in `_render_template'
actionview (6.1.1) lib/action_view/rendering.rb:103:in `render_to_body'
actionpack (6.1.1) lib/action_controller/metal/rendering.rb:52:in `render_to_body'
actionpack (6.1.1) lib/action_controller/metal/renderers.rb:142:in `render_to_body'
actionpack (6.1.1) lib/abstract_controller/rendering.rb:25:in `render'
actionpack (6.1.1) lib/action_controller/metal/rendering.rb:36:in `render'
actionpack (6.1.1) lib/action_controller/metal/instrumentation.rb:46:in `block (2 levels) in render'
/usr/local/lib/ruby/2.7.0/benchmark.rb:308:in `realtime'
activesupport (6.1.1) lib/active_support/core_ext/benchmark.rb:14:in `ms'
actionpack (6.1.1) lib/action_controller/metal/instrumentation.rb:46:in `block in render'
actionpack (6.1.1) lib/action_controller/metal/instrumentation.rb:86:in `cleanup_view_runtime'
activerecord (6.1.1) lib/active_record/railties/controller_runtime.rb:39:in `cleanup_view_runtime'
actionpack (6.1.1) lib/action_controller/metal/instrumentation.rb:45:in `render'
actionpack (6.1.1) lib/action_controller/metal/implicit_render.rb:35:in `default_render'
actionpack (6.1.1) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
actionpack (6.1.1) lib/abstract_controller/base.rb:228:in `process_action'
actionpack (6.1.1) lib/action_controller/metal/rendering.rb:30:in `process_action'
actionpack (6.1.1) lib/abstract_controller/callbacks.rb:42:in `block in process_action'
activesupport (6.1.1) lib/active_support/callbacks.rb:117:in `block in run_callbacks'
actiontext (6.1.1) lib/action_text/rendering.rb:20:in `with_renderer'
actiontext (6.1.1) lib/action_text/engine.rb:55:in `block (4 levels) in <class:Engine>'
activesupport (6.1.1) lib/active_support/callbacks.rb:126:in `instance_exec'
activesupport (6.1.1) lib/active_support/callbacks.rb:126:in `block in run_callbacks'
activesupport (6.1.1) lib/active_support/callbacks.rb:137:in `run_callbacks'
actionpack (6.1.1) lib/abstract_controller/callbacks.rb:41:in `process_action'
actionpack (6.1.1) lib/action_controller/metal/rescue.rb:22:in `process_action'
actionpack (6.1.1) lib/action_controller/metal/instrumentation.rb:34:in `block in process_action'
activesupport (6.1.1) lib/active_support/notifications.rb:203:in `block in instrument'
activesupport (6.1.1) lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport (6.1.1) lib/active_support/notifications.rb:203:in `instrument'
actionpack (6.1.1) lib/action_controller/metal/instrumentation.rb:33:in `process_action'
actionpack (6.1.1) lib/action_controller/metal/params_wrapper.rb:249:in `process_action'
activerecord (6.1.1) lib/active_record/railties/controller_runtime.rb:27:in `process_action'
actionpack (6.1.1) lib/abstract_controller/base.rb:165:in `process'
actionview (6.1.1) lib/action_view/rendering.rb:39:in `process'
actionpack (6.1.1) lib/action_controller/metal.rb:190:in `dispatch'
actionpack (6.1.1) lib/action_controller/metal.rb:254:in `dispatch'
actionpack (6.1.1) lib/action_dispatch/routing/route_set.rb:50:in `dispatch'
actionpack (6.1.1) lib/action_dispatch/routing/route_set.rb:33:in `serve'
actionpack (6.1.1) lib/action_dispatch/journey/router.rb:50:in `block in serve'
actionpack (6.1.1) lib/action_dispatch/journey/router.rb:32:in `each'
actionpack (6.1.1) lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack (6.1.1) lib/action_dispatch/routing/route_set.rb:842:in `call'
railties (6.1.1) lib/rails/engine.rb:539:in `call'
railties (6.1.1) lib/rails/railtie.rb:207:in `public_send'
railties (6.1.1) lib/rails/railtie.rb:207:in `method_missing'
actionpack (6.1.1) lib/action_dispatch/routing/mapper.rb:20:in `block in <class:Constraints>'
actionpack (6.1.1) lib/action_dispatch/routing/mapper.rb:49:in `serve'
actionpack (6.1.1) lib/action_dispatch/journey/router.rb:50:in `block in serve'
actionpack (6.1.1) lib/action_dispatch/journey/router.rb:32:in `each'
actionpack (6.1.1) lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack (6.1.1) lib/action_dispatch/routing/route_set.rb:842:in `call'
sentry-rails (4.4.0) lib/sentry/rails/rescued_exception_interceptor.rb:12:in `call'
warden (1.2.9) lib/warden/manager.rb:36:in `block in call'
warden (1.2.9) lib/warden/manager.rb:34:in `catch'
warden (1.2.9) lib/warden/manager.rb:34:in `call'
config/initializers/mountapi.rb:165:in `rescue in call'
config/initializers/mountapi.rb:162:in `call'
rack (2.2.3) lib/rack/etag.rb:27:in `call'
rack (2.2.3) lib/rack/conditional_get.rb:27:in `call'
rack (2.2.3) lib/rack/head.rb:12:in `call'
activerecord (6.1.1) lib/active_record/migration.rb:601:in `call'
actionpack (6.1.1) lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
activesupport (6.1.1) lib/active_support/callbacks.rb:98:in `run_callbacks'
actionpack (6.1.1) lib/action_dispatch/middleware/callbacks.rb:26:in `call'
actionpack (6.1.1) lib/action_dispatch/middleware/executor.rb:14:in `call'
actionpack (6.1.1) lib/action_dispatch/middleware/actionable_exceptions.rb:18:in `call'
actionpack (6.1.1) lib/action_dispatch/middleware/debug_exceptions.rb:29:in `call'
actionpack (6.1.1) lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
railties (6.1.1) lib/rails/rack/logger.rb:37:in `call_app'
railties (6.1.1) lib/rails/rack/logger.rb:26:in `block in call'
activesupport (6.1.1) lib/active_support/tagged_logging.rb:99:in `block in tagged'
activesupport (6.1.1) lib/active_support/tagged_logging.rb:37:in `tagged'
activesupport (6.1.1) lib/active_support/tagged_logging.rb:99:in `tagged'
railties (6.1.1) lib/rails/rack/logger.rb:26:in `call'
actionpack (6.1.1) lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
actionpack (6.1.1) lib/action_dispatch/middleware/request_id.rb:26:in `call'
rack (2.2.3) lib/rack/runtime.rb:22:in `call'
activesupport (6.1.1) lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call'
actionpack (6.1.1) lib/action_dispatch/middleware/static.rb:24:in `call'
sentry-ruby-core (4.4.2) lib/sentry/rack/capture_exceptions.rb:23:in `block in call'
sentry-ruby-core (4.4.2) lib/sentry/hub.rb:56:in `with_scope'
sentry-ruby-core (4.4.2) lib/sentry-ruby.rb:165:in `with_scope'
sentry-ruby-core (4.4.2) lib/sentry/rack/capture_exceptions.rb:14:in `call'
actionpack (6.1.1) lib/action_dispatch/middleware/executor.rb:14:in `call'
actionpack (6.1.1) lib/action_dispatch/middleware/static.rb:24:in `call'
rack (2.2.3) lib/rack/sendfile.rb:110:in `call'
actionpack (6.1.1) lib/action_dispatch/middleware/host_authorization.rb:98:in `call'
rack-cors (1.1.1) lib/rack/cors.rb:100:in `call'
railties (6.1.1) lib/rails/engine.rb:539:in `call'
rack (2.2.3) lib/rack/static.rb:161:in `call'
puma (5.1.1) lib/puma/configuration.rb:246:in `call'
puma (5.1.1) lib/puma/request.rb:76:in `block in handle_request'
puma (5.1.1) lib/puma/thread_pool.rb:337:in `with_force_shutdown'
puma (5.1.1) lib/puma/request.rb:75:in `handle_request'
puma (5.1.1) lib/puma/server.rb:431:in `process_client'
puma (5.1.1) lib/puma/thread_pool.rb:145:in `block in spawn_thread'
igorkasyanchuk commented 3 years ago

Hello, it would be great if you can fix issue or someone can help. I'm on vacation and have limited internet access.

igorkasyanchuk commented 3 years ago

can you try to clone branch https://github.com/igorkasyanchuk/rails_performance/pull/37 and locally connect my gem in your app and see if it works.

I've removed some code and if possible try to put a binding.pry and debug it.

this is a strange issue and in dummy app all works well.

igorkasyanchuk commented 1 year ago

no input, closing