aws-embedded-metrics-customink 0.1.0 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 76477125adcfa5d534ff63eda7c6b3469e5ca3c5c778ce40b9b23bce906d1da5
4
- data.tar.gz: 0bee3bd7ea8e7d2d1ed0a72f928c29741caf17c9d3af2e83901896bfcb40f39a
3
+ metadata.gz: dc12276136937bb9f0fe45dfecb340e136b262e3f147bfb1c7449a94092fcaa9
4
+ data.tar.gz: bca1439d7fd26e6368410f3e6aa92189a98b3e9d5c6d9aae1c67b79300f9467b
5
5
  SHA512:
6
- metadata.gz: 5a73a2ab9be29c38ab9dd833642d22877481d46b909740820cfa2420d9fa655f9dc348c9dbf82aa73f61621a00ce1263e4eef4e9b4edc6bb380e67410cfce558
7
- data.tar.gz: 5ae92d80a90c497a264775a1a5db28ea7614a922cb33865bc7f102e0b65303f80dad0d6f18d485a665100b3a73988a4e387a74dad8e53fe1e267b861df076276
6
+ metadata.gz: 4c3b5dedf5d198a08f6d4863c6c5cd50b194d124f0e619a46600742d2bb46d2560ba4709d8ddba88009e0b0251fe9efc7bf6ae29e2fa0c58c889647b883ce065
7
+ data.tar.gz: 822ba5fe608f5aae296f5903b173d1dfc893dceaa7d7007921cec664856ebd7a1b4d1de7dbcc9b3d67e0f0bf2ee2c8a2677a6c7c2e7e4b130ba8f90912c1bd93
@@ -3,6 +3,18 @@
3
3
 
4
4
  See this http://keepachangelog.com link for information on how we want this documented formatted.
5
5
 
6
+ ## v0.2.0
7
+
8
+ ### Changed
9
+
10
+ - `Lambda` sink renamed to `Stdout` to reflect its destination rather than its intended use
11
+ - The currently configured sink is now accessed through the `Config` object rather than from the root namespace
12
+ - Improved test coverage
13
+
14
+ ### Added
15
+
16
+ - A `Logger` sink to emit to a Ruby Logger instance, for logfile output
17
+
6
18
  ## v0.1.0
7
19
 
