diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 28d3ecffb..2c958f192 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -57,11 +57,15 @@ jobs: MYSQL_ROOT_PASSWORD: root ports: - 3306 - redis: + redis_main: image: redis # Map TCP port 6379 on Docker host to a random free port on the Redis container ports: - 6379/tcp + redis_logging: + image: redis + ports: + - "6379:6379" env: RAILS_ENV: test RACK_ENV: test @@ -108,7 +112,7 @@ jobs: mkdir -p config && echo 'test: adapter: redis timeout: 120 - url: redis://localhost:${{ job.services.redis.ports['6379'] }} + url: redis://localhost:${{ job.services.redis_main.ports['6379'] }} ' > config/cable.yml - name: Prepare run: bundle exec rake db:create db:schema:load db:test:prepare db:migrate --trace diff --git a/config/initializers/redis_logging.rb b/config/initializers/redis_logging.rb index ef387aec6..eacb8bc17 100644 --- a/config/initializers/redis_logging.rb +++ b/config/initializers/redis_logging.rb @@ -8,7 +8,7 @@ def log_timestamps(ts, status:, action:, controller:, format:, method:, # rubocop:disable Lint/UnusedMethodArgument view_runtime:, db_runtime:, path:, uuid:) # rubocop:disable Lint/UnusedMethodArgument # rubocop:enable Metrics/ParameterLists - redis = redis(logger: true) + redis_logger = redis(logger: true) view_runtime = view_runtime.to_f db_runtime = db_runtime.to_f @@ -16,28 +16,28 @@ def log_timestamps(ts, status:, action:, controller:, format:, method:, # ruboco path = Rails.sensible_routes.match_for(path)&.path || path.split('?').first path_string = "#{method.upcase}/#{path}.#{format}" # controller_action_string = "#{controller}##{action}" - redis.sadd 'request_timings/path_strings', path_string - # redis.sadd "request_timings/controller_action_strings", controller_action_string - redis.zadd "request_timings/view/by_path/#{path_string}", ts, view_runtime - redis.zadd "request_timings/db/by_path/#{path_string}", ts, db_runtime - redis.zadd "request_timings/total/by_path/#{path_string}", ts, (db_runtime + view_runtime) + redis_logger.sadd 'request_timings/path_strings', path_string + # redis_logger.sadd "request_timings/controller_action_strings", controller_action_string + redis_logger.zadd "request_timings/view/by_path/#{path_string}", ts, view_runtime + redis_logger.zadd "request_timings/db/by_path/#{path_string}", ts, db_runtime + redis_logger.zadd "request_timings/total/by_path/#{path_string}", ts, (db_runtime + view_runtime) - # redis.zadd "request_timings/view/by_action/#{controller_action_string}", ts, view_runtime - # redis.zadd "request_timings/db/by_action/#{controller_action_string}", ts, db_runtime - # redis.zadd "request_timings/total/by_action/#{controller_action_string}", ts, (db_runtime + view_runtime) + # redis_logger.zadd "request_timings/view/by_action/#{controller_action_string}", ts, view_runtime + # redis_logger.zadd "request_timings/db/by_action/#{controller_action_string}", ts, db_runtime + # redis_logger.zadd "request_timings/total/by_action/#{controller_action_string}", ts, (db_runtime + view_runtime) - # redis.zadd "request_timings/status_counts/by_path/#{path_string}", ts, status - # redis.zadd "request_timings/status_counts/by_action/#{controller_action_string}", ts, status - # redis.zadd 'request_timings/status_counts', ts, status + # redis_logger.zadd "request_timings/status_counts/by_path/#{path_string}", ts, status + # redis_logger.zadd "request_timings/status_counts/by_action/#{controller_action_string}", ts, status + # redis_logger.zadd 'request_timings/status_counts', ts, status - # redis.zadd "requests/by_path/#{path_string}", ts, uuid - # redis.zadd "requests/by_action/#{controller_action_string}", ts, uuid + # redis_logger.zadd "requests/by_path/#{path_string}", ts, uuid + # redis_logger.zadd "requests/by_action/#{controller_action_string}", ts, uuid - # redis.zadd 'request_timings/sha', ts, CurrentCommit, nx: true + # redis_logger.zadd 'request_timings/sha', ts, CurrentCommit, nx: true end ActiveSupport::Notifications.subscribe 'process_action.action_controller' do |_name, _started, _finished, _unique_id, data| - redis = redis(logger: true) + redis_logger = redis(logger: true) request_id = data[:headers]['action_dispatch.request_id'] # redis_log_id = data[:headers]['rack.session']['redis_log_id'] redis_log_key = data[:headers]['redis_logs.log_key'] @@ -59,7 +59,7 @@ def log_timestamps(ts, status:, action:, controller:, format:, method:, # ruboco :action, :controller, :view_runtime, :db_runtime, :method, :format, :status - ), path: redis.hget(redis_log_key, 'path') || data[:path], uuid: request_id) + ), path: data[:path] || redis_logger.hget(redis_log_key, 'path'), uuid: request_id) end end end