newrelic: log country of each request in newrelic.

Log the country of each HTTP request in NewRelic. Uses the CF-IPCountry
header set by Cloudflare.
This commit is contained in:
evazion
2020-12-21 18:48:01 -06:00
parent efb836ac02
commit 6ac9882711
2 changed files with 9 additions and 1 deletions

View File

@@ -24,7 +24,14 @@ class DanbooruLogger
def self.add_session_attributes(request, session, user)
request_params = request.parameters.with_indifferent_access.except(:controller, :action)
session_params = session.to_h.with_indifferent_access.slice(:session_id, :started_at)
user_params = { id: user&.id, name: user&.name, level: user&.level_string, ip: request.remote_ip, safe_mode: CurrentUser.safe_mode? }
user_params = {
id: user&.id,
name: user&.name,
level: user&.level_string,
ip: request.remote_ip,
country: request.headers["CF-IPCountry"],
safe_mode: CurrentUser.safe_mode?
}
add_attributes("request.params", request_params)
add_attributes("session.params", session_params)

View File

@@ -10,6 +10,7 @@ class SessionLoaderTest < ActiveSupport::TestCase
@request.stubs(:cookie_jar).returns({})
@request.stubs(:parameters).returns({})
@request.stubs(:session).returns({})
@request.stubs(:headers).returns({})
SessionLoader.any_instance.stubs(:initialize_session_cookies)
end