aws-embedded-metrics-customink 0.1.0 → 0.2.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: 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: