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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0d19fed3e49c4cb68d55f9fa5bb5976ea2335fa9
4
- data.tar.gz: 219dc319da11e3f505db7c0491e6875493fc5e77
3
+ metadata.gz: 0d531a4c895d7032e6518b119de7e29e19a1d998
4
+ data.tar.gz: 94812a46d6b0ad26c69a6bcf8a28a2eba9912bbc
5
5
  SHA512:
6
- metadata.gz: 0bc743522c27a6f97c49227f0c6c904f0d6596ce357e3f3e7c3cccfcce6c04cf25fa787ed4cb74e434c832f4cc2a229928426334eee9b7fa2bb45755636db13a
7
- data.tar.gz: 6d20b87efba92f0b5244c1fdb6274bb4150f0834d0e6d2ef4bd959847dd8a941746395d815eb97e6b2d79b88eff1af1677828ff042ede698976c0c0919d0936c
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/35035.png)](https://asciinema.org/a/35035?speed=5&autoplay=1)
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 credentials
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
@@ -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'
@@ -38,29 +38,13 @@ module Kumome
38
38
  private
39
39
 
40
40
  def out_table(data)
41
- ids = {}
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
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  resources:
3
- ec2:
3
+ ec2: # "command option name"
4
4
  namespace: AWS/EC2 # required
5
5
  dimensions_name: InstanceId # required
6
6
  metrics:
@@ -1,3 +1,3 @@
1
1
  module Kumome
2
- VERSION = '0.0.2'
2
+ VERSION = '0.1.0'
3
3
  end
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.2
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-01-29 00:00:00.000000000 Z
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: '0'
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: '0'
40
+ version: '1'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: thor
43
43
  requirement: !ruby/object:Gem::Requirement