remnant 0.4.2 → 0.4.3
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/README.md +74 -0
- data/lib/remnant/base.rb +1 -0
- data/lib/remnant/version.rb +1 -1
- metadata +2 -2
data/README.md
CHANGED
@@ -4,6 +4,19 @@ Remnant hooks into your Rails and discovers your hidden statistics.
|
|
4
4
|
|
5
5
|
* Rails 2.3.x
|
6
6
|
|
7
|
+
#### What Remnant Captures
|
8
|
+
* request - time it takes for a request to be served
|
9
|
+
* action - time it takes for the controller action to finish
|
10
|
+
* view - total time for the totality of render to complete
|
11
|
+
* templates - time it takes for each template/partial to render
|
12
|
+
* filters - time it takes for each filter to run
|
13
|
+
* db - total time it takes for all queries to execute
|
14
|
+
* queries - time it takes for each sql query to execute
|
15
|
+
* gc - time spent inside the GC (if avaialble ree, 1.9.3, etc)
|
16
|
+
|
17
|
+
These stats are sent to statsd:
|
18
|
+
request, action, view, gc, db, filters
|
19
|
+
|
7
20
|
|
8
21
|
#### Install
|
9
22
|
|
@@ -36,12 +49,73 @@ Remnant.configure do
|
|
36
49
|
# environment of application, defaults to Rails.env
|
37
50
|
# included in payload
|
38
51
|
environment "production"
|
52
|
+
|
53
|
+
hook do |results|
|
54
|
+
# custom hook to run after each remnant capture with results
|
55
|
+
# results = {key => ms, key2 => ms2}
|
56
|
+
end
|
39
57
|
end
|
40
58
|
|
41
59
|
Remnant::Rails.setup! # needed if on Rails 2.3.x
|
42
60
|
```
|
43
61
|
|
62
|
+
If you want to capture the times it takes to render templates/partials you
|
63
|
+
should enable Template capturing in a before filter (or before rendering
|
64
|
+
takes place)
|
65
|
+
```ruby
|
66
|
+
before_filter {|c| Remnant::Template.enable! }
|
67
|
+
```
|
68
|
+
|
69
|
+
If you want to capture the sql query times you should enable Database
|
70
|
+
capturing in a before filter (or before rendering takes place)
|
71
|
+
```ruby
|
72
|
+
before_filter {|c| Remnant::Database.enable! }
|
73
|
+
```
|
74
|
+
|
44
75
|
|
76
|
+
#### Example of using hook
|
77
|
+
Below is a way to use all captured information remnant offers
|
78
|
+
```ruby
|
79
|
+
hook do |results|
|
80
|
+
results.map do |key, ms|
|
81
|
+
# loop through specially captures results
|
82
|
+
# [request, action, view]
|
83
|
+
end
|
84
|
+
|
85
|
+
# total time for db
|
86
|
+
Remnant::Database.total_time.to_i
|
87
|
+
|
88
|
+
# total time for all filters
|
89
|
+
Remnant::Filters.total_time.to_i
|
90
|
+
|
91
|
+
# time for individual filters
|
92
|
+
# [{:type => 'before|after|round',
|
93
|
+
# :name => filter_name,
|
94
|
+
# :time => microseconds,
|
95
|
+
# :ms => ms
|
96
|
+
# }]
|
97
|
+
Remnant::Filters.filters.to_json
|
98
|
+
|
99
|
+
# time for individual templates/partials
|
100
|
+
# [view => {'time' => ms,
|
101
|
+
# 'exclusive' => ms,
|
102
|
+
# 'depth' => depth,
|
103
|
+
# 'children' => []
|
104
|
+
# }]
|
105
|
+
if Remnant::Template.enabled?
|
106
|
+
Remnant::Template.trace.root.children.map(&:results).to_json
|
107
|
+
end
|
108
|
+
|
109
|
+
# time for sql queries
|
110
|
+
if Remnant::Database.enabled?
|
111
|
+
queries = Remnant::Database.queries.map {|q| {:sql => q.sql, :ms => q.time * 1000}}
|
112
|
+
end
|
113
|
+
|
114
|
+
# time spent in GC and number of collection attempts
|
115
|
+
Remnant::GC.time.to_i
|
116
|
+
Remnant::GC.collections.to_i
|
117
|
+
end
|
118
|
+
```
|
45
119
|
###### Note
|
46
120
|
Remnant logs to statsd only if your environment is production, demo or staging.
|
47
121
|
For all other environments it logs via Rails.logger.info
|
data/lib/remnant/base.rb
CHANGED
@@ -43,6 +43,7 @@ class Remnant
|
|
43
43
|
|
44
44
|
Remnant.handler.timing("#{key_prefix}.gc", Remnant::GC.time.to_i)
|
45
45
|
Remnant.handler.timing("#{key_prefix}.db", Remnant::Database.total_time.to_i)
|
46
|
+
Remnant.handler.timing("#{key_prefix}.filters", Remnant::Filters.total_time.to_i)
|
46
47
|
|
47
48
|
@sample_counter = 0
|
48
49
|
else
|
data/lib/remnant/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: remnant
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-01-
|
12
|
+
date: 2013-01-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: statsd-ruby
|