Merge branch 'hotfix/3.3.7' into develop

This commit is contained in:
Karol Sójko
2020-07-28 18:26:51 +02:00
11 changed files with 76 additions and 40 deletions

View File

@@ -9,3 +9,6 @@ APP_HOST=http://localhost:3000
EXTENSIONS_MANAGER_LOCATION=extensions/extensions-manager/dist/index.html
BATCH_MANAGER_LOCATION=extensions/batch-manager/dist/index.min.html
SF_DEFAULT_SERVER=http://localhost:3001
# Datadog
DATADOG_ENABLED=false

View File

@@ -46,3 +46,8 @@ group :development, :test do
gem 'capistrano-sidekiq'
gem 'capistrano-git-with-submodules', '~> 2.0'
end
gem "dogstatsd-ruby", "~> 4.8"
gem "ddtrace", "~> 0.38.0"
gem "lograge", "~> 0.11.2"

View File

@@ -67,6 +67,9 @@ GEM
concurrent-ruby (1.1.5)
connection_pool (2.2.2)
crass (1.0.6)
ddtrace (0.38.0)
msgpack
dogstatsd-ruby (4.8.1)
dotenv (2.7.5)
dotenv-rails (2.7.5)
dotenv (= 2.7.5)
@@ -83,6 +86,11 @@ GEM
i18n (1.8.2)
concurrent-ruby (~> 1.0)
json (1.8.6)
lograge (0.11.2)
actionpack (>= 4)
activesupport (>= 4)
railties (>= 4)
request_store (~> 1.0)
loofah (2.4.0)
crass (~> 1.0.2)
nokogiri (>= 1.5.9)
@@ -92,6 +100,8 @@ GEM
mini_mime (1.0.2)
mini_portile2 (2.4.0)
minitest (5.14.0)
msgpack (1.3.3)
msgpack (1.3.3-x64-mingw32)
net-scp (2.0.0)
net-ssh (>= 2.6.5, < 6.0.0)
net-ssh (5.2.0)
@@ -140,6 +150,8 @@ GEM
ffi (~> 1.0)
rdoc (4.3.0)
redis (4.1.3)
request_store (1.5.0)
rack (>= 1.4)
responders (2.4.1)
actionpack (>= 4.2.0, < 6.0)
railties (>= 4.2.0, < 6.0)
@@ -200,8 +212,11 @@ DEPENDENCIES
capistrano-rails
capistrano-rvm
capistrano-sidekiq
ddtrace (~> 0.38.0)
dogstatsd-ruby (~> 4.8)
dotenv-rails
haml
lograge (~> 0.11.2)
non-stupid-digest-assets
puma
rack-cors

View File

@@ -14,6 +14,10 @@ class ApplicationController < ActionController::Base
rescue_from ActionView::MissingTemplate do |exception|
end
def route_not_found
render :json => {:error => {:message => "Not found."}}, :status => 404
end
protected
def allow_iframe
@@ -24,4 +28,19 @@ class ApplicationController < ActionController::Base
cookies['XSRF-TOKEN'] = form_authenticity_token if protect_against_forgery?
end
def append_info_to_payload(payload)
super
unless payload[:status]
return
end
payload[:level] = 'INFO'
if payload[:status] >= 500
payload[:level] = 'ERROR'
elsif payload[:status] >= 400
payload[:level] = 'WARN'
end
end
end

View File

@@ -14,8 +14,12 @@ Rails.application.configure do
# Do not eager load code on boot.
config.eager_load = false
require 'custom_log_formatter'
config.log_formatter = CustomLogFormatter.new
MAX_LOG_MEGABYTES = 50
config.logger = ActiveSupport::Logger.new(config.paths['log'].first, 1, MAX_LOG_MEGABYTES * 1024 * 1024)
if ENV["RAILS_LOG_TO_STDOUT"].present?
config.logger = ActiveSupport::Logger.new(STDOUT)
end
# Show full error reports and disable caching.
config.consider_all_requests_local = true

