From 1ae22612f7243c3d6daa8e9d22629af5588472ee Mon Sep 17 00:00:00 2001 From: pvincent Date: Tue, 24 Sep 2024 00:06:24 +0400 Subject: [PATCH] puma OK, but no log.debug in syslog --- app/controllers/scores_controller.rb | 5 ++- config/initializers/instrumentalizing.rb | 12 ++---- config/puma.rb | 49 ++++++++++++------------ lib/semantic/instrumentalizer.rb | 1 + 4 files changed, 32 insertions(+), 35 deletions(-) diff --git a/app/controllers/scores_controller.rb b/app/controllers/scores_controller.rb index f58876f..d26597a 100644 --- a/app/controllers/scores_controller.rb +++ b/app/controllers/scores_controller.rb @@ -8,9 +8,12 @@ class ScoresController < ApplicationController logger.info('inside controller2') logger.info("multiline1\nmultiline2\nmultiline3") + logger.info('this is an info') + logger.debug('this is a debug') logger.warn('this is a warning') logger.error('this is an error') - # logger.fatal('this is a fatal') + logger.fatal('this is a fatal') + @q = Score.all.ransack(q_params) @pagy, @scores = pagy(@q.result) end diff --git a/config/initializers/instrumentalizing.rb b/config/initializers/instrumentalizing.rb index 74cb01c..20e0749 100644 --- a/config/initializers/instrumentalizing.rb +++ b/config/initializers/instrumentalizing.rb @@ -14,23 +14,17 @@ def build_instrumentation_config end Rails.configuration.after_initialize do - SemanticLogger.clear_appenders! RailsSemanticLogger::Rack::Logger.logger.level = :info # useful for remaining log like "[Rack::Log] Started..." Rails.logger.name = 'rails' if Rails.env.production? - SemanticLogger.add_appender( - appender: :syslog, - formatter: Rails.application.config.x.semantic.formatter.constantize.new - ) - - Rails.logger.info('adding instrumentations...') + formatter = Rails.application.config.x.semantic.formatter.constantize.new + SemanticLogger.add_appender(appender: :syslog, formatter:) Semantic::Instrumentalizer.activate(*build_instrumentation_config) - Rails.logger.info('adding instrumentations...DONE', build_instrumentation_config) else - + SemanticLogger.clear_appenders! SemanticLogger.add_appender( io: $stdout, formatter: Rails.application.config.x.semantic.formatter.constantize.new diff --git a/config/puma.rb b/config/puma.rb index 1d76090..8b84218 100644 --- a/config/puma.rb +++ b/config/puma.rb @@ -2,38 +2,37 @@ # are invoked here are part of Puma's configuration DSL. For more information # about methods provided by the DSL, see https://puma.io/puma/Puma/DSL.html. -# Puma can serve each request in a thread from an internal thread pool. -# The `threads` method setting takes two numbers: a minimum and maximum. -# Any libraries that use thread pools should be configured to match -# the maximum value specified for Puma. Default is set to 5 threads for minimum -# and maximum; this matches the default thread size of Active Record. -max_threads_count = ENV.fetch('RAILS_MAX_THREADS', 5) -min_threads_count = ENV.fetch('RAILS_MIN_THREADS') { max_threads_count } -threads min_threads_count, max_threads_count - -# Specifies that the worker count should equal the number of processors in production. -if ENV['RAILS_ENV'] == 'production' - require 'concurrent-ruby' - worker_count = Integer(ENV.fetch('WEB_CONCURRENCY') { Concurrent.physical_processor_count }) - workers worker_count if worker_count > 1 -end - -# Specifies the `worker_timeout` threshold that Puma will use to wait before -# terminating a worker in development environments. -worker_timeout 3600 if ENV.fetch('RAILS_ENV', 'development') == 'development' +# Puma starts a configurable number of processes (workers) and each process +# serves each request in a thread from an internal thread pool. +# +# The ideal number of threads per worker depends both on how much time the +# application spends waiting for IO operations and on how much you wish to +# to prioritize throughput over latency. +# +# As a rule of thumb, increasing the number of threads will increase how much +# traffic a given process can handle (throughput), but due to CRuby's +# Global VM Lock (GVL) it has diminishing returns and will degrade the +# response time (latency) of the application. +# +# The default is set to 3 threads as it's deemed a decent compromise between +# throughput and latency for the average Rails application. +# +# Any libraries that use a connection pool or another resource pool should +# be configured to provide at least as many connections as the number of +# threads. This includes Active Record's `pool` parameter in `database.yml`. +threads_count = ENV.fetch('RAILS_MAX_THREADS', 3) +threads threads_count, threads_count # Specifies the `port` that Puma will listen on to receive requests; default is 3000. port ENV.fetch('PORT', 3000) -# Specifies the `environment` that Puma will run in. -environment ENV.fetch('RAILS_ENV') { 'development' } - -# Specifies the `pidfile` that Puma will use. -pidfile ENV.fetch('PIDFILE') { 'tmp/pids/server.pid' } - # Allow puma to be restarted by `bin/rails restart` command. plugin :tmp_restart +# Specify the PID file. Defaults to tmp/pids/server.pid in development. +# In other environments, only set the PID file if requested. +pidfile ENV['PIDFILE'] if ENV['PIDFILE'] + on_booted do # puts '********************* PUMA: booted **********************' diff --git a/lib/semantic/instrumentalizer.rb b/lib/semantic/instrumentalizer.rb index 057d548..2b910a5 100644 --- a/lib/semantic/instrumentalizer.rb +++ b/lib/semantic/instrumentalizer.rb @@ -60,6 +60,7 @@ module Semantic end global_subscribers << subscriber end + # logger.info("event_group #{event_group} is enabled!") end def build_log_subscriber_from(event_group)