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