View File

@@ -7,21 +7,13 @@ Rails.application.configure do
# Code is not reloaded between requests.
config.cache_classes = true
# Use a different logger for distributed setups.
# require 'syslog/logger'
# config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name')
MAX_LOG_MEGABYTES = 50
config.logger = ActiveSupport::Logger.new(config.paths['log'].first, 1, MAX_LOG_MEGABYTES * 1024 * 1024)
if ENV["RAILS_LOG_TO_STDOUT"].present?
config.logger = ActiveSupport::Logger.new(STDOUT)
else
MAX_LOG_MEGABYTES = 50
config.logger = ActiveSupport::Logger.new(config.paths['log'].first, 1, MAX_LOG_MEGABYTES * 1024 * 1024)
end
require 'custom_log_formatter'
config.log_formatter = CustomLogFormatter.new
config.logger.formatter = config.log_formatter
# Eager load code on boot. This eager loads most of Rails and
# your application in memory, allowing both threaded web servers
# and those relying on copy on write to perform better.

View File

@@ -8,10 +8,11 @@ Rails.application.configure do
# require 'syslog/logger'
# config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name')
MAX_LOG_MEGABYTES = 50
config.logger = ActiveSupport::Logger.new(config.paths['log'].first, 1, MAX_LOG_MEGABYTES * 1024 * 1024)
if ENV["RAILS_LOG_TO_STDOUT"].present?
logger = ActiveSupport::Logger.new(STDOUT)
logger.formatter = config.log_formatter
config.logger = ActiveSupport::TaggedLogging.new(logger)
config.logger = ActiveSupport::Logger.new(STDOUT)
end
# Eager load code on boot. This eager loads most of Rails and
@@ -73,9 +74,6 @@ Rails.application.configure do
# Send deprecation notices to registered listeners.
config.active_support.deprecation = :notify
# Use default logging formatter so that PID and timestamp are not suppressed.
config.log_formatter = ::Logger::Formatter.new
# Do not dump schema after migrations.
# config.active_record.dump_schema_after_migration = false
end

View File

@@ -0,0 +1,6 @@
if ENV['DATADOG_ENABLED'] == 'true'
Datadog.configure do |c|
# This will activate auto-instrumentation for Rails
c.use :rails
end
end

View File

@@ -0,0 +1,14 @@
Rails.application.configure do
config.lograge.enabled = true
# Generate log in JSON
config.lograge.formatter = Lograge::Formatters::Json.new
config.lograge.custom_options = lambda do |event|
{
:ddsource => ["ruby"],
:time => event.time,
:params => event.payload[:params],
:level => event.payload[:level]
}
end
end

View File

@@ -1,5 +1,7 @@
Rails.application.routes.draw do
get "/healthcheck" => "health_check#index"
get '*unmatched_route', to: 'application#route_not_found'
root 'application#app'
end

View File

@@ -1,22 +0,0 @@
class CustomLogFormatter < ActiveSupport::Logger::SimpleFormatter
SEVERITY_TO_COLOR_MAP = {'DEBUG'=>'0;37', 'INFO'=>'32', 'WARN'=>'33', 'ERROR'=>'31', 'FATAL'=>'31', 'UNKNOWN'=>'37'}
IPRegexp = /\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b/
FilteredString = '**FILTERED**'
def call(severity, time, progname, msg)
formatted_severity = sprintf("%-5s","#{severity}")
formatted_time = time.strftime("%Y-%m-%d %H:%M:%S.") << time.usec.to_s[0..2].rjust(3)
color = SEVERITY_TO_COLOR_MAP[severity]
"\033[0;37m#{formatted_time}\033[0m [\033[#{color}m#{formatted_severity}\033[0m] #{filter_ip(msg)} (pid:#{$$})\n"
end
def filter_ip(msg)
if msg.is_a? String
return msg.gsub(IPRegexp, FilteredString).strip
else
return msg
end
end
end