def test_export_exemplar(self): metric = _create_metric( metric_descriptor.MetricDescriptorType.CUMULATIVE_DISTRIBUTION, points=[ point.Point(value=_create_distribution_value( bounds=[1], buckets=[ value.Bucket(count=1, exemplar=value.Exemplar( value=2.5, timestamp=TEST_TIME_STR, attachments={'key1': 'value1'})), value.Bucket(count=0), ]), timestamp=datetime.now()) ]) handler = mock.Mock(spec=ocagent.ExportRpcHandler) ocagent.StatsExporter(handler).export_metrics([metric]) self.assertEqual( handler.send.call_args[0][0].metrics[0].timeseries[0].points[0]. distribution_value.buckets[0].exemplar, metrics_pb2.DistributionValue.Exemplar( value=2.5, timestamp=timestamp_pb2.Timestamp(seconds=1545699723, nanos=4000), attachments={'key1': 'value1'}))
def to_point(self, timestamp): """Get a Point conversion of this aggregation. This method creates a :class: `opencensus.metrics.export.point.Point` with a :class: `opencensus.metrics.export.value.ValueDistribution` value, and creates buckets and exemplars for that distribution from the appropriate classes in the `metrics` package. :type timestamp: :class: `datetime.datetime` :param timestamp: The time to report the point as having been recorded. :rtype: :class: `opencensus.metrics.export.point.Point` :return: a :class: `opencensus.metrics.export.value.ValueDistribution` -valued Point. """ buckets = [None] * len(self.counts_per_bucket) for ii, count in enumerate(self.counts_per_bucket): stat_ex = self.exemplars.get(ii, None) if stat_ex is not None: metric_ex = value.Exemplar(stat_ex.value, stat_ex.timestamp, copy.copy(stat_ex.attachments)) buckets[ii] = value.Bucket(count, metric_ex) else: buckets[ii] = value.Bucket(count) bucket_options = value.BucketOptions(value.Explicit(self.bounds)) return point.Point( value.ValueDistribution( count=self.count_data, sum_=self.sum, sum_of_squared_deviation=self.sum_of_sqd_deviations, bucket_options=bucket_options, buckets=buckets), timestamp)
def setUp(self): self.exemplar = value_module.Exemplar(EX_VALUE, EX_TIMESTAMP, EX_ATTACHMENTS)
def test_init(self): exemplar = value_module.Exemplar(EX_VALUE, EX_TIMESTAMP, EX_ATTACHMENTS) self.assertEqual(exemplar.value, EX_VALUE) self.assertEqual(exemplar.timestamp, EX_TIMESTAMP) self.assertEqual(exemplar.attachments, EX_ATTACHMENTS)