8
20
  ### Added
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- aws-embedded-metrics-customink (0.1.0)
4
+ aws-embedded-metrics-customink (0.2.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/README.md CHANGED
@@ -29,7 +29,7 @@ gem 'aws-embedded-metrics-customink'
29
29
  ```
30
30
  ## Usage
31
31
 
32
- Simple configuration.
32
+ Simple configuration:
33
33
 
34
34
  ```ruby
35
35
  Aws::Embedded::Metrics.configure do |c|
@@ -37,6 +37,14 @@ Aws::Embedded::Metrics.configure do |c|
37
37
  end
38
38
  ```
39
39
 
40
+ Using the `Logger` sink to write to a log file:
41
+
42
+ ```ruby
43
+ Aws::Embedded::Metrics.configure do |c|
44
+ c.sink = Aws::Embedded::Metrics::Sinks::Logger.new(Rails.logger)
45
+ end
46
+ ```
47
+
40
48
  Usage is in a scope block. All metrics are flushed afterward
41
49
 
42
50
  ```ruby
@@ -1,14 +1,18 @@
1
1
  require 'json'
2
2
  require 'benchmark'
3
3
  require 'aws-embedded-metrics-customink/version'
4
- require 'aws-embedded-metrics-customink/config'
5
4
  require 'aws-embedded-metrics-customink/sinks'
5
+ require 'aws-embedded-metrics-customink/config'
6
6
  require 'aws-embedded-metrics-customink/logger'
7
7
 
8
8
  module Aws
9
9
  module Embedded
10
10
  module Metrics
11
11
 
12
+ def config
13
+ Config.config
14
+ end
15
+
12
16
  def configure
13
17
  Config.configure { |c| yield(c) }
14
18
  end
@@ -23,10 +27,6 @@ module Aws
23
27
  end
24
28
  end
25
29
 
26
- def sink
27
- @sink ||= Sinks::Lambda.new
28
- end
29
-
30
30
  extend self
31
31
 
32
32
  end
@@ -3,6 +3,8 @@ module Aws
3
3
  module Metrics
4
4
  module Config
5
5
 
6
+ DEFAULT_SINK = Sinks::Stdout
7
+
6
8
  def configure
7
9
  yield(config)
8
10
  config
@@ -20,7 +22,7 @@ module Aws
20
22
 
21
23
  class Configuration
22
24
 
23
- attr_writer :namespace
25
+ attr_writer :namespace, :sink
24
26
 
25
27
  def reconfigure
26
28
  instance_variables.each { |var| instance_variable_set var, nil }
@@ -30,9 +32,14 @@ module Aws
30
32
 
31
33
  def namespace
32
34
  return @namespace if defined?(@namespace)
35
+
33
36
  ENV['AWS_EMF_NAMESPACE'] || 'aws-embedded-metrics'
34
37
  end
35
38
 
39
+ def sink
40
+ @sink ||= DEFAULT_SINK.new
41
+ end
42
+
36
43
  end
37
44
  end
38
45
  end
@@ -3,8 +3,8 @@ module Aws
3
3
  module Metrics
4
4
  class Logger
5
5
 
6
- def initialize(sink = Sinks::Lambda)
7
- @sink = sink.new
6
+ def initialize(sink = Config.config.sink)
7
+ @sink = sink
8
8
  @namespace = Config.config.namespace
9
9
  @dimensions = []
10
10
  @metrics = []
@@ -18,7 +18,7 @@ module Aws
18
18
  end
19
19
 
20
20
  def flush
21
- Metrics.sink.accept(message) unless empty?
21
+ @sink.accept(message) unless empty?
22
22
  end
23
23
 
24
24
  def put_dimension(name, value)
@@ -1 +1,2 @@
1
- require 'aws-embedded-metrics-customink/sinks/lambda'
1
+ require 'aws-embedded-metrics-customink/sinks/logger'
2
+ require 'aws-embedded-metrics-customink/sinks/stdout'
@@ -0,0 +1,22 @@
1
+ module Aws
2
+ module Embedded
3
+ module Metrics
4
+ module Sinks
5
+ class Logger
6
+
7
+ attr_reader :logger, :level
8
+
9
+ def initialize(logger, level: :info)
10
+ @logger = logger
11
+ @level = level.to_sym
12
+ end
13
+
14
+ def accept(message)
15
+ logger.public_send(level, JSON.dump(message))
16
+ end
17
+
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -2,7 +2,7 @@ module Aws
2
2
  module Embedded
3
3
  module Metrics
4
4
  module Sinks
5
- class Lambda
5
+ class Stdout
6
6
 
7
7
  def accept(message)
8
8
  puts JSON.dump(message)
@@ -1,7 +1,7 @@
1
1
  module Aws
2
2
  module Embedded
3
3
  module Metrics
4
- VERSION = '0.1.0'.freeze
4
+ VERSION = '0.2.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.1.0
4
+ version: 0.2.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-07-29 00:00:00.000000000 Z
11
+ date: 2020-07-30 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Amazon CloudWatch Embedded Metric Format Client Library for Ruby.
14
14
  email:
@@ -34,7 +34,8 @@ files:
34
34
  - lib/aws-embedded-metrics-customink/config.rb
35
35
  - lib/aws-embedded-metrics-customink/logger.rb
36
36
  - lib/aws-embedded-metrics-customink/sinks.rb
37
- - lib/aws-embedded-metrics-customink/sinks/lambda.rb
37
+ - lib/aws-embedded-metrics-customink/sinks/logger.rb
38
+ - lib/aws-embedded-metrics-customink/sinks/stdout.rb
38
39
  - lib/aws-embedded-metrics-customink/version.rb
39
40
  homepage: https://github.com/customink/aws-embedded-metrics-customink
40
41
  licenses: