def __init__(self, config_file=None): if not config_file: self.config_file = '/etc/openshift_tools/container_metrics.yml' else: self.config_file = config_file self.config = None self.parse_config() self.cli = AutoVersionClient(base_url='unix://var/run/docker.sock', timeout=120) self.docker_util = DockerUtil(self.cli) self.zagg_sender = ZaggSender(verbose=True)
#print docker_p.memory_info().vms docker_memoryusage['rss'] = docker_p.memory_info().rss docker_memoryusage['vms'] = docker_p.memory_info().vms except psutil.NoSuchProcess: print 'error' return docker_memoryusage if __name__ == "__main__": keys = None ms = MetricSender() try: cli = DockerClient(version='auto', base_url='unix://var/run/docker.sock', timeout=120) du = DockerUtil(cli) du_dds = du.get_disk_usage() docker_memoryusages = getRssVmsofDocker() keys = { 'docker.storage.is_loopback': int(du.is_loopback), 'docker.ping': 1, # Docker is up } # These storage metrics are only available in devicemapper and loopback if du.is_devicemapper or du.is_loopback: keys['docker.storage.data.space.used'] = du_dds.data_space_used keys['docker.storage.data.space.available'] = du_dds.data_space_available keys['docker.storage.data.space.percent_available'] = du_dds.data_space_percent_available keys['docker.storage.data.space.total'] = du_dds.data_space_total
from docker import APIClient as DockerClient from docker.errors import DockerException from openshift_tools.monitoring.metric_sender import MetricSender from openshift_tools.timeout import TimeoutException from openshift_tools.monitoring.dockerutil import DockerUtil import json import time if __name__ == "__main__": keys = None mts = MetricSender() try: cli = DockerClient(version='auto', base_url='unix://var/run/docker.sock', timeout=120) du = DockerUtil(cli, max_wait=360) # Wait up to 6 minutes time_start = time.time() du.get_disk_usage() time_stop = time.time() elapsed_ms = int((time_stop - time_start) * 1000) keys = { 'docker.info_elapsed_ms': elapsed_ms } except (DockerException, TimeoutException) as ex: print "\nERROR talking to docker: %s\n" % ex.message keys = { 'docker.info_elapsed_ms': 360000 # 360000 = 6 minutes }