app_perf_rpm 0.0.9 → 0.1.0
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
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dd7a40e56d4bc00dea5bbf67099f5862b663deb8
|
4
|
+
data.tar.gz: 762bb7394394c6ce50103cb56c88d8f43138d32a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 189ce83378fa35221a932dd21af383028c9ecd2e816adcde76731f79e4997010ee0ea551d0885804eedd127a91942ec5c077f338fa6d39e4bf32f0db44d3cf8a
|
7
|
+
data.tar.gz: b23c2c35e107c08c813ef5397ed4ec9b51a34ee5d90b17f83bde2b524aaaa3bff6bb6ce63b1997ef8173628e5a1c22c8359c2aaee32bf2691087111579a1d7b1
|
@@ -32,19 +32,20 @@ module AppPerfRpm
|
|
32
32
|
self.agent_disabled ||= default_if_blank(ENV["APP_PERF_AGENT_DISABLED"], false)
|
33
33
|
self.ignore_paths ||= /\/assets/
|
34
34
|
self.instrumentation = {
|
35
|
-
:rack
|
36
|
-
:active_record
|
37
|
-
:active_record_import
|
38
|
-
:
|
39
|
-
:
|
40
|
-
:
|
41
|
-
:
|
42
|
-
:
|
43
|
-
:
|
44
|
-
:
|
45
|
-
:
|
46
|
-
:
|
47
|
-
:
|
35
|
+
:rack => { :enabled => true, :backtrace => :app, :source => true, :trace_middleware => false },
|
36
|
+
:active_record => { :enabled => true, :backtrace => :app, :source => true },
|
37
|
+
:active_record_import => { :enabled => true, :backtrace => :app, :source => true },
|
38
|
+
:active_model_serializer => { :enabled => true, :backtrace => :app, :source => true },
|
39
|
+
:action_view => { :enabled => true, :backtrace => :app, :source => true },
|
40
|
+
:action_controller => { :enabled => true, :backtrace => :app, :source => true },
|
41
|
+
:emque_consuming => { :enabled => true, :backtrace => :app, :source => true },
|
42
|
+
:redis => { :enabled => true, :backtrace => :app, :source => true },
|
43
|
+
:sequel => { :enabled => true, :backtrace => :app, :source => true },
|
44
|
+
:sidekiq => { :enabled => true, :backtrace => :app, :source => true },
|
45
|
+
:sinatra => { :enabled => true, :backtrace => :app, :source => true },
|
46
|
+
:net_http => { :enabled => true, :backtrace => :app, :source => true },
|
47
|
+
:typhoeus => { :enabled => true, :backtrace => :app, :source => true },
|
48
|
+
:faraday => { :enabled => true, :backtrace => :app, :source => true }
|
48
49
|
}
|
49
50
|
end
|
50
51
|
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
if ::AppPerfRpm.config.instrumentation[:action_view][:enabled] &&
|
2
|
+
defined?(::ActiveModel) &&
|
3
|
+
defined?(::ActiveModel::Serializer) &&
|
4
|
+
defined?(::ActiveModel::Serializer::CollectionSerializer) &&
|
5
|
+
defined?(::ActiveModel::Serializer::ArraySerializer)
|
6
|
+
[
|
7
|
+
::ActiveModel::Serializer,
|
8
|
+
::ActiveModel::Serializer::CollectionSerializer,
|
9
|
+
::ActiveModel::Serializer::ArraySerializer
|
10
|
+
].each do |klass|
|
11
|
+
klass.class_eval do
|
12
|
+
alias :as_json_without_trace :as_json
|
13
|
+
def as_json(*args)
|
14
|
+
if ::AppPerfRpm::Tracer.tracing?
|
15
|
+
span = AppPerfRpm.tracer.start_span("ActiveModel::Serializer", tags: {
|
16
|
+
"serializer" => self.class.to_s
|
17
|
+
})
|
18
|
+
AppPerfRpm::Utils.log_source_and_backtrace(span, :active_model_serializer)
|
19
|
+
end
|
20
|
+
|
21
|
+
as_json_without_trace(*args)
|
22
|
+
rescue Exception => e
|
23
|
+
if span
|
24
|
+
span.set_tag('error', true)
|
25
|
+
span.log_error(e)
|
26
|
+
end
|
27
|
+
raise
|
28
|
+
ensure
|
29
|
+
span.finish if span
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
AppPerfRpm.logger.info "Initializing activemodel/serializer tracer."
|
35
|
+
end
|
data/lib/app_perf_rpm/tracer.rb
CHANGED
@@ -10,7 +10,7 @@ module AppPerfRpm
|
|
10
10
|
# Since we keep track of the active span, meaning we have entered into
|
11
11
|
# tracing at some point, and we no longer have an active span,
|
12
12
|
# reset tracing.
|
13
|
-
|
13
|
+
sample_off! if !AppPerfRpm.tracer.active_span
|
14
14
|
|
15
15
|
# Now determine if we want to trace, either by an incoming
|
16
16
|
# trace or meeting the sample rate.
|
@@ -18,6 +18,10 @@ module AppPerfRpm
|
|
18
18
|
Thread.current[:sample]
|
19
19
|
end
|
20
20
|
|
21
|
+
def sample_off!
|
22
|
+
Thread.current[:sample] = false
|
23
|
+
end
|
24
|
+
|
21
25
|
def sampled?
|
22
26
|
!!Thread.current[:sample]
|
23
27
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: app_perf_rpm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Randy Girard
|
@@ -162,6 +162,7 @@ files:
|
|
162
162
|
- lib/app_perf_rpm/instrumentation.rb
|
163
163
|
- lib/app_perf_rpm/instruments/action_controller.rb
|
164
164
|
- lib/app_perf_rpm/instruments/action_view.rb
|
165
|
+
- lib/app_perf_rpm/instruments/active_model_serializer.rb
|
165
166
|
- lib/app_perf_rpm/instruments/active_record.rb
|
166
167
|
- lib/app_perf_rpm/instruments/active_record/adapters/mysql2.rb
|
167
168
|
- lib/app_perf_rpm/instruments/active_record/adapters/postgresql.rb
|