logjam_agent 0.35.1 → 0.37.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +6 -0
- data/lib/logjam_agent/buffered_logger.rb +1 -0
- data/lib/logjam_agent/rack/logger.rb +29 -5
- data/lib/logjam_agent/rack/rails_support.rb +11 -3
- data/lib/logjam_agent/request.rb +6 -5
- data/lib/logjam_agent/version.rb +1 -1
- data/lib/logjam_agent.rb +3 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b0980fb837410c08361600e378f44a6bacf83a36ecd95fa3090348f4dc0ca5d9
|
4
|
+
data.tar.gz: 8f191a84d982672fee5a7b00bfc8faf9d37c98f6573ecd2c72911fc00584986e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9f7c46d32b4c7dd42279a9e20a4b834baad1082201234fb8ccd26466846d04572139d1542abe5c637bba39cc722177952fa67a639bc05d6f8c379d19867fbece
|
7
|
+
data.tar.gz: 2f56ac4b0f6e6b0a9e7c11e5b7b6314343726f8fa9c164181f2c5dd7b262e207ef5b6739d90f5afb38fb6857c87168a07457c25a371d094d66b86541af961735
|
data/README.md
CHANGED
@@ -62,6 +62,12 @@ module LogjamAgent
|
|
62
62
|
# to debug asset request handling.
|
63
63
|
self.ignore_asset_requests = Rails.env.development?
|
64
64
|
|
65
|
+
# Configure a list of URL patterns for which no data should be sent
|
66
|
+
# to logjam and nothing should be sent to the log device. Please not
|
67
|
+
# that the log lines will still show up in dev mode on the console.
|
68
|
+
# Defaults to the empty list.
|
69
|
+
# self.ignored_request_urls = [%r{/_system/}]
|
70
|
+
|
65
71
|
# Disable ActiveSupport::Notifications (and thereby logging) of ActionView
|
66
72
|
# render events. Defaults to false.
|
67
73
|
# self.ignore_render_events = Rails.env.production?
|
@@ -57,6 +57,7 @@ module LogjamAgent
|
|
57
57
|
end
|
58
58
|
end
|
59
59
|
log_to_log_device = LogjamAgent.log_to_log_device?(severity, message)
|
60
|
+
log_to_log_device = false if request && request.ignored?
|
60
61
|
attributes = formatter.render_attributes
|
61
62
|
message = "[#{attributes}] #{message}" if attributes
|
62
63
|
time = Time.now
|
@@ -11,6 +11,7 @@ module LogjamAgent
|
|
11
11
|
@hostname = LogjamAgent.hostname
|
12
12
|
@asset_prefix = Rails.application.config.assets.prefix rescue "---"
|
13
13
|
@ignore_asset_requests = LogjamAgent.ignore_asset_requests
|
14
|
+
@ignored_request_urls = LogjamAgent.ignored_request_urls
|
14
15
|
end
|
15
16
|
|
16
17
|
def call(env)
|
@@ -88,6 +89,12 @@ module LogjamAgent
|
|
88
89
|
false
|
89
90
|
end
|
90
91
|
|
92
|
+
def ignored_request_url?(path)
|
93
|
+
@ignored_request_urls.any?{|url_pattern| path =~ url_pattern}
|
94
|
+
rescue
|
95
|
+
false
|
96
|
+
end
|
97
|
+
|
91
98
|
def before_dispatch(request, env, start_time, wait_time_ms)
|
92
99
|
logger.formatter.reset_attributes if logger.formatter.respond_to?(:reset_attributes)
|
93
100
|
TimeBandits.reset
|
@@ -96,7 +103,11 @@ module LogjamAgent
|
|
96
103
|
path = request.filtered_path
|
97
104
|
|
98
105
|
logjam_request = LogjamAgent.request
|
99
|
-
logjam_request.ignore! if ignored_asset_request?(path)
|
106
|
+
logjam_request.ignore!(:asset) if ignored_asset_request?(path)
|
107
|
+
logjam_request.ignore!(:url) if ignored_request_url?(path)
|
108
|
+
|
109
|
+
logjam_request.log_info[:path] = path
|
110
|
+
logjam_request.log_info[:method] = request.method
|
100
111
|
|
101
112
|
logjam_request.start_time = start_time
|
102
113
|
logjam_fields = logjam_request.fields
|
@@ -111,7 +122,9 @@ module LogjamAgent
|
|
111
122
|
logjam_fields.merge!(:ip => ip, :host => @hostname)
|
112
123
|
logjam_fields.merge!(extract_request_info(request))
|
113
124
|
|
114
|
-
|
125
|
+
LogjamAgent.logjam_only do
|
126
|
+
info "Started #{request.request_method} \"#{path}\" for #{ip} at #{start_time.to_default_s}" unless logjam_request.ignored?(:asset)
|
127
|
+
end
|
115
128
|
if spoofed
|
116
129
|
error spoofed
|
117
130
|
raise spoofed
|
@@ -138,9 +151,20 @@ module LogjamAgent
|
|
138
151
|
warn LogjamAgent::NegativeWaitTime.new("#{wait_time_ms} ms")
|
139
152
|
end
|
140
153
|
|
141
|
-
|
142
|
-
|
143
|
-
|
154
|
+
http_status = "#{status} #{::Rack::Utils::HTTP_STATUS_CODES[status]}"
|
155
|
+
LogjamAgent.logjam_only do
|
156
|
+
message = "Completed #{http_status} in %.1fms" % run_time_ms
|
157
|
+
message << " (#{additions.join(' | ')})" unless additions.blank?
|
158
|
+
info message unless logjam_request.ignored?(:asset)
|
159
|
+
end
|
160
|
+
if LogjamAgent.selective_logging_enabled
|
161
|
+
LogjamAgent.logdevice_only do
|
162
|
+
logjam_request.log_info[:status] = status
|
163
|
+
logjam_request.log_info[:duration] = run_time_ms
|
164
|
+
# logjam_request.log_info[:metrics] = TimeBandits.metrics.reject{|k,v| v.zero?}
|
165
|
+
info "Completed #{http_status} #{logjam_request.log_info.to_json}"
|
166
|
+
end
|
167
|
+
end
|
144
168
|
|
145
169
|
ActiveSupport::LogSubscriber.flush_all!
|
146
170
|
request_info = { :total_time => run_time_ms, :code => status }
|
@@ -16,10 +16,18 @@ module ActionController #:nodoc:
|
|
16
16
|
full_name = "#{controller}##{action}"
|
17
17
|
action_name = LogjamAgent.action_name_proc.call(full_name)
|
18
18
|
|
19
|
-
|
19
|
+
request = LogjamAgent.request
|
20
|
+
request.fields[:action] = action_name
|
20
21
|
|
21
|
-
|
22
|
-
|
22
|
+
request.log_info[:action] = action
|
23
|
+
request.log_info[:controller] = controller
|
24
|
+
request.log_info[:format] = format
|
25
|
+
# request.log_info[:params] = params
|
26
|
+
|
27
|
+
LogjamAgent.logjam_only do
|
28
|
+
info "Processing by #{full_name} as #{format}"
|
29
|
+
info " Parameters: #{params.inspect}" unless params.empty?
|
30
|
+
end
|
23
31
|
end
|
24
32
|
end
|
25
33
|
|
data/lib/logjam_agent/request.rb
CHANGED
@@ -6,7 +6,7 @@ end
|
|
6
6
|
|
7
7
|
module LogjamAgent
|
8
8
|
class Request
|
9
|
-
attr_reader :fields, :uuid, :start_time
|
9
|
+
attr_reader :fields, :uuid, :start_time, :log_info
|
10
10
|
attr_accessor :log_device_ignored_lines
|
11
11
|
|
12
12
|
def initialize(app, env, initial_fields)
|
@@ -39,6 +39,7 @@ module LogjamAgent
|
|
39
39
|
@max_bytes_all_lines = LogjamAgent.max_bytes_all_lines
|
40
40
|
@max_line_length = LogjamAgent.max_line_length
|
41
41
|
@lines_dropped = false
|
42
|
+
@log_info = {}
|
42
43
|
end
|
43
44
|
|
44
45
|
def start_time=(start_time)
|
@@ -47,12 +48,12 @@ module LogjamAgent
|
|
47
48
|
@fields[:started_ms] = start_time.tv_sec * 1000 + start_time.tv_usec / 1000
|
48
49
|
end
|
49
50
|
|
50
|
-
def ignore!
|
51
|
-
@ignored =
|
51
|
+
def ignore!(reason = nil)
|
52
|
+
@ignored = reason || :unknown
|
52
53
|
end
|
53
54
|
|
54
|
-
def ignored?
|
55
|
-
@ignored
|
55
|
+
def ignored?(reason = nil)
|
56
|
+
reason ? @ignored == reason : @ignored
|
56
57
|
end
|
57
58
|
|
58
59
|
def id
|
data/lib/logjam_agent/version.rb
CHANGED
data/lib/logjam_agent.rb
CHANGED
@@ -133,6 +133,9 @@ module LogjamAgent
|
|
133
133
|
mattr_accessor :exception_matcher
|
134
134
|
self.exception_matcher = nil
|
135
135
|
|
136
|
+
mattr_accessor :ignored_request_urls
|
137
|
+
self.ignored_request_urls = []
|
138
|
+
|
136
139
|
mattr_accessor :ignore_asset_requests
|
137
140
|
self.ignore_asset_requests = false
|
138
141
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logjam_agent
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.37.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stefan Kaes
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-10-
|
11
|
+
date: 2022-10-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|