mil-rack_apm 0.1.1 → 0.2.0
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 +4 -4
- data/lib/mil/rack_apm/data.rb +25 -9
- data/lib/mil/rack_apm/public/js/js.js +19 -0
- data/lib/mil/rack_apm/version.rb +1 -1
- data/lib/mil/rack_apm/views/index.erb +8 -5
- data/lib/mil/rack_apm/web.rb +8 -0
- data/lib/mil/rack_apm/web_data.rb +7 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d1be2a80e1a87635650acee6937618c72f44aa23
|
4
|
+
data.tar.gz: 03e321c9c0769718e168be3a618e8233ca97903c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d687477d7702f8bfe3ecf1490595912cd126166c63ea71c5954ade0c5d65e85073b8475d3526afdb84f0891648a52f26482e8e801cf86c792a86f1d75e6fc25e
|
7
|
+
data.tar.gz: 0fc3ca9ccd0c03ee7386bbec603d91c5cba65c1009607d2d75716665e33c10ab148a8ab8de443b3e66f3c5c6e4506a56d87a23f46fdb79127f58a6862088c214
|
data/lib/mil/rack_apm/data.rb
CHANGED
@@ -2,22 +2,30 @@ module Mil
|
|
2
2
|
module RackApm
|
3
3
|
class Data
|
4
4
|
|
5
|
-
|
5
|
+
|
6
|
+
def initialize(app, skip_path = [])
|
6
7
|
@app = app
|
8
|
+
skip_path = [skip_path] if skip_path.class == String
|
9
|
+
@skip_path = skip_path
|
7
10
|
end
|
8
11
|
|
9
12
|
def call(env)
|
10
13
|
start_time = time_now
|
11
14
|
status, header, body = @app.call(env)
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
15
|
+
begin
|
16
|
+
request_time = (time_now - start_time) * 1000
|
17
|
+
return status, header, body if skip_path? env['REQUEST_PATH']
|
18
|
+
unless env['REQUEST_PATH'] =~ /.*?\.(png|css|jpg|js|ico|jpeg|gif|bmp)$/
|
19
|
+
q_path = path_split_to env['REQUEST_PATH']
|
20
|
+
i = "mili-#{env['REQUEST_METHOD']}-#{q_path}"
|
21
|
+
t = "milt-#{env['REQUEST_METHOD']}-#{q_path}"
|
22
|
+
redis.incr i
|
23
|
+
redis.incrbyfloat t, ('%0.3f' % request_time)
|
24
|
+
end
|
25
|
+
[status, header, body]
|
26
|
+
rescue => e
|
27
|
+
[status, header, body]
|
19
28
|
end
|
20
|
-
[status, header, body]
|
21
29
|
end
|
22
30
|
|
23
31
|
def redis
|
@@ -44,6 +52,14 @@ module Mil
|
|
44
52
|
end
|
45
53
|
end
|
46
54
|
|
55
|
+
def skip_path?(path)
|
56
|
+
return false if @skip_path.empty?
|
57
|
+
@skip_path.each do |p|
|
58
|
+
return true if path =~ /^#{p}.*/
|
59
|
+
end
|
60
|
+
false
|
61
|
+
end
|
62
|
+
|
47
63
|
def path_split_to(path)
|
48
64
|
m = path.split '/'
|
49
65
|
m.map! do |t|
|
@@ -31,6 +31,25 @@ $(document).ready(function(){
|
|
31
31
|
}
|
32
32
|
});
|
33
33
|
|
34
|
+
$('.delete_key').click(function(){
|
35
|
+
if(confirm("Are you delete the key?")){
|
36
|
+
var url = window.location.href.split('?')[0];
|
37
|
+
var obj = $(this);
|
38
|
+
$.ajax({
|
39
|
+
method: "DELETE",
|
40
|
+
url: url +"/delete_key",
|
41
|
+
data: { key: obj.attr('key') },
|
42
|
+
success: function(message){
|
43
|
+
if('ok' == message){
|
44
|
+
obj.parents('tr').remove();
|
45
|
+
}else{
|
46
|
+
alert('delete error!');
|
47
|
+
}
|
48
|
+
}
|
49
|
+
})
|
50
|
+
}
|
51
|
+
})
|
52
|
+
|
34
53
|
})
|
35
54
|
|
36
55
|
var update_data = function(){
|
data/lib/mil/rack_apm/version.rb
CHANGED
@@ -46,14 +46,17 @@
|
|
46
46
|
<div class="col-md-offset-1 col-md-10 table-responsive">
|
47
47
|
<table class="table table-hover" id="table_data">
|
48
48
|
<tr class="active no_data" >
|
49
|
-
<th>REQUEST METHOD</th><th>PATH</th><th>COUNT</th><th>Mean Time</th>
|
49
|
+
<th>REQUEST METHOD</th><th>PATH</th><th>COUNT</th><th>Mean Time</th><th>Action</th>
|
50
50
|
</tr>
|
51
51
|
<% @data.each do |data| %>
|
52
52
|
<tr class="<%= tr_css data[:request_method] %>">
|
53
|
-
<
|
54
|
-
<
|
55
|
-
<
|
56
|
-
<
|
53
|
+
<td class="request_method"><%= data[:request_method] %></td>
|
54
|
+
<td class="path"><%= data[:path].nil? ? '/' : data[:path] %></td>
|
55
|
+
<td class="count"><%= data[:count] %></td>
|
56
|
+
<td class="times"><%= '%0.3f' % (data[:times].to_f / data[:count].to_f) %>ms</td>
|
57
|
+
<td>
|
58
|
+
<a href="javascript:void(0)" class="btn btn-danger btn-xs delete_key" key="<%= "#{data[:request_method]}-#{data[:path]}"%>" role="button">删除</a>
|
59
|
+
</td>
|
57
60
|
</tr>
|
58
61
|
<% end %>
|
59
62
|
</table>
|
data/lib/mil/rack_apm/web.rb
CHANGED
@@ -10,13 +10,19 @@ module Mil
|
|
10
10
|
|
11
11
|
#[{key: xx, count: 1, times: 23},{key: xx, count: 1, times: 23}]
|
12
12
|
def default_data
|
13
|
-
keys =
|
13
|
+
keys = red.keys 'mili-*'
|
14
14
|
count_array = redis_key_count keys
|
15
15
|
sort_array = sort_desc count_array
|
16
16
|
data = array_set_data sort_array
|
17
17
|
data
|
18
18
|
end
|
19
19
|
|
20
|
+
def delete_key(key)
|
21
|
+
keys = red.keys "*-#{key}"
|
22
|
+
count = red.del keys
|
23
|
+
count.to_i > 0
|
24
|
+
end
|
25
|
+
|
20
26
|
private
|
21
27
|
|
22
28
|
def red
|