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 +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:
|