aws_instance_list 1.3.2 → 1.3.3
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/Gemfile.lock +11 -7
- data/aws_instance_list.gemspec +1 -0
- data/lib/aws_instance_list.rb +1 -0
- data/lib/aws_instance_list/elasticsearch_service.rb +56 -0
- data/lib/aws_instance_list/list.rb +8 -0
- data/lib/aws_instance_list/metric.rb +35 -0
- data/lib/aws_instance_list/version.rb +1 -1
- data/lib/config/default_settings.yaml +7 -0
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 692af55b47adcbd7975dd292f849e90485c95ff4
|
4
|
+
data.tar.gz: '058426807bb95f28adf9817d1f5dea65db8f9a82'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e3ed672e3c251a6111bbe4fe5baee0809d570ec6c666b390c971859116a89c2c8412c928bde70453e23ec9e1bbc7cfdeb5c290074ae060726749d65429aeee78
|
7
|
+
data.tar.gz: e896a54ec3345f15cbcad0d6684a008a39753d5a48cb61601dace87782d386801ceba3b9384b6405d206b928bb1bba06357dd417a0d5f82d53ca13fc550f9453
|
data/Gemfile.lock
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
aws_instance_list (1.3.
|
4
|
+
aws_instance_list (1.3.3)
|
5
5
|
aws-sdk-cloudwatch (~> 1.6)
|
6
6
|
aws-sdk-ec2 (~> 1.37)
|
7
7
|
aws-sdk-elasticache (~> 1.7)
|
8
|
+
aws-sdk-elasticsearchservice (~> 1.13)
|
8
9
|
aws-sdk-rds (~> 1.23)
|
9
10
|
dotenv (~> 2.5)
|
10
11
|
|
@@ -12,22 +13,25 @@ GEM
|
|
12
13
|
remote: https://rubygems.org/
|
13
14
|
specs:
|
14
15
|
aws-eventstream (1.0.1)
|
15
|
-
aws-partitions (1.
|
16
|
-
aws-sdk-cloudwatch (1.
|
16
|
+
aws-partitions (1.106.0)
|
17
|
+
aws-sdk-cloudwatch (1.11.0)
|
17
18
|
aws-sdk-core (~> 3, >= 3.26.0)
|
18
19
|
aws-sigv4 (~> 1.0)
|
19
|
-
aws-sdk-core (3.
|
20
|
+
aws-sdk-core (3.34.0)
|
20
21
|
aws-eventstream (~> 1.0)
|
21
22
|
aws-partitions (~> 1.0)
|
22
23
|
aws-sigv4 (~> 1.0)
|
23
24
|
jmespath (~> 1.0)
|
24
|
-
aws-sdk-ec2 (1.
|
25
|
+
aws-sdk-ec2 (1.52.0)
|
25
26
|
aws-sdk-core (~> 3, >= 3.26.0)
|
26
27
|
aws-sigv4 (~> 1.0)
|
27
|
-
aws-sdk-elasticache (1.
|
28
|
+
aws-sdk-elasticache (1.8.0)
|
28
29
|
aws-sdk-core (~> 3, >= 3.26.0)
|
29
30
|
aws-sigv4 (~> 1.0)
|
30
|
-
aws-sdk-
|
31
|
+
aws-sdk-elasticsearchservice (1.13.0)
|
32
|
+
aws-sdk-core (~> 3, >= 3.26.0)
|
33
|
+
aws-sigv4 (~> 1.0)
|
34
|
+
aws-sdk-rds (1.34.0)
|
31
35
|
aws-sdk-core (~> 3, >= 3.26.0)
|
32
36
|
aws-sigv4 (~> 1.0)
|
33
37
|
aws-sigv4 (1.0.3)
|
data/aws_instance_list.gemspec
CHANGED
@@ -40,5 +40,6 @@ Gem::Specification.new do |spec|
|
|
40
40
|
spec.add_dependency "aws-sdk-ec2", "~> 1.37"
|
41
41
|
spec.add_dependency "aws-sdk-cloudwatch", "~> 1.6"
|
42
42
|
spec.add_dependency "aws-sdk-elasticache", "~> 1.7"
|
43
|
+
spec.add_dependency "aws-sdk-elasticsearchservice", "~> 1.13"
|
43
44
|
spec.add_dependency "dotenv", "~> 2.5"
|
44
45
|
end
|
data/lib/aws_instance_list.rb
CHANGED
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'aws-sdk-elasticsearchservice'
|
2
|
+
|
3
|
+
module AwsInstanceList
|
4
|
+
|
5
|
+
class ElasticsearchService < AwsInstanceList::Base
|
6
|
+
|
7
|
+
def initialize region: 'eu-west-1'
|
8
|
+
|
9
|
+
super region: region
|
10
|
+
|
11
|
+
@client=Aws::ElasticsearchService::Client.new region: region
|
12
|
+
|
13
|
+
end
|
14
|
+
|
15
|
+
def domain_names
|
16
|
+
client.list_domain_names.map { |x| x.domain_names.map { |d| d.domain_name } }.flatten
|
17
|
+
end
|
18
|
+
|
19
|
+
def descriptions
|
20
|
+
total_domains=domain_names
|
21
|
+
begin
|
22
|
+
@instances+=client.describe_elasticsearch_domains(domain_names: total_domains.first(5) ).domain_status_list
|
23
|
+
total_domains=total_domains.drop(5)
|
24
|
+
end while !total_domains.empty?
|
25
|
+
end
|
26
|
+
|
27
|
+
def instances
|
28
|
+
descriptions
|
29
|
+
@instances
|
30
|
+
end
|
31
|
+
|
32
|
+
def domain_list
|
33
|
+
instances.map do |i|
|
34
|
+
fields.map { |f| i.send(f) } + metrics(i) << region
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def fields
|
39
|
+
yaml['domain_status']['fields']
|
40
|
+
end
|
41
|
+
|
42
|
+
def metrics instance
|
43
|
+
type=instance.elasticsearch_cluster_config.instance_type
|
44
|
+
nodes=instance.elasticsearch_cluster_config.instance_count
|
45
|
+
dimensions = [ { name: 'DomainName', value: instance.domain_name },
|
46
|
+
{ name: 'ClientId', value: instance.domain_id.split('/').first }
|
47
|
+
]
|
48
|
+
free=metric.es_free_storage_space( dimensions )
|
49
|
+
used=metric.cluster_used_space(dimensions)
|
50
|
+
[type, nodes, free + used,free, used ]
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
|
@@ -47,5 +47,13 @@ module AwsInstanceList
|
|
47
47
|
ec.cache_list
|
48
48
|
end
|
49
49
|
|
50
|
+
def elasticsearch_list
|
51
|
+
list call_to: :elasticsearch_service_list
|
52
|
+
end
|
53
|
+
|
54
|
+
def elasticsearch_service_list region:
|
55
|
+
es=AwsInstanceList::ElasticsearchService.new region: region
|
56
|
+
es.domain_list
|
57
|
+
end
|
50
58
|
end
|
51
59
|
end
|
@@ -83,6 +83,41 @@ module AwsInstanceList
|
|
83
83
|
|
84
84
|
end
|
85
85
|
|
86
|
+
def es_free_storage_space dimensions
|
87
|
+
resp=statistics( {
|
88
|
+
namespace: "AWS/ES",
|
89
|
+
metric_name: "FreeStorageSpace",
|
90
|
+
dimensions: dimensions,
|
91
|
+
start_time: Time.now - 600,
|
92
|
+
end_time: Time.now ,
|
93
|
+
period: 60,
|
94
|
+
statistics: ["Minimum"]
|
95
|
+
})
|
96
|
+
|
97
|
+
if resp.datapoints.empty?
|
98
|
+
'-'
|
99
|
+
else
|
100
|
+
resp.datapoints.last.minimum
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
def cluster_used_space dimensions
|
105
|
+
resp=statistics( {
|
106
|
+
namespace: "AWS/ES",
|
107
|
+
metric_name: "ClusterUsedSpace",
|
108
|
+
dimensions: dimensions,
|
109
|
+
start_time: Time.now - 600,
|
110
|
+
end_time: Time.now ,
|
111
|
+
period: 60,
|
112
|
+
statistics: ["Maximum"]
|
113
|
+
})
|
114
|
+
|
115
|
+
if resp.datapoints.empty?
|
116
|
+
'-'
|
117
|
+
else
|
118
|
+
resp.datapoints.last.maximum
|
119
|
+
end
|
120
|
+
end
|
86
121
|
end
|
87
122
|
end
|
88
123
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aws_instance_list
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Diego PL
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-10-
|
11
|
+
date: 2018-10-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -122,6 +122,20 @@ dependencies:
|
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '1.7'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: aws-sdk-elasticsearchservice
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '1.13'
|
132
|
+
type: :runtime
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '1.13'
|
125
139
|
- !ruby/object:Gem::Dependency
|
126
140
|
name: dotenv
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -160,6 +174,7 @@ files:
|
|
160
174
|
- lib/aws_instance_list.rb
|
161
175
|
- lib/aws_instance_list/base.rb
|
162
176
|
- lib/aws_instance_list/elasti_cache.rb
|
177
|
+
- lib/aws_instance_list/elasticsearch_service.rb
|
163
178
|
- lib/aws_instance_list/list.rb
|
164
179
|
- lib/aws_instance_list/metric.rb
|
165
180
|
- lib/aws_instance_list/rds.rb
|