Module: ECSD

Includes:
Constants
Defined in:
lib/ecsd.rb,
lib/ecsd/core.rb,
lib/ecsd/config.rb,
lib/ecsd/errors.rb,
lib/ecsd/runner.rb,
lib/ecsd/version.rb,
lib/ecsd/template.rb,
lib/ecsd/constants.rb,
lib/ecsd/helpers/ec2.rb,
lib/ecsd/helpers/ecs.rb,
lib/ecsd/helpers/common.rb

Overview

Examples:

ECSD.config do |c|
  c.clusters = %w[cluster0 cluster1 cluster2]
  c.region = "aws_region_name"
  c.credentials = { AWS_ACCESS_KEY_ID: "ID", AWS_SECRET_ACCESS_KEY: "SECRET" }
  c.options = {
    export_path: 'dir/path/to/export_config/folder',
    timeout: 101
  }
  c.logger = Logger.new($stdout)
end

Defined Under Namespace

Modules: Constants, Helpers Classes: BaseError, Config, Core, CoreConfig

Constant Summary collapse

VERSION =
'0.9.0'.freeze
TEMPLATE =
lambda do |ip_addr:,
                      dyn_port:,
                      task_id:,
                      task_definition_name:,
                      task_revision:,
                      cluster_name:,
                      container_name:,
                      instance_id:,
                      metrics_path: DEFAULT_METRICS_PATH|
  <<~TEXT
    - targets:
      - #{ip_addr}:#{dyn_port}
      labels:
        task_id: #{task_id}
        task_definition_name: #{task_definition_name}
        task_revision: #{task_revision}
        cluster_name: #{cluster_name}
        container_name: #{container_name}
        instance_id: #{instance_id}
        __metrics_path__: #{metrics_path}
  TEXT
end

Constants included from Constants

Constants::CONNECTIVITY, Constants::DEFAULT_EXPORT_PATH, Constants::DEFAULT_METRICS_PATH, Constants::LAUNCH_TYPE

Class Method Summary collapse

Class Method Details

.config {|@config| ... } ⇒ Object

Yields:



46
47
48
49
50
# File 'lib/ecsd/config.rb', line 46

def config
  yield @config if block_given?

  @config
end

.core(cluster) ⇒ Object

Parameters:

  • cluster (String)

    cluster name



25
26
27
# File 'lib/ecsd/runner.rb', line 25

def core(cluster)
  ECSD::Core.new(cluster)
end

.invoke!Object



16
17
18
19
20
# File 'lib/ecsd/runner.rb', line 16

def invoke!
  config.clusters.each do |cluster|
    core(cluster).handle!
  end
end

.loggerObject



53
54
55
# File 'lib/ecsd/config.rb', line 53

def logger
  @config.logger || Logger.new($stdout)
end

.start(cycle: :infinite) ⇒ Object



3
4
5
6
7
8
9
10
# File 'lib/ecsd/runner.rb', line 3

def start(cycle: :infinite)
  case cycle
  when :infinite
    loop { invoke!; wait }
  else
    invoke!
  end
end

.waitObject



31
32
33
# File 'lib/ecsd/runner.rb', line 31

def wait
  sleep ECSD.config.options[:timeout]
end