query_track 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
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