Пример #1
0
    def _populate_fields(self, metric, fields):
        """Fill in the fields attribute of a metric protocol buffer.

    Args:
      metric (metrics_pb2.MetricsData): a metrics protobuf to populate
      fields (list of (key, value) tuples): normalized metric fields

    Raises:
      MonitoringInvalidFieldTypeError: if a field has a value of unknown type
    """
        for key, value in fields:
            field = metric.fields.add()
            field.name = key
            if isinstance(value, basestring):
                field.type = metrics_pb2.MetricsField.STRING
                field.string_value = value
            elif isinstance(value, bool):
                field.type = metrics_pb2.MetricsField.BOOL
                field.bool_value = value
            elif isinstance(value, int):
                field.type = metrics_pb2.MetricsField.INT
                field.int_value = value
            else:
                raise errors.MonitoringInvalidFieldTypeError(
                    self._name, key, value)
Пример #2
0
    def _populate_field_descriptors(self, data_set, fields):
        """Populate `field_descriptor` in MetricsDataSet.

    Args:
      data_set (new_metrics_pb2.MetricsDataSet): a data set protobuf to
          populate
      fields (list of (key, value) tuples): normalized metric fields

    Raises:
      MonitoringInvalidFieldTypeError: if a field has a value of unknown type
    """
        field_type = new_metrics_pb2.MetricsDataSet.MetricFieldDescriptor
        for key, value in fields:
            descriptor = data_set.field_descriptor.add()
            descriptor.name = key
            if isinstance(value, basestring):
                descriptor.field_type = field_type.STRING
            elif isinstance(value, bool):
                descriptor.field_type = field_type.BOOL
            elif isinstance(value, int):
                descriptor.field_type = field_type.INT64
            else:
                raise errors.MonitoringInvalidFieldTypeError(
                    self._name, key, value)
Пример #3
0
 def validate_value(self, metric_name, value):
     if not isinstance(value, self.allowed_python_types):
         raise errors.MonitoringInvalidFieldTypeError(
             metric_name, self.name, value)