aws-embedded-metrics-customink 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b246b086f0c3f6ab958cf67acf79d2cde275f62a05dfe334979987c6b89a5921
4
- data.tar.gz: 78329a269489d8d76f9dadaf157835fc45b18567b3080fe56064ea31360cfc7c
3
+ metadata.gz: 3e3fd136db6ae5ed75b8bfee3c810d07fe56bd7cebc388be40b0a15167726f8b
4
+ data.tar.gz: ff0aac20173bd4b0ce49d304c6dafcd8902c9ed32031d4d39b90be5d1082092e
5
5
  SHA512:
6
- metadata.gz: 2e2597d6852f219be63ca576706ff0dccf3e3e709047430ae3fee911ff803e9120ae20389118d3c29d8e5e1843467a7178fe72440d413fa645239ff138a56a80
7
- data.tar.gz: ad35b3d8557cb822f0d3706deadfc80e496ad932587194d3df9f7d6a4df26c0eaadd8868453de2f53ef2cbee6e2fcfa4192c0298f2389b457ea66869a1579cb1
6
+ metadata.gz: 8868afb3d8b3c29215104d838206c8d322a12c52fffd498721da1b179b0986e092e75cd6a1763f10f6a492be72faa6f6c61bb802762a5dc4f2034d1b5bdff3f2
7
+ data.tar.gz: 8f4ba0bedd55a0d5c799c6e4aa9f8d2c14c8cc680b05fd9354b11a1a7027303de0cf0db5f280f3b9fd32787aa5892c9227b7552ef3c21a84196a49b994f102d6
@@ -3,6 +3,12 @@
3
3
 
4
4
  See this http://keepachangelog.com link for information on how we want this documented formatted.
5
5
 
6
+ ## v0.5.0
7
+
8
+ ### Added
9
+
10
+ - Simple singleton/delegator for metrics instance in Rails.
11
+
6
12
  ## v0.4.0
7
13
 
8
14
  ### Changed
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- aws-embedded-metrics-customink (0.4.0)
4
+ aws-embedded-metrics-customink (0.5.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/README.md CHANGED
@@ -56,6 +56,38 @@ Aws::Embedded::Metrics.logger do |metrics|
56
56
  end
57
57
  ```
58
58
 
59
+ ## Using Rails?
60
+
61
+ And want to instrument metrics deep in your code during the request/response lifecycle? Consider creating a PORO like this `Metrics` example.
62
+
63
+ ```ruby
64
+ class MyMetrics < Aws::Embedded::Metrics::Instance
65
+ end
66
+ ```
67
+
68
+ This object is ready to use as a per-request singleton that acts as a simple delegator to all metrics/logger methods. A great way to hook it up for your application is in ApplicationController.
69
+
70
+ ```ruby
71
+ class ApplicationController < ActionController::Base
72
+ around_action :embedded_metrics
73
+ private
74
+ def embedded_metrics
75
+ Aws::Embedded::Metrics.logger do |metrics|
76
+ MyMetrics.instance = MyMetrics.new(metrics)
77
+ yield
78
+ end
79
+ end
80
+ end
81
+ ```
82
+
83
+ Now you can happily instrument your code.
84
+
85
+ ```ruby
86
+ proof, time = MyMetrics.benchmark { @imagebuilder.data }
87
+ MyMetrics.put_metric 'ImageBuilderTime', time, 'Milliseconds'
88
+ MyMetrics.set_property 'ImageId', params[:image_id]
89
+ ```
90
+
59
91
  ## Development
60
92
 
61
93
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `bin/test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -6,6 +6,7 @@ require 'aws-embedded-metrics-customink/version'
6
6
  require 'aws-embedded-metrics-customink/sinks'
7
7
  require 'aws-embedded-metrics-customink/config'
8
8
  require 'aws-embedded-metrics-customink/logger'
9
+ require 'aws-embedded-metrics-customink/instance' if defined?(Rails)
9
10
 
10
11
  module Aws
11
12
  module Embedded
@@ -0,0 +1,18 @@
1
+ module Aws
2
+ module Embedded
3
+ module Metrics
4
+ class Instance < SimpleDelegator
5
+ mattr_accessor :instance
6
+
7
+ extend SingleForwardable
8
+
9
+ def_delegators :instance,
10
+ :flush,
11
+ :benchmark,
12
+ :put_dimension,
13
+ :put_metric,
14
+ :set_property
15
+ end
16
+ end
17
+ end
18
+ end
@@ -1,7 +1,7 @@
1
1
  module Aws
2
2
  module Embedded
3
3
  module Metrics
4
- VERSION = '0.4.0'.freeze
4
+ VERSION = '0.5.0'.freeze
5
5
  end
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-embedded-metrics-customink
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ken Collins
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-08-07 00:00:00.000000000 Z
11
+ date: 2020-08-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -50,6 +50,7 @@ files:
50
50
  - bin/test
51
51
  - lib/aws-embedded-metrics-customink.rb
52
52
  - lib/aws-embedded-metrics-customink/config.rb
53
+ - lib/aws-embedded-metrics-customink/instance.rb
53
54
  - lib/aws-embedded-metrics-customink/logger.rb
54
55
  - lib/aws-embedded-metrics-customink/sinks.rb
55
56
  - lib/aws-embedded-metrics-customink/sinks/logger.rb