simple_apm 1.0.7 → 1.0.8
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.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7022496ba04174ad3f103383c9388b3b5203c79f22eec0381bb50f6d2d8d6f14
|
4
|
+
data.tar.gz: 2e6faa25b91f124e29c9c092cb432fcfd3593631daecc18edd61182f19a9d10b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bafd772296505aae3f057b5a6a51fed6aba84f1c31dc81245b80c989b6c9f9845b0e16d99e769e7a7f74e6e538402ff7bd0983b8817c74a6990aa29c64804e64
|
7
|
+
data.tar.gz: e8393025dec36cf4a329a10f69a4a187d5361a07f8e59d3dc1751aa931562a323cf2e3ff34e11d2808a20ef8ac721d83ed56c4e7e5983e08758092b91a31c012
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# 请求 Controller#Action
|
2
2
|
module SimpleApm
|
3
3
|
class Action
|
4
|
-
attr_accessor :name, :click_count, :time, :slow_time, :slow_id, :fast_time, :fast_id
|
4
|
+
attr_accessor :name, :click_count, :time, :http_time, :slow_time, :slow_id, :fast_time, :fast_id
|
5
5
|
|
6
6
|
def initialize(h)
|
7
7
|
h.each do |k, v|
|
@@ -21,6 +21,10 @@ module SimpleApm
|
|
21
21
|
@slow_requests ||= SimpleApm::SlowRequest.list_by_action(name, limit, offset)
|
22
22
|
end
|
23
23
|
|
24
|
+
def avg_http_time
|
25
|
+
http_time.to_f/click_count.to_i
|
26
|
+
end
|
27
|
+
|
24
28
|
def avg_time
|
25
29
|
time.to_f/click_count.to_i
|
26
30
|
end
|
@@ -39,6 +43,8 @@ module SimpleApm
|
|
39
43
|
SimpleApm::Redis.hincrby _key, 'click_count', 1
|
40
44
|
# 总时间
|
41
45
|
SimpleApm::Redis.hincrbyfloat _key, 'time', h['during']
|
46
|
+
# 外部http访问时间
|
47
|
+
SimpleApm::Redis.hincrbyfloat _key, 'http_time', h['net_http_during']
|
42
48
|
_slow = SimpleApm::Redis.hget _key, 'slow_time'
|
43
49
|
if _slow.nil? || h['during'].to_f > _slow.to_f
|
44
50
|
# 记录最慢访问
|
@@ -4,6 +4,7 @@
|
|
4
4
|
<th>Name</th>
|
5
5
|
<th>点击次数</th>
|
6
6
|
<th>平均响应时间</th>
|
7
|
+
<th>平均http访问时间</th>
|
7
8
|
<th>最快响应时间</th>
|
8
9
|
<th>最慢响应时间</th>
|
9
10
|
</tr>
|
@@ -14,6 +15,7 @@
|
|
14
15
|
<td><%= link_to action.name, action_info_path(action_name: action.name) %></td>
|
15
16
|
<td><%= action.click_count %></td>
|
16
17
|
<td><%= sec_str action.avg_time %></td>
|
18
|
+
<td><%= sec_str action.avg_http_time %></td>
|
17
19
|
<td><%= link_to sec_str(action.fast_time), show_path(id: action.fast_id) %></td>
|
18
20
|
<td><%= link_to sec_str(action.slow_time), show_path(id: action.slow_id) %></td>
|
19
21
|
</tr>
|
@@ -48,7 +48,7 @@
|
|
48
48
|
</tr>
|
49
49
|
<% @request.net_http_requests.each do |r| %>
|
50
50
|
<tr>
|
51
|
-
<td><%= r.started %></td>
|
51
|
+
<td><%= time_label r.started %></td>
|
52
52
|
<td><%= r.url %></td>
|
53
53
|
<td><%= sec_str r.during %></td>
|
54
54
|
<td><%= "#{r.filename}: #{r.line}" if r.filename.present? %></td>
|
data/lib/simple_apm/net_http.rb
CHANGED
@@ -3,12 +3,24 @@ module SimpleApm
|
|
3
3
|
class << self
|
4
4
|
def install
|
5
5
|
Net::HTTP.class_eval do
|
6
|
-
alias
|
6
|
+
alias orig_request_apm request unless method_defined?(:orig_request)
|
7
7
|
|
8
8
|
def request(req, body = nil, &block)
|
9
|
-
url =
|
10
|
-
|
11
|
-
|
9
|
+
url = if @port == '80'
|
10
|
+
"http://#{@address}#{req.path}"
|
11
|
+
elsif @port == '443'
|
12
|
+
"https://#{@address}#{req.path}"
|
13
|
+
else
|
14
|
+
"http://#{@address}:#{@port}#{req.path}"
|
15
|
+
end
|
16
|
+
# 会调用两次(HTTParty)
|
17
|
+
if started?
|
18
|
+
ActiveSupport::Notifications.instrument "net_http.request", url: url, host: @address, path: req.path do
|
19
|
+
@response = orig_request_apm(req, body, &block)
|
20
|
+
end
|
21
|
+
else
|
22
|
+
# 去connect
|
23
|
+
@response = orig_request_apm(req, body, &block)
|
12
24
|
end
|
13
25
|
@response
|
14
26
|
end
|
data/lib/simple_apm/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_apm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- yuanyin.xia
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-08-
|
11
|
+
date: 2018-08-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|