logjam_agent 0.35.1 → 0.36.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3f6c65ee6f965cad2efa823e0c7bbdc2445bcc03b5eb5b925a80a3cf5750440b
4
- data.tar.gz: cfc487c0f873c6eeb63e90c2680c31394eb112231a9a8f17273864bf26f1f5a3
3
+ metadata.gz: 238a6d18a9fdd1fdf660314a3e3de7706e658e08ab304aa4874d7e73985c787d
4
+ data.tar.gz: 208a910c0abadf9572d1e9f872eee8b90c8d3706e9a59bf8c550d64cb1144281
5
5
  SHA512:
6
- metadata.gz: 9465b7e6caf9e029b6d68112829a5720f2ee3d3ffc31b53cf3331b24497a9c46f971f3cd30b683feba7022bb56066797fb18b8fc35bd2f542510fd2a9d844eb3
7
- data.tar.gz: f5217174aaf9331df102b3a367d6e1d755cc2a689c8e778c7b676d8469e9ba32159b3c06d8d4dccdad956811f55ec86e50e6af935be698ad9f7bb0179b22aff6
6
+ metadata.gz: f1852e9eec5abceed5a8ddd8977188a1a86ae415c6883e01db30d5471e0d20def84c07ad1eadb947e1809860c61e72010ad8dbb2aaaf92c6c842f3f3029708e5
7
+ data.tar.gz: 5565c68259a98b4561240cc3f2a1bd1233598efa3aeca555db6c78183d0064376e5d3f1acfd13469bee5654e8565bee217843f7bd965b49d93a586662db4d1f3
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,8 @@ 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)
100
108
 
101
109
  logjam_request.start_time = start_time
102
110
  logjam_fields = logjam_request.fields
@@ -111,7 +119,7 @@ module LogjamAgent
111
119
  logjam_fields.merge!(:ip => ip, :host => @hostname)
112
120
  logjam_fields.merge!(extract_request_info(request))
113
121
 
114
- info "Started #{request.request_method} \"#{path}\" for #{ip} at #{start_time.to_default_s}" unless logjam_request.ignored?
122
+ info "Started #{request.request_method} \"#{path}\" for #{ip} at #{start_time.to_default_s}" unless logjam_request.ignored?(:asset)
115
123
  if spoofed
116
124
  error spoofed
117
125
  raise spoofed
@@ -140,7 +148,7 @@ module LogjamAgent
140
148
 
141
149
  message = "Completed #{status} #{::Rack::Utils::HTTP_STATUS_CODES[status]} in %.1fms" % run_time_ms
142
150
  message << " (#{additions.join(' | ')})" unless additions.blank?
143
- info message unless logjam_request.ignored?
151
+ info message unless logjam_request.ignored?(:asset)
144
152
 
145
153
  ActiveSupport::LogSubscriber.flush_all!
146
154
  request_info = { :total_time => run_time_ms, :code => status }
@@ -47,12 +47,12 @@ module LogjamAgent
47
47
  @fields[:started_ms] = start_time.tv_sec * 1000 + start_time.tv_usec / 1000
48
48
  end
49
49
 
50
- def ignore!
51
- @ignored = true
50
+ def ignore!(reason = nil)
51
+ @ignored = reason || :unknown
52
52
  end
53
53
 
54
- def ignored?
55
- @ignored
54
+ def ignored?(reason = nil)
55
+ reason ? @ignored == reason : @ignored
56
56
  end
57
57
 
58
58
  def id
@@ -1,3 +1,3 @@
1
1
  module LogjamAgent
2
- VERSION = "0.35.1"
2
+ VERSION = "0.36.0"
3
3
  end
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.35.1
4
+ version: 0.36.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-17 00:00:00.000000000 Z
11
+ date: 2022-10-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake