コード例 #1
0
def prepare_dns_status():
    '''
    (dns_name, dns_is_online)
    '''
    pool = ec2_pool.get_worker_pool()
    dns_name = pool.get_load_balancer_dns_name()

    dns_is_online = False
    try:
        r = requests.head('http://' + dns_name, timeout=5)
        if r.status_code == 200:
            dns_is_online = True
    except Exception:
        pass

    return (dns_name, dns_is_online)
コード例 #2
0
        return average_cpu_util_for_instance

    def get_http_request_count_for_registered_instances(self):
        instances_data_points = {}
        for instance_id in self._pool.get_registered_instances_ids():
            instances_data_points[
                instance_id] = self._api.get_http_request_per_minute_count([{
                    'Name':
                    'InstanceId',
                    'Value':
                    instance_id
                }])['Datapoints']

        return instances_data_points

    def get_number_of_running_workers_in_pool(self):
        work_count = 0
        health_status = self._pool.get_registered_instances_health_status()
        for instance_id in health_status:
            if (health_status[instance_id] in self._pool.get_working_status()):
                work_count += 1
        return work_count


helper = PoolMonitoringHelper(ec2_pool.get_worker_pool())


def get_monitor_helper():
    return helper
コード例 #3
0
        downsized_count = math.floor(worker_count * self._shrinking_ratio)
        if (downsized_count < min_required_worker):
            downsized_count = min_required_worker

        self._pool.decrease_pool_by_size(worker_count - downsized_count)
        self._next_pool_size = downsized_count
        return True

    def desired_worker_num_reached(self):
        return self._pool_monitor_helper.get_number_of_running_workers_in_pool(
        ) == self._next_pool_size

    def toggle_scaler(self):

        if (self._running):
            self._state_manager = None
            self._running = not self._running
        else:
            self._state_manager = auto_scaler_state_manager.ScalerStateManager(
                self, self._pool_monitor_helper)
            self._running = not self._running


helper = pool_monitor_helper.get_monitor_helper()
pool = ec2_pool.get_worker_pool()
auto_scaler = AutoScaler(helper, pool)


def get_auto_scaler():
    return auto_scaler
コード例 #4
0
def decrease_pool_handler(num=1):
    pool = ec2_pool.get_worker_pool()
    pool.decrease_pool_by_size(num)
    return redirect('/')
コード例 #5
0
def prepare_instance_status_info():
    pool = ec2_pool.get_worker_pool()
    instances_status_counts = {}
    return pool.get_registered_instances_health_status()