query_track 0.0.2 → 0.0.3

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: 8f31144226dbe92c02734f5a0b93409093c8e91e0eaf603788117e55c912421a
4
- data.tar.gz: e7d31eb7e89d0571f937001c95d8583e6c91ec0fb8078af329ec6074d187164d
3
+ metadata.gz: ce34974e6c961e959cfd604448aa25dda1121f8fe8f05f92769a2bc3d3ebf0ff
4
+ data.tar.gz: 829d05437a6ee4753bd39d9c45f7ca951a7d10aefb4fba7fc05d3c919cc37832
5
5
  SHA512:
6
- metadata.gz: aec3bfb5ba36a462103e316507bef71e6d047390b224654212aa90a87a078a45af249397a3cd5b9e05cfeb00665ecc164f28d5da7f20ee824fc408a45316c797
7
- data.tar.gz: 6e19299d4c7c445d12959a276ba570b29758fbed2c6c69f3deaaf67d31836227078569c1d7550233687b2aa8f58e6eb044ecf15d341cc8a9ff985876b075cfef
6
+ metadata.gz: c359e0555148e2ef84c19059955d83a820fc8349d7a06b2d2405524f5811f085db743e9352bd176b9de8995de74a840ac8845ab69d3e29b0ed1dd12379c7979f
7
+ data.tar.gz: 1a9a2ddf3089c1bb8b621d6843b0fa8a82ec05dfac5c882be29a2a130d3d13d47fc1f7d661820e01f75f0f572b82f4f58fc46cfc96e7e5052316f1ce2d72060d
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ # v0.0.3 2019-07-22
2
+
3
+ Added backtrace filters. ([kirillshevch](https://github.com/kirillshevch/query_track/pull/3))
4
+
1
5
  # v0.0.2 2019-07-22
2
6
 
3
7
  Add console log, fix disabling of slack notifications. ([kirillshevch](https://github.com/kirillshevch/query_track/pull/2))
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- query_track (0.0.2)
4
+ query_track (0.0.3)
5
5
  activesupport
6
6
  dry-configurable
7
7
  slack_hook
data/README.md CHANGED
@@ -61,7 +61,15 @@ end
61
61
 
62
62
  ### Filters
63
63
 
64
- `TODO`
64
+ To avoid noisy warnings from used gems, and places where fat queries are justified, you can filters SQL by backtrace.
65
+ For example, you have installed `activeadmin` and want to skip everything from `app/admin`:
66
+
67
+ ```ruby
68
+ QueryTrack::Settings.configure do |config|
69
+ config.duration = 0.5
70
+ config.filters = ['app/admin']
71
+ end
72
+ ```
65
73
 
66
74
  ## Contributing
67
75
 
@@ -9,10 +9,18 @@ module QueryTrack
9
9
  def call
10
10
  return unless QueryTrack::Settings.config.duration
11
11
 
12
+ return if under_filter?(caller)
13
+
12
14
  if event.duration > QueryTrack::Settings.config.duration
13
15
  QueryTrack::Notifications::Slack.new(event.payload[:sql], event.duration).call
14
16
  QueryTrack::Notifications::Log.new(event.payload[:sql], event.duration).call
15
17
  end
16
18
  end
19
+
20
+ private
21
+
22
+ def under_filter?(trace)
23
+ QueryTrack::Filters.new(caller).call
24
+ end
17
25
  end
18
26
  end
@@ -0,0 +1,15 @@
1
+ module QueryTrack
2
+ class Filters
3
+ attr_reader :full_trace
4
+
5
+ def initialize(full_trace)
6
+ @full_trace = full_trace
7
+ end
8
+
9
+ def call
10
+ QueryTrack::Settings.config.filters.map do |filter|
11
+ full_trace.select { |v| v =~ %r{#{filter}} }[0].nil?
12
+ end.include?(false)
13
+ end
14
+ end
15
+ end
@@ -9,5 +9,7 @@ module QueryTrack
9
9
  end
10
10
 
11
11
  setting :logs, false
12
+
13
+ setting :filters, []
12
14
  end
13
15
  end
@@ -1,3 +1,3 @@
1
1
  module QueryTrack
2
- VERSION = '0.0.2'
2
+ VERSION = '0.0.3'
3
3
  end
data/lib/query_track.rb CHANGED
@@ -4,6 +4,7 @@ require 'slack_hook'
4
4
  require 'query_track/version'
5
5
  require 'query_track/settings'
6
6
  require 'query_track/trace'
7
+ require 'query_track/filters'
7
8
  require 'query_track/notifications/slack'
8
9
  require 'query_track/notifications/log'
9
10
  require 'query_track/event_processor'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: query_track
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kirill Shevchenko
@@ -145,6 +145,7 @@ files:
145
145
  - examples/slack.jpg
146
146
  - lib/query_track.rb
147
147
  - lib/query_track/event_processor.rb
148
+ - lib/query_track/filters.rb
148
149
  - lib/query_track/notifications/log.rb
149
150
  - lib/query_track/notifications/slack.rb
150
151
  - lib/query_track/settings.rb