simple_apm 1.0.14 → 1.1.1

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.
data/lib/simple_apm.rb CHANGED
@@ -3,12 +3,21 @@ require 'simple_apm/redis'
3
3
  require 'simple_apm/engine'
4
4
  require 'simple_apm/worker'
5
5
  require 'simple_apm/net_http'
6
- require 'callsite'
7
6
  require 'get_process_mem'
8
7
  module SimpleApm
9
8
 
10
9
  SimpleApm::NetHttp.install
11
10
 
11
+ def self.merge_callsite_payload!(payload, locations = caller_locations)
12
+ if dev_caller = locations.detect { |location| location.path.include?(Rails.root.to_s) }
13
+ payload.merge!(
14
+ :line => dev_caller.lineno,
15
+ :filename => dev_caller.path.gsub(Rails.root.to_s, ''),
16
+ :method => dev_caller.base_label
17
+ )
18
+ end
19
+ end
20
+
12
21
  ActiveSupport::Notifications.subscribe('process_action.action_controller') do |name, started, finished, unique_id, payload|
13
22
  remote_addr = (payload[:headers]['HTTP_X_REAL_IP'] rescue nil)
14
23
  if remote_addr.blank? || remote_addr=='127.0.0.1'
@@ -36,10 +45,7 @@ module SimpleApm
36
45
  real_start_time = payload[:real_start_time] || started
37
46
  during = finished - real_start_time
38
47
  th[:net_http_during] += during if th[:net_http_during]
39
- if dev_caller = caller.detect { |c| c.include?(Rails.root.to_s) }
40
- c = ::Callsite.parse(dev_caller)
41
- payload.merge!(:line => c.line, :filename => c.filename.to_s.gsub(Rails.root.to_s, ''), :method => c.method)
42
- end
48
+ SimpleApm.merge_callsite_payload!(payload)
43
49
  ProcessingThread.add_event(
44
50
  name: name,
45
51
  request_id: request_id,
@@ -52,10 +58,7 @@ module SimpleApm
52
58
  ActiveSupport::Notifications.subscribe 'sql.active_record' do |name, started, finished, unique_id, payload|
53
59
  request_id = Thread.current['action_dispatch.request_id'].presence || Thread.main['action_dispatch.request_id']
54
60
  if request_id
55
- if dev_caller = caller.detect {|c| c.include? Rails.root.to_s}
56
- c = ::Callsite.parse(dev_caller)
57
- payload.merge!(:line => c.line, :filename => c.filename.to_s.gsub(Rails.root.to_s, ''), :method => c.method)
58
- end
61
+ SimpleApm.merge_callsite_payload!(payload)
59
62
  ProcessingThread.add_event(
60
63
  name: name,
61
64
  request_id: request_id,
metadata CHANGED
@@ -1,29 +1,42 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_apm
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.14
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - yuanyin.xia
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2019-05-29 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: rails
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '8.1'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '8.1'
26
+ - !ruby/object:Gem::Dependency
27
+ name: sprockets-rails
15
28
  requirement: !ruby/object:Gem::Requirement
16
29
  requirements:
17
30
  - - ">="
18
31
  - !ruby/object:Gem::Version
19
- version: '4.2'
32
+ version: '3.5'
20
33
  type: :runtime
21
34
  prerelease: false
22
35
  version_requirements: !ruby/object:Gem::Requirement
23
36
  requirements:
24
37
  - - ">="
25
38
  - !ruby/object:Gem::Version
26
- version: '4.2'
39
+ version: '3.5'
27
40
  - !ruby/object:Gem::Dependency
28
41
  name: redis-namespace
29
42
  requirement: !ruby/object:Gem::Requirement
@@ -56,16 +69,30 @@ dependencies:
56
69
  name: get_process_mem
57
70
  requirement: !ruby/object:Gem::Requirement
58
71
  requirements:
59
- - - "~>"
72
+ - - ">="
60
73
  - !ruby/object:Gem::Version
61
- version: '0'
74
+ version: '1.0'
62
75
  type: :runtime
63
76
  prerelease: false
64
77
  version_requirements: !ruby/object:Gem::Requirement
65
78
  requirements:
66
- - - "~>"
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '1.0'
82
+ - !ruby/object:Gem::Dependency
83
+ name: sqlite3
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '2.1'
89
+ type: :development
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
67
94
  - !ruby/object:Gem::Version
68
- version: '0'
95
+ version: '2.1'
69
96
  description: 'xyy: Simple Apm View for rails using redis.'
70
97
  email:
71
98
  - xiayuanyin@qq.com
@@ -99,6 +126,8 @@ files:
99
126
  - app/views/simple_apm/apm/data.html.erb
100
127
  - app/views/simple_apm/apm/index.html.erb
101
128
  - app/views/simple_apm/apm/show.html.erb
129
+ - config/locales/simple_apm.en.yml
130
+ - config/locales/simple_apm.zh-CN.yml
102
131
  - config/routes.rb
103
132
  - config/simple_apm.yml
104
133
  - lib/generators/simple_apm/install_generator.rb
@@ -115,7 +144,6 @@ homepage: https://github.com/xiayuanyin/simple_apm
115
144
  licenses:
116
145
  - MIT
117
146
  metadata: {}
118
- post_install_message:
119
147
  rdoc_options: []
120
148
  require_paths:
121
149
  - lib
@@ -130,9 +158,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
130
158
  - !ruby/object:Gem::Version
131
159
  version: '0'
132
160
  requirements: []
133
- rubyforge_project:
134
- rubygems_version: 2.6.14
135
- signing_key:
161
+ rubygems_version: 3.6.9
136
162
  specification_version: 4
137
163
  summary: 'xyy: Simple Rails Apm'
138
164
  test_files: []