@@ -17,21 +17,39 @@ def finish(name, id, payload)
1717 instrumenter_id : id ,
1818 duration : ( ( finish_time - payload . delete ( :_start_time ) ) * 1000 ) . round ( 2 )
1919 } . merge ( format_payload ( payload ) . compact )
20+
2021 record ( name , payload )
22+ record_metrics ( name , payload )
2123 end
2224
2325 def record ( name , payload )
24- if Honeybadger . config . load_plugin_insights? ( :rails , feature : :active_support_events )
25- Honeybadger . event ( name , payload )
26- end
26+ Honeybadger . event ( name , payload )
27+ end
2728
28- if Honeybadger . config . load_plugin_insights? ( :rails , feature : :metrics )
29- metric_source "rails"
30- record_metrics ( name , payload )
31- end
29+ def record_metrics ( name , payload )
30+ # noop
31+ end
32+
33+ def process? ( name , payload )
34+ true
35+ end
36+
37+ def format_payload ( payload )
38+ payload
39+ end
40+ end
41+
42+ class RailsSubscriber < NotificationSubscriber
43+ def record ( name , payload )
44+ return unless Honeybadger . config . load_plugin_insights? ( :rails , feature : :active_support_events )
45+ Honeybadger . event ( name , payload )
3246 end
3347
3448 def record_metrics ( name , payload )
49+ return unless Honeybadger . config . load_plugin_insights? ( :rails , feature : :metrics )
50+
51+ metric_source "rails"
52+
3553 case name
3654 when "sql.active_record"
3755 gauge ( "duration.sql.active_record" , value : payload [ :duration ] , **payload . slice ( :query ) )
@@ -45,37 +63,29 @@ def record_metrics(name, payload)
4563 gauge ( "duration.#{ name } " , value : payload [ :duration ] , **payload . slice ( :store , :key ) )
4664 end
4765 end
48-
49- def process? ( event , payload )
50- true
51- end
52-
53- def format_payload ( payload )
54- payload
55- end
5666 end
5767
58- class ActionControllerSubscriber < NotificationSubscriber
68+ class ActionControllerSubscriber < RailsSubscriber
5969 def format_payload ( payload )
6070 payload . except ( :headers , :request , :response )
6171 end
6272 end
6373
64- class ActionControllerCacheSubscriber < NotificationSubscriber
74+ class ActionControllerCacheSubscriber < RailsSubscriber
6575 def format_payload ( payload )
6676 payload [ :key ] = ::ActiveSupport ::Cache . expand_cache_key ( payload [ :key ] ) if payload [ :key ]
6777 payload
6878 end
6979 end
7080
71- class ActiveSupportCacheSubscriber < NotificationSubscriber
81+ class ActiveSupportCacheSubscriber < RailsSubscriber
7282 def format_payload ( payload )
7383 payload [ :key ] = ::ActiveSupport ::Cache . expand_cache_key ( payload [ :key ] ) if payload [ :key ]
7484 payload
7585 end
7686 end
7787
78- class ActiveSupportCacheMultiSubscriber < NotificationSubscriber
88+ class ActiveSupportCacheMultiSubscriber < RailsSubscriber
7989 def format_payload ( payload )
8090 payload [ :key ] = expand_cache_keys_from_payload ( payload [ :key ] )
8191 payload [ :hits ] = expand_cache_keys_from_payload ( payload [ :hits ] )
@@ -93,7 +103,7 @@ def expand_cache_keys_from_payload(data)
93103 end
94104 end
95105
96- class ActionViewSubscriber < NotificationSubscriber
106+ class ActionViewSubscriber < RailsSubscriber
97107 PROJECT_ROOT = defined? ( ::Rails ) ? ::Rails . root . to_s : ""
98108
99109 def format_payload ( payload )
@@ -104,7 +114,7 @@ def format_payload(payload)
104114 end
105115 end
106116
107- class ActiveRecordSubscriber < NotificationSubscriber
117+ class ActiveRecordSubscriber < RailsSubscriber
108118 def format_payload ( payload )
109119 {
110120 query : Util ::SQL . obfuscate ( payload [ :sql ] , payload [ :connection ] &.adapter_name ) ,
@@ -113,13 +123,13 @@ def format_payload(payload)
113123 }
114124 end
115125
116- def process? ( event , payload )
126+ def process? ( name , payload )
117127 return false if payload [ :name ] == "SCHEMA"
118128 true
119129 end
120130 end
121131
122- class ActiveJobSubscriber < NotificationSubscriber
132+ class ActiveJobSubscriber < RailsSubscriber
123133 def format_payload ( payload )
124134 job = payload [ :job ]
125135 jobs = payload [ :jobs ]
@@ -145,7 +155,7 @@ def format_payload(payload)
145155 end
146156 end
147157
148- class ActionMailerSubscriber < NotificationSubscriber
158+ class ActionMailerSubscriber < RailsSubscriber
149159 def format_payload ( payload )
150160 # Don't include the mail object in the payload...
151161 mail = payload . delete ( :mail )
@@ -161,7 +171,7 @@ def format_payload(payload)
161171 end
162172 end
163173
164- class ActiveStorageSubscriber < NotificationSubscriber
174+ class ActiveStorageSubscriber < RailsSubscriber
165175 end
166176
167177 class RailsEventSubscriber
0 commit comments