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 test_export_metrics_from_measurements_artifical_metric(): """We currently do not have a metric which len(METRICS_METADATA[X].levels) > 1, so the need to add such metric in metrics structures for the test.""" with TestMetric(): measurements = {'test_metric': {'id0': {'stress': 0, 'dbmango': 1}, 'id1': {'stress': 10, 'dbmango': 20}}} result = export_metrics_from_measurements(measurements) assert len(result) == 4 assert result[0].name == 'test_metric' assert 'numa_node' in result[0].labels and 'container' in result[0].labels assert sorted([item.value for item in result]) == [0, 1, 10, 20] # values for metrics
def _build_tasks_metrics(tasks_data: TasksData) -> List[Metric]: """Build metrics for all tasks.""" tasks_metrics: List[Metric] = [] for task, data in tasks_data.items(): task_metrics = export_metrics_from_measurements(data.measurements) # Decorate metrics with task specific labels. for task_metric in task_metrics: task_metric.labels.update(data.labels) tasks_metrics += task_metrics return tasks_metrics
def test_export_metrics_from_measurements(measurements, expected): result = export_metrics_from_measurements(measurements) assert len(result) == expected