class AwsInstanceList::ElasticsearchService
Public Class Methods
new(region: 'eu-west-1')
click to toggle source
Calls superclass method
AwsInstanceList::Base::new
# 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
Public Instance Methods
descriptions()
click to toggle source
# 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()
click to toggle source
# 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()
click to toggle source
# 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()
click to toggle source
# File lib/aws_instance_list/elasticsearch_service.rb, line 38 def fields yaml['domain_status']['fields'] end
instances()
click to toggle source
# File lib/aws_instance_list/elasticsearch_service.rb, line 27 def instances descriptions @instances end
metrics(instance)
click to toggle source
# 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