def from_monitoring_infos(monitoring_info_list, user_metrics_only=False): """Groups MonitoringInfo objects into counters, distributions and gauges. Args: monitoring_info_list: An iterable of MonitoringInfo objects. user_metrics_only: If true, includes user metrics only. Returns: A tuple containing three dictionaries: counters, distributions and gauges, respectively. Each dictionary contains (MetricKey, metric result) pairs. """ counters = {} distributions = {} gauges = {} for mi in monitoring_info_list: if (user_metrics_only and not monitoring_infos.is_user_monitoring_info(mi)): continue try: key = _create_metric_key(mi) except ValueError as e: _LOGGER.debug(str(e)) continue metric_result = (monitoring_infos.extract_metric_result_map_value(mi)) if monitoring_infos.is_counter(mi): counters[key] = metric_result elif monitoring_infos.is_distribution(mi): distributions[key] = metric_result elif monitoring_infos.is_gauge(mi): gauges[key] = metric_result return counters, distributions, gauges
def _init_metrics_from_monitoring_infos(self, step_monitoring_infos): for smi in step_monitoring_infos.values(): # Only include user metrics. for mi in smi: if (self._user_metrics_only and not monitoring_infos.is_user_monitoring_info(mi)): continue key = self._to_metric_key(mi) if monitoring_infos.is_counter(mi): self._counters[key] = ( monitoring_infos.extract_metric_result_map_value(mi)) elif monitoring_infos.is_distribution(mi): self._distributions[key] = ( monitoring_infos.extract_metric_result_map_value(mi)) elif monitoring_infos.is_gauge(mi): self._gauges[key] = ( monitoring_infos.extract_metric_result_map_value(mi))