def create_metrics(platform: Platform) -> List[Metric]: """Creates a list of Metric objects from data in Platform object""" platform_metrics = [] platform_metrics.extend([ Metric.create_metric_with_metadata(MetricName.PLATFORM_TOPOLOGY_CORES, value=platform.cores), Metric.create_metric_with_metadata(MetricName.PLATFORM_TOPOLOGY_CPUS, value=platform.cpus), Metric.create_metric_with_metadata(MetricName.PLATFORM_TOPOLOGY_SOCKETS, value=platform.sockets), Metric.create_metric_with_metadata(MetricName.PLATFORM_LAST_SEEN, value=time.time()), ]) # Exporting measurements into metrics. platform_metrics.extend(export_metrics_from_measurements(platform.measurements)) platform_metrics.append( Metric.create_metric_with_metadata( MetricName.WCA_INFORMATION, value=1, labels=dict( sockets=str(platform.sockets), cores=str(platform.cores), cpus=str(platform.cpus), cpu_model=platform.cpu_model, wca_version=get_wca_version(), ) ) ) return platform_metrics
def create_metrics(platform: Platform) -> List[Metric]: """Creates a list of Metric objects from data in Platform object""" platform_metrics = list() platform_metrics.append( Metric.create_metric_with_metadata(name=MetricName.MEM_USAGE, value=platform.total_memory_used)) for cpu_id, cpu_usage in platform.cpus_usage.items(): platform_metrics.append( Metric.create_metric_with_metadata( name=MetricName.CPU_USAGE_PER_CPU, value=cpu_usage, labels={"cpu": str(cpu_id)})) return platform_metrics
def _get_internal_metrics(tasks: List[Task]) -> List[Metric]: """Internal wca metrics e.g. memory usage, profiling information.""" # Memory usage. memory_usage_rss_self = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss memory_usage_rss_children = resource.getrusage(resource.RUSAGE_CHILDREN).ru_maxrss memory_usage_rss = memory_usage_rss_self + memory_usage_rss_children metrics = [ Metric.create_metric_with_metadata(MetricName.WCA_UP, value=time.time()), Metric.create_metric_with_metadata(MetricName.WCA_TASKS, value=len(tasks)), Metric.create_metric_with_metadata(MetricName.WCA_MEM_USAGE_BYTES, value=int(memory_usage_rss * 1024)), ] return metrics
def create_metrics(task_measurements: Measurements) -> List[Metric]: """Prepare a list of metrics for a mesos tasks based on provided measurements applying common_labels. :param task_measurements: use values of measurements to create metrics """ metrics = [] for metric_name, metric_value in task_measurements.items(): metric = Metric.create_metric_with_metadata(name=metric_name, value=metric_value) metrics.append(metric) return metrics