Class: AwsInstanceList::ElasticsearchService
- Inherits:
-
Base
- Object
- Base
- AwsInstanceList::ElasticsearchService
show all
- Defined in:
- lib/aws_instance_list/elasticsearch_service.rb
Instance Attribute Summary
Attributes inherited from Base
#client, #metric, #region
Instance Method Summary
collapse
Methods inherited from Base
#demodulize, #yaml, #yaml_default, #yaml_file
Constructor Details
Returns a new instance of ElasticsearchService.
7
8
9
10
11
12
13
|
# File 'lib/aws_instance_list/elasticsearch_service.rb', line 7
def initialize region: 'eu-west-1'
super region: region
@client=Aws::ElasticsearchService::Client.new region: region
end
|
Instance Method Details
#descriptions ⇒ Object
19
20
21
22
23
24
25
|
# File 'lib/aws_instance_list/elasticsearch_service.rb', line 19
def descriptions
total_domains=domain_names
begin
@instances+=client.describe_elasticsearch_domains(domain_names: total_domains.first(5) ).domain_status_list
total_domains=total_domains.drop(5)
end while !total_domains.empty?
end
|
#domain_list ⇒ Object
32
33
34
35
36
|
# File 'lib/aws_instance_list/elasticsearch_service.rb', line 32
def domain_list
instances.map do |i|
fields.map { |f| i.send(f) } + metrics(i) << region
end
end
|
#domain_names ⇒ Object
15
16
17
|
# File 'lib/aws_instance_list/elasticsearch_service.rb', line 15
def domain_names
client.list_domain_names.map { |x| x.domain_names.map { |d| d.domain_name } }.flatten
end
|
#fields ⇒ Object
38
39
40
|
# File 'lib/aws_instance_list/elasticsearch_service.rb', line 38
def fields
yaml['domain_status']['fields']
end
|
#instances ⇒ Object
27
28
29
30
|
# File 'lib/aws_instance_list/elasticsearch_service.rb', line 27
def instances
descriptions
@instances
end
|
#metrics(instance) ⇒ Object
42
43
44
45
46
47
48
49
50
51
|
# File 'lib/aws_instance_list/elasticsearch_service.rb', line 42
def metrics instance
type=instance.elasticsearch_cluster_config.instance_type
nodes=instance.elasticsearch_cluster_config.instance_count
dimensions = [ { name: 'DomainName', value: instance.domain_name },
{ name: 'ClientId', value: instance.domain_id.split('/').first }
]
free=metric.es_free_storage_space( dimensions )
used=metric.cluster_used_space(dimensions)
[type, nodes, free + used,free, used ]
end
|