builder_apm 0.5.10 → 0.5.12
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2f9d7c7af0913b72c61b524ecc012de2bf7184cbeb0feeb42dbf61e6b7fb71d6
|
4
|
+
data.tar.gz: c4337273e42bec6234f1cb8c2987ab82a5dddb28ee150e179b3162d5d53ebdf5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 70c6b5cbe90f474260100e7d7c563a555f73cfe2f1f8072462f6e6934be7990ebf6c486b02d2b820b879c4fb65828abe86b0cc66b9dcc95348417a84ea051dbe
|
7
|
+
data.tar.gz: 3b8b18b6c41bacc1b3cfd0a0a6ca2f691f097d2ce495bc99583b0582a61c28d654443235982360e3912cf256448de817c8de6a679f1009b1b13a91cddd19912b
|
data/lib/builder_apm/engine.rb
CHANGED
@@ -5,6 +5,7 @@ module BuilderApm
|
|
5
5
|
initializer 'builder_apm.start' do |app|
|
6
6
|
BuilderApm::Controllers::Instrumenter.new.start
|
7
7
|
BuilderApm::Models::Instrumenter.start if BuilderApm.configuration.enable_active_record_profiler
|
8
|
+
BuilderApm::Methods::Instrumenter.new.start if BuilderApm.configuration.enable_methods_profiler
|
8
9
|
end
|
9
10
|
|
10
11
|
config.after_initialize do
|
@@ -10,7 +10,7 @@ module BuilderApm
|
|
10
10
|
def start
|
11
11
|
@trace = setup_trace
|
12
12
|
@trace.enable
|
13
|
-
|
13
|
+
Thread.current[:trace_point] = @trace
|
14
14
|
end
|
15
15
|
|
16
16
|
def stop
|
@@ -21,7 +21,7 @@ module BuilderApm
|
|
21
21
|
me = self
|
22
22
|
TracePoint.new(:call, :return, :end, :raise) do |tp|
|
23
23
|
starttime = Time.now.to_f * 1000
|
24
|
-
me.process_trace_point(tp) if me.valid_trace_point?(tp)
|
24
|
+
me.process_trace_point(tp) if Thread.current[:request_id] && me.valid_trace_point?(tp)
|
25
25
|
duration = (Time.now.to_f * 1000) - starttime
|
26
26
|
|
27
27
|
Thread.current[:method_tracing] = (Thread.current[:method_tracing] ||= 0) + duration
|
@@ -30,7 +30,6 @@ module BuilderApm
|
|
30
30
|
|
31
31
|
def valid_trace_point?(tp)
|
32
32
|
return false unless tp.path.start_with?(@root_path)
|
33
|
-
return false unless Thread.current[:request_id]
|
34
33
|
|
35
34
|
start_controller = Thread.current[:stack]&.first
|
36
35
|
start_controller && "#{tp.defined_class}##{tp.method_id}" != start_controller[:method]
|
@@ -40,7 +39,7 @@ module BuilderApm
|
|
40
39
|
end
|
41
40
|
|
42
41
|
def process_trace_point(tp)
|
43
|
-
if tp.event == :call
|
42
|
+
if tp.event == :call
|
44
43
|
method_id = "#{tp.defined_class}##{tp.method_id}"
|
45
44
|
(@call_times[method_id]||= []) << Process.clock_gettime(Process::CLOCK_MONOTONIC)
|
46
45
|
caller_info = caller_locations(4,1).first
|
@@ -15,12 +15,12 @@ module BuilderApm
|
|
15
15
|
Thread.current[:db_runtime] = 0
|
16
16
|
Thread.current[:method_tracing] = 0
|
17
17
|
Thread.current[:db_tracing] = 0
|
18
|
-
|
18
|
+
Thread.current[:trace_point].disable if Thread.current[:trace_point]
|
19
|
+
Thread.current[:trace_point] = nil
|
19
20
|
|
20
21
|
@status, @headers, @response = @app.call(env)
|
21
22
|
|
22
23
|
ensure
|
23
|
-
@trace.stop if BuilderApm.configuration.enable_methods_profiler
|
24
24
|
end_time = Time.now.to_f * 1000
|
25
25
|
handle_timing(start_time, end_time, request_id)
|
26
26
|
|
data/lib/builder_apm/version.rb
CHANGED
@@ -2,8 +2,6 @@ BuilderApm.configure do |config|
|
|
2
2
|
config.redis_url = 'redis://localhost:6379/0' # optional - defaults to 'redis://localhost:6379/0'
|
3
3
|
config.api_key = ENV["OPENAI_API_KEY"] #required only if you want to use Ai Doctor
|
4
4
|
config.api = "Bravo" # optional - default to 'Bravo' - "Bravo" - internal Ai / "OpenAi" - use openai ChatGPT
|
5
|
-
config.gems_to_track = [] # optional - default to empty array []
|
6
|
-
config.enable_controller_profiler = true # optional - defaults to true
|
7
5
|
config.enable_active_record_profiler = true # optional - defaults to true
|
8
6
|
config.enable_methods_profiler = true # optional - defaults to true
|
9
7
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: builder_apm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Paul Ketelle
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-10-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -130,7 +130,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
130
130
|
- !ruby/object:Gem::Version
|
131
131
|
version: '0'
|
132
132
|
requirements: []
|
133
|
-
rubygems_version: 3.1.
|
133
|
+
rubygems_version: 3.1.0
|
134
134
|
signing_key:
|
135
135
|
specification_version: 4
|
136
136
|
summary: Write a short summary, because RubyGems requires one.
|