kumome 0.0.2 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +52 -2
- data/kumome.gemspec +1 -1
- data/lib/kumome/cli.rb +23 -19
- data/lib/kumome/default.yml +1 -1
- data/lib/kumome/version.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0d531a4c895d7032e6518b119de7e29e19a1d998
|
4
|
+
data.tar.gz: 94812a46d6b0ad26c69a6bcf8a28a2eba9912bbc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cb88c9241f107709668f4809e4883cfced4c6a8d9480c3d80010db936367b2dc97cf9bbe849cf9fc9799cd7683352bac1be536ec9028cbfc3323dbe4714ff755
|
7
|
+
data.tar.gz: e41aba002f7b1887c43dc14913ae6026dfb62113fab8fbc97682ebeae0d5cb63318a9865209b4bf7b423a068feb6a42fa44a1023844c66e4ac97d60a8004c18e
|
data/README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Resource statistics tool via AWS CloudWatch.
|
4
4
|
|
5
|
-
[![asciicast](https://asciinema.org/a/
|
5
|
+
[![asciicast](https://asciinema.org/a/35090.png)](https://asciinema.org/a/35090?speed=5&autoplay=1)
|
6
6
|
|
7
7
|
## Installation
|
8
8
|
|
@@ -22,7 +22,7 @@ Or install it yourself as:
|
|
22
22
|
|
23
23
|
## Getting Started
|
24
24
|
|
25
|
-
### STEP 1. Set AWS
|
25
|
+
### STEP 1. Set AWS config
|
26
26
|
|
27
27
|
#### 1-1. Use Shared Credentials
|
28
28
|
|
@@ -32,6 +32,8 @@ $ aws configure
|
|
32
32
|
...
|
33
33
|
```
|
34
34
|
|
35
|
+
(See http://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-chap-getting-started.html#config-settings-and-precedence)
|
36
|
+
|
35
37
|
#### 1-2. Use secrets.yml
|
36
38
|
|
37
39
|
```sh
|
@@ -67,6 +69,54 @@ Options:
|
|
67
69
|
Show AWS resource statistics
|
68
70
|
```
|
69
71
|
|
72
|
+
If you show command config YAML, run `kumome config`.
|
73
|
+
|
74
|
+
## Custom command options
|
75
|
+
|
76
|
+
Write `custom.yml`.
|
77
|
+
|
78
|
+
```yaml
|
79
|
+
---
|
80
|
+
resources:
|
81
|
+
lambda: # "command option name"
|
82
|
+
namespace: AWS/Lambda # required
|
83
|
+
dimensions_name: FunctionName # required
|
84
|
+
metrics:
|
85
|
+
count:
|
86
|
+
metric_name: Invocations # required
|
87
|
+
statistic: Sum # required
|
88
|
+
unit: Count
|
89
|
+
alarm: '>=100' # "metric alarm name" or "operator and number"
|
90
|
+
error:
|
91
|
+
metric_name: Errors
|
92
|
+
statistic: Sum
|
93
|
+
unit: Count
|
94
|
+
alarm: '>=5'
|
95
|
+
duration:
|
96
|
+
metric_name: Duration
|
97
|
+
statistic: Average
|
98
|
+
```
|
99
|
+
( See https://docs.aws.amazon.com/lambda/latest/dg/monitoring-functions-metrics.html )
|
100
|
+
|
101
|
+
And use `--config` option.
|
102
|
+
|
103
|
+
```sh
|
104
|
+
$ kumome --config=./custom.yml
|
105
|
+
Usage:
|
106
|
+
kumome # OR: `kumome stat`
|
107
|
+
|
108
|
+
Options:
|
109
|
+
[--lambda=FunctionName,..]
|
110
|
+
[--profile=PROFILE]
|
111
|
+
[--period=N]
|
112
|
+
# Default: 300
|
113
|
+
[--config=CONFIG]
|
114
|
+
|
115
|
+
Show AWS resource statistics
|
116
|
+
|
117
|
+
$ kumome --config=./custom.yml --lambda=my-lambda-func-name,hook-lambda-func-name --profile mycreds
|
118
|
+
```
|
119
|
+
|
70
120
|
## TODO
|
71
121
|
|
72
122
|
- `tailf` option
|
data/kumome.gemspec
CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.require_paths = ['lib']
|
21
21
|
|
22
22
|
spec.add_runtime_dependency 'aws-sdk', '~> 2.1'
|
23
|
-
spec.add_runtime_dependency 'awsecrets'
|
23
|
+
spec.add_runtime_dependency 'awsecrets', '~> 1'
|
24
24
|
spec.add_runtime_dependency 'thor'
|
25
25
|
spec.add_runtime_dependency 'activesupport'
|
26
26
|
spec.add_runtime_dependency 'terminal-table'
|
data/lib/kumome/cli.rb
CHANGED
@@ -38,29 +38,13 @@ module Kumome
|
|
38
38
|
private
|
39
39
|
|
40
40
|
def out_table(data)
|
41
|
-
|
42
|
-
metrics_header = {}
|
43
|
-
Kumome::Config.config['resources'].each do |resource_name, resource|
|
44
|
-
next if options[resource_name.to_sym].nil?
|
45
|
-
options[resource_name.to_sym].split(',').each do |id|
|
46
|
-
ids[id] = resource['metrics'].size
|
47
|
-
resource['metrics'].each do |name, _metric|
|
48
|
-
key = resource_name + id + name.to_s
|
49
|
-
metrics_header[key] = name.to_s
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
53
|
-
header = ['']
|
54
|
-
ids.each do |id, colspan|
|
55
|
-
header << { value: id, colspan: colspan, alignment: :center }
|
56
|
-
end
|
57
|
-
t = table(header)
|
41
|
+
t = table(build_header)
|
58
42
|
t.style = { alignment: :right, border_x: '-' }
|
59
|
-
t << metrics_header.values.unshift(:timestamp)
|
43
|
+
t << @metrics_header.values.unshift(:timestamp)
|
60
44
|
t << :separator
|
61
45
|
data.sort_by { |k, _| k.to_i }.each do |timestamp, d|
|
62
46
|
line = [timestamp]
|
63
|
-
metrics_header.each_key do |h|
|
47
|
+
@metrics_header.each_key do |h|
|
64
48
|
l = if d.key?(h)
|
65
49
|
d[h]
|
66
50
|
else
|
@@ -76,5 +60,25 @@ module Kumome
|
|
76
60
|
puts line
|
77
61
|
end
|
78
62
|
end
|
63
|
+
|
64
|
+
def build_header
|
65
|
+
resource_header = {}
|
66
|
+
@metrics_header = {}
|
67
|
+
Kumome::Config.config['resources'].each do |resource_name, resource|
|
68
|
+
next if options[resource_name.to_sym].nil?
|
69
|
+
options[resource_name.to_sym].split(',').each do |id|
|
70
|
+
resource_header[id] = resource['metrics'].size
|
71
|
+
resource['metrics'].each do |name, _metric|
|
72
|
+
key = resource_name + id + name.to_s
|
73
|
+
@metrics_header[key] = name.to_s
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
header = ['']
|
78
|
+
resource_header.each do |id, colspan|
|
79
|
+
header << { value: id, colspan: colspan, alignment: :center }
|
80
|
+
end
|
81
|
+
header
|
82
|
+
end
|
79
83
|
end
|
80
84
|
end
|
data/lib/kumome/default.yml
CHANGED
data/lib/kumome/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kumome
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- k1LoW
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-02-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk
|
@@ -28,16 +28,16 @@ dependencies:
|
|
28
28
|
name: awsecrets
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '1'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '1'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: thor
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|