nunes 0.2.0 → 0.3.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.
- data/Changelog.md +6 -0
- data/README.md +4 -0
- data/lib/nunes/adapter.rb +7 -9
- data/lib/nunes/subscribers/action_view.rb +6 -3
- data/lib/nunes/version.rb +1 -1
- data/test/adapter_test.rb +3 -3
- data/test/view_instrumentation_test.rb +2 -2
- metadata +2 -2
data/Changelog.md
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
# 0.3.0
|
2
|
+
|
3
|
+
## Backwards Compatibility Break
|
4
|
+
|
5
|
+
* Cleaning action view template and partial paths before sending to adapter. Prior to this change, action view metrics looked like: action_view.template.app.views.posts.post.html.erb. They now look like: action_view.template.app_views_posts_post_html_erb. The reason is that "." is typically a namespace in most metric services, which means really deep nesting of metrics, especially for views rendered from engines in gems. This keeps shallows up the nesting. Thanks to @dewski for reporting.
|
6
|
+
|
1
7
|
# 0.2.0
|
2
8
|
|
3
9
|
## Backwards Compatibility Break
|
data/README.md
CHANGED
@@ -16,6 +16,10 @@ Or install it yourself as:
|
|
16
16
|
|
17
17
|
$ gem install nunes
|
18
18
|
|
19
|
+
## Compatibility
|
20
|
+
|
21
|
+
* >= Ruby 1.9
|
22
|
+
|
19
23
|
## Usage
|
20
24
|
|
21
25
|
nunes works out of the box with [instrumental app](http://instrumentalapp.com) (my person favorite) and [statsd](https://github.com/reinh/statsd). All you need to do is subscribe using an instance of statsd or instrumental's agent and you are good to go.
|
data/lib/nunes/adapter.rb
CHANGED
@@ -57,19 +57,17 @@ module Nunes
|
|
57
57
|
# Private: The default metric namespace separator.
|
58
58
|
Separator = "."
|
59
59
|
|
60
|
-
RegexSeparator = Regexp.escape(Separator)
|
61
|
-
|
62
|
-
# Private: Regex to match metric ending with separator.
|
63
|
-
StartsOrEndsWithSeparator = /\A#{RegexSeparator}|#{RegexSeparator}\Z/
|
64
|
-
|
65
60
|
# Private
|
66
61
|
Nothing = ""
|
67
62
|
|
68
63
|
# Private: Prepare a metric name before it is sent to the adapter's client.
|
69
|
-
def prepare(metric)
|
70
|
-
|
71
|
-
|
72
|
-
|
64
|
+
def prepare(metric, replacement = Separator)
|
65
|
+
escaped = Regexp.escape(replacement)
|
66
|
+
replace_begin_end_regex = /\A#{escaped}|#{escaped}\Z/
|
67
|
+
|
68
|
+
metric = metric.to_s.gsub(ReplaceRegex, replacement)
|
69
|
+
metric.squeeze!(replacement)
|
70
|
+
metric.gsub!(replace_begin_end_regex, Nothing)
|
73
71
|
metric
|
74
72
|
end
|
75
73
|
end
|
@@ -29,14 +29,17 @@ module Nunes
|
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
|
+
# Private: What to replace file separators with.
|
33
|
+
FileSeparatorReplacement = "_"
|
34
|
+
|
32
35
|
# Private: Converts an identifier to a metric name. Strips out the rails
|
33
36
|
# root from the full path.
|
34
37
|
#
|
35
38
|
# identifier - The String full path to the template or partial.
|
36
39
|
def identifier_to_metric(kind, identifier)
|
37
|
-
|
38
|
-
|
39
|
-
"action_view.#{kind}.#{
|
40
|
+
view_path = identifier.to_s.gsub(::Rails.root.to_s, "")
|
41
|
+
metric = adapter.prepare(view_path, FileSeparatorReplacement)
|
42
|
+
"action_view.#{kind}.#{metric}"
|
40
43
|
end
|
41
44
|
end
|
42
45
|
end
|
data/lib/nunes/version.rb
CHANGED
data/test/adapter_test.rb
CHANGED
@@ -106,11 +106,11 @@ class AdapterTest < ActiveSupport::TestCase
|
|
106
106
|
end
|
107
107
|
end
|
108
108
|
|
109
|
-
test "prepare does not modify original metric" do
|
109
|
+
test "prepare does not modify original metric object" do
|
110
110
|
adapter = Nunes::Adapter.new(nil)
|
111
|
-
original = "app
|
111
|
+
original = "app.views.posts"
|
112
112
|
result = adapter.prepare("original")
|
113
113
|
|
114
|
-
assert_equal "app
|
114
|
+
assert_equal "app.views.posts", original
|
115
115
|
end
|
116
116
|
end
|
@@ -18,13 +18,13 @@ class ViewInstrumentationTest < ActionController::TestCase
|
|
18
18
|
get :index
|
19
19
|
|
20
20
|
assert_response :success
|
21
|
-
assert_timer "action_view.template.
|
21
|
+
assert_timer "action_view.template.app_views_posts_index_html_erb"
|
22
22
|
end
|
23
23
|
|
24
24
|
test "render_partial" do
|
25
25
|
get :index
|
26
26
|
|
27
27
|
assert_response :success
|
28
|
-
assert_timer "action_view.partial.
|
28
|
+
assert_timer "action_view.partial.app_views_posts_post_html_erb"
|
29
29
|
end
|
30
30
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nunes
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
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-04-
|
12
|
+
date: 2013-04-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|