コード例 #1
0
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
コード例 #2
0
ファイル: fn_api_runner.py プロジェクト: lyft/beam
 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))
コード例 #3
0
 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))