metrician 0.0.8 → 0.0.9

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
  SHA1:
3
- metadata.gz: 52f0bb06f70b89a43c10dfdbbfa5b989c2dfad48
4
- data.tar.gz: 61bc03ef7baf8a15640ed25e8608fe8c3481a8ce
3
+ metadata.gz: 50753f3c05fa7176d026cb28dad17d914eaba6dd
4
+ data.tar.gz: a2488841dfdf26f306eee4f874e59ab9e065506e
5
5
  SHA512:
6
- metadata.gz: 865aa70211d3d49137d2b8e53b9b7568fea8b74299bed02bda52aa24b8a4ec4b8850e705a12b8ad63b92088d8aa486678eee465c685d55f09381ecc79f5b0809
7
- data.tar.gz: 0af23a989d74ccbb153fd665d1bdac9c9eec041aafd7420050dcc139efde8712dcaead5b981340f0e36e485a9b4fb5b2d745aa1437642c5af0b6405aa6b81a6a
6
+ metadata.gz: cf88d35020ebcc9294f25c3933097f8627d6dec8c5d3658e035382df7ba96899dc84cc18040a9ce40755bd286923b5cb23522c28689ed17f68d854748cc760c7
7
+ data.tar.gz: 3b3a1bcf966aef58b7bec42d246ad461e022f42b13f1952c6a78949c68dd208463767c7ba03657fc075ef7bc87670e69aab76fd93b0d101e9281c8783743fd06
@@ -1,3 +1,6 @@
1
+ ### 0.0.9 [August 16, 2017]
2
+ * Rename some metrics and add common prefix
3
+
1
4
  ### 0.0.8 [August 4, 2017]
2
5
  * Integrate with memcached and dalli if both are available
3
6
 
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- metrician (0.0.8)
4
+ metrician (0.0.9)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- metrician (0.0.8)
4
+ metrician (0.0.9)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -17,6 +17,7 @@ module Metrician
17
17
  :logger,
18
18
  "logger=".to_sym,
19
19
  ]
20
+ DEFAULT_PREFIX = "app.".freeze
20
21
 
21
22
  def self.activate(agent)
22
23
  self.agent = agent
@@ -51,17 +52,15 @@ module Metrician
51
52
  klass.to_s.underscore.gsub(%r{/}, ".")
52
53
  end
53
54
 
54
- # TODO: consider removal/movement to Instrumental Agent
55
55
  def self.prefix=(prefix)
56
+ @prefixed = nil
56
57
  @prefix = prefix.to_s[-1] == "." ? prefix.to_s : "#{prefix}."
57
58
  end
58
59
 
59
- # TODO: consider removal/movement to Instrumental Agent
60
60
  def self.prefix
61
- @prefix || ""
61
+ @prefix ||= DEFAULT_PREFIX
62
62
  end
63
63
 
64
- # TODO: consider removal/movement to Instrumental Agent
65
64
  def self.prefixed?
66
65
  @prefixed ||= !prefix.empty?
67
66
  end
@@ -9,6 +9,8 @@ module Metrician
9
9
  # middleware).
10
10
  class RequestTiming
11
11
 
12
+ WEB_METRIC = "web".freeze
13
+
12
14
  def initialize(app)
13
15
  @app = app
14
16
  end
@@ -73,16 +75,16 @@ module Metrician
73
75
  end
74
76
 
75
77
  def gauge(kind, value, route = nil)
76
- Metrician.gauge("web.#{kind}", value)
78
+ Metrician.gauge("#{WEB_METRIC}.#{kind}", value)
77
79
  if route && Middleware.route_tracking?
78
- Metrician.gauge("web.#{kind}.#{route}", value)
80
+ Metrician.gauge("#{WEB_METRIC}.#{kind}.#{route}", value)
79
81
  end
80
82
  end
81
83
 
82
84
  def increment(kind, route = nil)
