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 +4 -4
- data/CHANGELOG.md +12 -0
- data/Gemfile.lock +1 -1
- data/README.md +9 -1
- data/lib/aws-embedded-metrics-customink.rb +5 -5
- data/lib/aws-embedded-metrics-customink/config.rb +8 -1
- data/lib/aws-embedded-metrics-customink/logger.rb +3 -3
- data/lib/aws-embedded-metrics-customink/sinks.rb +2 -1
- data/lib/aws-embedded-metrics-customink/sinks/logger.rb +22 -0
- data/lib/aws-embedded-metrics-customink/sinks/{lambda.rb → stdout.rb} +1 -1
- data/lib/aws-embedded-metrics-customink/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dc12276136937bb9f0fe45dfecb340e136b262e3f147bfb1c7449a94092fcaa9
|
4
|
+
data.tar.gz: bca1439d7fd26e6368410f3e6aa92189a98b3e9d5c6d9aae1c67b79300f9467b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4c3b5dedf5d198a08f6d4863c6c5cd50b194d124f0e619a46600742d2bb46d2560ba4709d8ddba88009e0b0251fe9efc7bf6ae29e2fa0c58c889647b883ce065
|
7
|
+
data.tar.gz: 822ba5fe608f5aae296f5903b173d1dfc893dceaa7d7007921cec664856ebd7a1b4d1de7dbcc9b3d67e0f0bf2ee2c8a2677a6c7c2e7e4b130ba8f90912c1bd93
|
data/CHANGELOG.md
CHANGED
@@ -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
|
data/Gemfile.lock
CHANGED
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 =
|
7
|
-
@sink = sink
|
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
|
-
|
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/
|
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
|
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
|
+
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-
|
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/
|
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:
|