83
- Metrician.increment("web.#{kind}")
85
+ Metrician.increment("#{WEB_METRIC}.#{kind}")
84
86
  if route && Middleware.route_tracking?
85
- Metrician.increment("web.#{kind}.#{route}")
87
+ Metrician.increment("#{WEB_METRIC}.#{kind}.#{route}")
86
88
  end
87
89
  end
88
90
 
@@ -17,9 +17,10 @@ module Metrician
17
17
 
18
18
  module QueryInterceptor
19
19
 
20
- COMMAND_EXP = /^(select|update|insert|delete|show|begin|commit|rollback|describe)/i
21
- SQL_EXP = /#{COMMAND_EXP} (?:into |from |.+? from )?(?:[`"]([a-z_]+)[`"])?/i
22
- OTHER = "other".freeze
20
+ COMMAND_EXP = /^(select|update|insert|delete|show|begin|commit|rollback|describe)/i
21
+ SQL_EXP = /#{COMMAND_EXP} (?:into |from |.+? from )?(?:[`"]([a-z_]+)[`"])?/i
22
+ OTHER = "other".freeze
23
+ QUERY_METRIC = "database.query"
23
24
 
24
25
  def self.included(instrumented_class)
25
26
  return if instrumented_class.method_defined?(:log_without_metrician)
@@ -36,7 +37,7 @@ module Metrician
36
37
  sql = sql.dup.force_encoding(Encoding::BINARY)
37
38
  config = Metrician.configuration[:database]
38
39
  metrics = []
39
- metrics << "database.query" if config[:query][:enabled]
40
+ metrics << QUERY_METRIC if config[:query][:enabled]
40
41
  if [:command, :table, :command_and_table].any?{ |key| config[key][:enabled] }
41
42
  command, table = parse_sql(sql)
42
43
  metrics << "database.#{command}" if config[:command][:enabled] && command
@@ -1,6 +1,8 @@
1
1
  module Metrician
2
2
  class Honeybadger < Reporter
3
3
 
4
+ EXCEPTION_METRIC = "tracked_exception"
5
+
4
6
  def self.enabled?
5
7
  !!defined?(::Honeybadger) &&
6
8
  Metrician.configuration[:exception][:enabled]
@@ -15,9 +17,9 @@ module Metrician
15
17
  # context_manager.get_rack_env
16
18
  notify_without_metrician(exception, options)
17
19
  ensure
18
- Metrician.increment("exception.raise") if Metrician.configuration[:exception][:raise][:enabled]
20
+ Metrician.increment(EXCEPTION_METRIC) if Metrician.configuration[:exception][:raise][:enabled]
19
21
  # TODO: underscore is rails only
20
- Metrician.increment("exception.raise.#{Metrician.dotify(exception.class.name.underscore)}") if exception && Metrician.configuration[:exception][:exception_specific][:enabled]
22
+ Metrician.increment("#{EXCEPTION_METRIC}.#{Metrician.dotify(exception.class.name.underscore)}") if exception && Metrician.configuration[:exception][:exception_specific][:enabled]
21
23
  end
22
24
  alias_method :notify_without_metrician, :notify
23
25
  alias_method :notify, :notify_with_metrician
@@ -1,6 +1,7 @@
1
1
  module Metrician
2
2
  class Memcache < Reporter
3
3
 
4
+ CACHE_METRIC = "cache.command".freeze
4
5
  METHODS = %i[get delete cas prepend append replace decrement increment add set].freeze
5
6
 
6
7
  def self.memcached_gem?
@@ -40,8 +41,8 @@ module Metrician
40
41
  #{method_name}_without_metrician_trace(*args, &blk)
41
42
  ensure
42
43
  duration = (Time.now - start_time).to_f
43
- Metrician.gauge("cache.command", duration) if Metrician.configuration[:cache][:command][:enabled]
44
- Metrician.gauge("cache.command.#{method_name}", duration) if Metrician.configuration[:cache][:command_specific][:enabled]
44
+ Metrician.gauge(::Metrician::Memcache::CACHE_METRIC, duration) if Metrician.configuration[:cache][:command][:enabled]
45
+ Metrician.gauge("#{::Metrician::Memcache::CACHE_METRIC}.#{method_name}", duration) if Metrician.configuration[:cache][:command_specific][:enabled]
45
46
  end
46
47
  end
47
48
  alias #{method_name}_without_metrician_trace #{method_name}
@@ -3,6 +3,8 @@ require "net/http"
3
3
  module Metrician
4
4
  class NetHttp < Reporter
5
5
 
6
+ REQUEST_METRIC = "outgoing_request"
7
+
6
8
  def self.enabled?
7
9
  !!defined?(Net::HTTP) &&
8
10
  Metrician.configuration[:external_service][:enabled]
@@ -16,7 +18,7 @@ module Metrician
16
18
  begin
17
19
  request_without_metrician_trace(req, body, &block)
18
20
  ensure
19
- Metrician.gauge("service.request", (Time.now - start_time).to_f) if Metrician.configuration[:external_service][:request][:enabled]
21
+ Metrician.gauge(REQUEST_METRIC, (Time.now - start_time).to_f) if Metrician.configuration[:external_service][:request][:enabled]
20
22
  end
21
23
  end
22
24
  alias_method :request_without_metrician_trace, :request
@@ -1,6 +1,8 @@
1
1
  module Metrician
2
2
  class Redis < Reporter
3
3
 
4
+ CACHE_METRIC = "cache.command".freeze
5
+
4
6
  def self.enabled?
5
7
  !!defined?(::Redis) &&
6
8
  Metrician.configuration[:cache][:enabled]
@@ -15,10 +17,10 @@ module Metrician
15
17
  call_without_metrician_trace(*args, &blk)
16
18
  ensure
17
19
  duration = (Time.now - start_time).to_f
18
- Metrician.gauge("cache.command", duration) if Metrician.configuration[:cache][:command][:enabled]
20
+ Metrician.gauge(CACHE_METRIC, duration) if Metrician.configuration[:cache][:command][:enabled]
19
21
  if Metrician.configuration[:cache][:command_specific][:enabled]
20
22
  method_name = args[0].is_a?(Array) ? args[0][0] : args[0]
21
- Metrician.gauge("cache.command.#{method_name}", duration)
23
+ Metrician.gauge("#{CACHE_METRIC}.#{method_name}", duration)
22
24
  end
23
25
  end
24
26
  end
@@ -1,5 +1,5 @@
1
1
  module Metrician
2
2
 
3
- VERSION = "0.0.8".freeze
3
+ VERSION = "0.0.9".freeze
4
4
 
5
5
  end
@@ -73,7 +73,7 @@ RSpec.describe Metrician do
73
73
  describe "honeybadger" do
74
74
  specify "exceptions are instrumented" do
75
75
  @agent.stub(:increment)
76
- @agent.should_receive(:increment).with("exception.raise", 1)
76
+ @agent.should_receive(:increment).with("app.tracked_exception", 1)
77
77
  Honeybadger.notify('Something went wrong.', {
78
78
  error_class: 'MyClass',
79
79
  context: {my_data: 'value'}
@@ -83,7 +83,7 @@ RSpec.describe Metrician do
83
83
  specify "exceptions are instrumented (job specific, string)" do
84
84
  Metrician.configuration[:exception][:exception_specific][:enabled] = true
85
85
  @agent.stub(:increment)
86
- @agent.should_receive(:increment).with("exception.raise.string", 1)
86
+ @agent.should_receive(:increment).with("app.tracked_exception.string", 1)
87
87
  Honeybadger.notify('Something went wrong.', {
88
88
  error_class: 'MyClass',
89
89
  context: {my_data: 'value'}
@@ -93,7 +93,7 @@ RSpec.describe Metrician do
93
93
  specify "exceptions are instrumented (job specific, exception)" do
94
94
  Metrician.configuration[:exception][:exception_specific][:enabled] = true
95
95
  @agent.stub(:increment)
96
- @agent.should_receive(:increment).with("exception.raise.runtime_error", 1)
96
+ @agent.should_receive(:increment).with("app.tracked_exception.runtime_error", 1)
97
97
  begin
98
98
  fail 'badgers!'
99
99
  rescue => exception
@@ -113,7 +113,7 @@ RSpec.describe Metrician do
113
113
 
114
114
  specify "top level queries are instrumented" do
115
115
  @agent.stub(:gauge)
116
- @agent.should_receive(:gauge).with("database.query", anything)
116
+ @agent.should_receive(:gauge).with("app.database.query", anything)
117
117
 
118
118
  User.where(name: "foobar").to_a
119
119
  end
@@ -121,7 +121,7 @@ RSpec.describe Metrician do
121
121
  specify "per command instrumentation" do
122
122
  Metrician.configuration[:database][:command][:enabled] = true
123
123
  @agent.stub(:gauge)
124
- @agent.should_receive(:gauge).with("database.select", anything)
124
+ @agent.should_receive(:gauge).with("app.database.select", anything)
125
125
 
126
126
  User.where(name: "foobar").to_a
127
127
  end
@@ -129,7 +129,7 @@ RSpec.describe Metrician do
129
129
  specify "per table instrumentation" do
130
130
  Metrician.configuration[:database][:table][:enabled] = true
131
131
  @agent.stub(:gauge)
132
- @agent.should_receive(:gauge).with("database.users", anything)
132
+ @agent.should_receive(:gauge).with("app.database.users", anything)
133
133
 
134
134
  User.where(name: "foobar").to_a
135
135
  end
@@ -137,7 +137,7 @@ RSpec.describe Metrician do
137
137
  specify "per command and table instrumentation" do
138
138
  Metrician.configuration[:database][:command_and_table][:enabled] = true
139
139
  @agent.stub(:gauge)
140
- @agent.should_receive(:gauge).with("database.select.users", anything)
140
+ @agent.should_receive(:gauge).with("app.database.select.users", anything)
141
141
 
142
142
  User.where(name: "foobar").to_a
143
143
  end
@@ -153,7 +153,7 @@ RSpec.describe Metrician do
153
153
  specify "DelayedJob is instrumented" do
154
154
  @agent.stub(:gauge)
155
155
 
156
- @agent.should_receive(:gauge).with("jobs.run", anything)
156
+ @agent.should_receive(:gauge).with("app.jobs.run", anything)
157
157
  Delayed::Job.enqueue(TestDelayedJob.new(success: true))
158
158
  Delayed::Worker.new(exit_on_complete: true).start
159
159
  end
@@ -161,7 +161,7 @@ RSpec.describe Metrician do
161
161
  specify "job errors are instrumented" do
162
162
  @agent.stub(:increment)
163
163
 
164
- @agent.should_receive(:increment).with("jobs.error", 1)
164
+ @agent.should_receive(:increment).with("app.jobs.error", 1)
165
165
  Delayed::Job.enqueue(TestDelayedJob.new(error: true))
166
166
  Delayed::Worker.new(exit_on_complete: true).start
167
167
  end
@@ -170,7 +170,7 @@ RSpec.describe Metrician do
170
170
  Metrician.configuration[:jobs][:job_specific][:enabled] = true
171
171
  @agent.stub(:gauge)
172
172
 
173
- @agent.should_receive(:gauge).with("jobs.run.job.TestDelayedJob", anything)
173
+ @agent.should_receive(:gauge).with("app.jobs.run.job.TestDelayedJob", anything)
174
174
  Delayed::Job.enqueue(TestDelayedJob.new(success: true))
175
175
  Delayed::Worker.new(exit_on_complete: true).start
176
176
  end
@@ -189,14 +189,14 @@ RSpec.describe Metrician do
189
189
 
190
190
  specify "Resque is instrumented" do
191
191
  @agent.stub(:gauge)
192
- @agent.should_receive(:gauge).with("jobs.run", anything)
192
+ @agent.should_receive(:gauge).with("app.jobs.run", anything)
193
193
 
194
194
  Resque::Job.create(:default, TestResqueJob, { "success" => true })
195
195
  end
196
196
 
197
197
  specify "job errors are instrumented" do
198
198
  @agent.stub(:increment)
199
- @agent.should_receive(:increment).with("jobs.error", 1)
199
+ @agent.should_receive(:increment).with("app.jobs.error", 1)
200
200
 
201
201
  lambda { Resque::Job.create(:default, TestResqueJob, { "error" => true }) }.should raise_error(StandardError)
202
202
  end
@@ -221,7 +221,7 @@ RSpec.describe Metrician do
221
221
 
222
222
  specify "Sidekiq is instrumented" do
223
223
  @agent.stub(:gauge)
224
- @agent.should_receive(:gauge).with("jobs.run", anything)
224
+ @agent.should_receive(:gauge).with("app.jobs.run", anything)
225
225
 
226
226
  # avoid load order error of sidekiq here by just including the
227
227
  # worker bits at latest possible time
@@ -230,7 +230,7 @@ RSpec.describe Metrician do
230
230
 
231
231
  specify "job errors are instrumented" do
232
232
  @agent.stub(:increment)
233
- @agent.should_receive(:increment).with("jobs.error", 1)
233
+ @agent.should_receive(:increment).with("app.jobs.error", 1)
234
234
 
235
235
  # avoid load order error of sidekiq here by just including the
236
236
  # worker bits at latest possible time
@@ -241,7 +241,7 @@ RSpec.describe Metrician do
241
241
  Metrician.configuration[:jobs][:job_specific][:enabled] = true
242
242
  @agent.stub(:gauge)
243
243
 
244
- @agent.should_receive(:gauge).with("jobs.run.job.TestSidekiqWorker", anything)
244
+ @agent.should_receive(:gauge).with("app.jobs.run.job.TestSidekiqWorker", anything)
245
245
  # avoid load order error of sidekiq here by just including the
246
246
  # worker bits at latest possible time
247
247
  TestSidekiqWorker.perform_async({ "success" => true})
@@ -250,7 +250,7 @@ RSpec.describe Metrician do
250
250
  specify "job errors are instrumented per job" do
251
251
  Metrician.configuration[:jobs][:job_specific][:enabled] = true
252
252
  @agent.stub(:increment)
253
- @agent.should_receive(:increment).with("jobs.error.job.TestSidekiqWorker", 1)
253
+ @agent.should_receive(:increment).with("app.jobs.error.job.TestSidekiqWorker", 1)
254
254
 
255
255
  # avoid load order error of sidekiq here by just including the
256
256
  # worker bits at latest possible time
@@ -265,7 +265,7 @@ RSpec.describe Metrician do
265
265
  Metrician.activate(agent)
266
266
  client = Redis.new
267
267
  agent.stub(:gauge)
268
- agent.should_receive(:gauge).with("cache.command", anything)
268
+ agent.should_receive(:gauge).with("app.cache.command", anything)
269
269
  client.get("foo-#{rand(100_000)}")
270
270
  end
271
271
 
@@ -280,7 +280,7 @@ RSpec.describe Metrician do
280
280
  Metrician.activate(agent)
281
281
  agent.stub(:gauge)
282
282
 
283
- agent.should_receive(:gauge).with("cache.command", anything)
283
+ agent.should_receive(:gauge).with("app.cache.command", anything)
284
284
  begin
285
285
  client.get("foo-#{rand(100_000)}")
286
286
  rescue Memcached::NotFound
@@ -296,7 +296,7 @@ RSpec.describe Metrician do
296
296
  Metrician.activate(agent)
297
297
  agent.stub(:gauge)
298
298
 
299
- agent.should_receive(:gauge).with("service.request", anything)
299
+ agent.should_receive(:gauge).with("app.outgoing_request", anything)
300
300
  Net::HTTP.get(URI.parse("http://example.com/"))
301
301
  end
302
302
  end
@@ -320,7 +320,7 @@ RSpec.describe Metrician do
320
320
  specify "Rack timing is instrumented" do
321
321
  agent.stub(:gauge)
322
322
 
323
- agent.should_receive(:gauge).with("web.request", anything)
323
+ agent.should_receive(:gauge).with("app.web.request", anything)
324
324
  get "/"
325
325
  end
326
326
  end
@@ -340,8 +340,8 @@ RSpec.describe Metrician do
340
340
  agent.stub(:gauge)
341
341
  agent.stub(:increment)
342
342
 
343
- agent.should_receive(:gauge).with("web.request", anything)
344
- agent.should_receive(:increment).with("web.error", 1)
343
+ agent.should_receive(:gauge).with("app.web.request", anything)
344
+ agent.should_receive(:increment).with("app.web.error", 1)
345
345
  get "/"
346
346
  end
347
347
 
@@ -351,8 +351,8 @@ RSpec.describe Metrician do
351
351
  agent.stub(:gauge)
352
352
  agent.stub(:increment)
353
353
 
354
- agent.should_not_receive(:gauge).with("web.request", anything)
355
- agent.should_receive(:increment).with("web.error", 1)
354
+ agent.should_not_receive(:gauge).with("app.web.request", anything)
355
+ agent.should_receive(:increment).with("app.web.error", 1)
356
356
  get "/"
357
357
  end
358
358
  end
@@ -373,8 +373,8 @@ RSpec.describe Metrician do
373
373
  agent.stub(:gauge)
374
374
  agent.stub(:increment)
375
375
 
376
- agent.should_receive(:gauge).with("web.request", anything)
377
- agent.should_receive(:increment).with("web.error", 1)
376
+ agent.should_receive(:gauge).with("app.web.request", anything)
377
+ agent.should_receive(:increment).with("app.web.error", 1)
378
378
  lambda { get "/" }.should raise_error(RuntimeError, "boom")
379
379
  end
380
380
  end
@@ -394,7 +394,7 @@ RSpec.describe Metrician do
394
394
  Metrician.configuration[:request_timing][:queue_time][:enabled] = true
395
395
  agent.stub(:gauge)
396
396
 
397
- agent.should_receive(:gauge).with("web.queue_time", anything)
397
+ agent.should_receive(:gauge).with("app.web.queue_time", anything)
398
398
  get "/", {}, { Metrician::Middleware::ENV_QUEUE_START_KEYS.first => 1.second.ago.to_f }
399
399
  end
400
400
  end
@@ -419,9 +419,9 @@ RSpec.describe Metrician do
419
419
  specify "satisfied is recorded" do
420
420
  agent.stub(:gauge)
421
421
 
422
- agent.should_receive(:gauge).with("web.apdex.satisfied", anything)
423
- agent.should_not_receive(:gauge).with("web.apdex.tolerated", anything)
424
- agent.should_not_receive(:gauge).with("web.apdex.frustrated", anything)
422
+ agent.should_receive(:gauge).with("app.web.apdex.satisfied", anything)
423
+ agent.should_not_receive(:gauge).with("app.web.apdex.tolerated", anything)
424
+ agent.should_not_receive(:gauge).with("app.web.apdex.frustrated", anything)
425
425
  get "/"
426
426
  end
427
427
 
@@ -444,9 +444,9 @@ RSpec.describe Metrician do
444
444
  specify "tolerated is recorded" do
445
445
  agent.stub(:gauge)
446
446
 
447
- agent.should_not_receive(:gauge).with("web.apdex.satisfied", anything)
448
- agent.should_receive(:gauge).with("web.apdex.tolerated", anything)
449
- agent.should_not_receive(:gauge).with("web.apdex.frustrated", anything)
447
+ agent.should_not_receive(:gauge).with("app.web.apdex.satisfied", anything)
448
+ agent.should_receive(:gauge).with("app.web.apdex.tolerated", anything)
449
+ agent.should_not_receive(:gauge).with("app.web.apdex.frustrated", anything)
450
450
  get "/"
451
451
  end
452
452
  end
@@ -468,9 +468,9 @@ RSpec.describe Metrician do
468
468
  specify "frustrated is recorded" do
469
469
  agent.stub(:gauge)
470
470
 
471
- agent.should_not_receive(:gauge).with("web.apdex.satisfied", anything)
472
- agent.should_not_receive(:gauge).with("web.apdex.tolerated", anything)
473
- agent.should_receive(:gauge).with("web.apdex.frustrated", anything)
471
+ agent.should_not_receive(:gauge).with("app.web.apdex.satisfied", anything)
472
+ agent.should_not_receive(:gauge).with("app.web.apdex.tolerated", anything)
473
+ agent.should_receive(:gauge).with("app.web.apdex.frustrated", anything)
474
474
  get "/"
475
475
  end
476
476
  end
@@ -490,7 +490,7 @@ RSpec.describe Metrician do
490
490
 
491
491
  it "hooks into rails automatically" do
492
492
  agent.stub(:gauge)
493
- agent.should_receive(:gauge).with("web.request", anything)
493
+ agent.should_receive(:gauge).with("app.web.request", anything)
494
494
 
495
495
  get "/"
496
496
  last_response.body.should == "foobar response"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metrician
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Expected Behavior
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-08-04 00:00:00.000000000 Z
11
+ date: 2017-08-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: instrumental_agent
@@ -125,7 +125,6 @@ files:
125
125
  - CHANGELOG.md
126
126
  - Gemfile
127
127
  - Gemfile.lock
128
- - METRICS.MD
129
128
  - README.md
130
129
  - Rakefile
131
130
  - gemfiles/Gemfile.4.2.sidekiq-4
data/METRICS.MD DELETED
@@ -1,48 +0,0 @@
1
- # Metrics you can expect to report in a vanilla Rails app
2
-
3
- ### `GET /users`
4
-
5
- * `active_record.users.find`
6
- * `database.sql`
7
- * `database.sql.select`
8
- * `web.request`
9
- * `web.request.users_controller.index.get`
10
- * `web.request.middleware`
11
- * `web.request.idle`
12
- * `web.response_size`
13
- * `web.response_size.users_controller.index.get`
14
-
15
- *You may also see another instance of `database.sql` and an instance of `database.sql.other` if the table schema is loaded.*
16
-
17
- *In development mode, you can expect to record one each of the following **per asset** on the page because they are served by Rack*
18
-
19
- * `web.request`
20
- * `web.request.assets`
21
- * `web.request.middleware`
22
- * `web.request.idle`
23
- * `web.response_size`
24
- * `web.response_size.assets`
25
-
26
-
27
- ### `PATCH /redis`
28
-
29
- Assuming we have a form for setting a redis value, and a controller that looks like this:
30
-
31
- ```ruby
32
- class RedisController < ApplicationController
33
- def show
34
- @value = $redis.get("foo")
35
- end
36
-
37
- def update
38
- $redis.set("foo", params[:value])
39
- redirect_to(redis_path)
40
- end
41
- end
42
- ```
43
-
44
- In addition to request metrics similar to those described above, we can expect the following redis-specific metrics to be recorded:
45
-
46
- * `redis.set` - during the update
47
- * `redis.get` - during the redirect/show
48
-