def test_export_metrics(self): lv = label_value.LabelValue('val') val = value.ValueLong(value=123) dt = datetime(2019, 3, 20, 21, 34, 0, 537954) pp = point.Point(value=val, timestamp=dt) ts = [ time_series.TimeSeries(label_values=[lv], points=[pp], start_timestamp=utils.to_iso_str(dt)) ] desc = metric_descriptor.MetricDescriptor( name='name', description='description', unit='unit', type_=metric_descriptor.MetricDescriptorType.GAUGE_INT64, label_keys=[label_key.LabelKey('key', 'description')]) mm = metric.Metric(descriptor=desc, time_series=ts) exporter = stackdriver.StackdriverStatsExporter(client=mock.Mock()) exporter.export_metrics([mm]) self.assertEqual(exporter.client.create_time_series.call_count, 1) sd_args = exporter.client.create_time_series.call_args[0][1] self.assertEqual(len(sd_args), 1) [sd_arg] = exporter.client.create_time_series.call_args[0][1] self.assertEqual(sd_arg.points[0].value.int64_value, 123)
def _create_metric(descriptor_type=metric_descriptor.MetricDescriptorType. CUMULATIVE_INT64, points=[]): return metric.Metric( metric_descriptor.MetricDescriptor('', '', '', descriptor_type, []), [ time_series.TimeSeries([label_value.LabelValue()], points, TEST_TIME_STR) ])
def get_label_values(tag_values): """Convert an iterable of TagValues into a list of LabelValues. :type tag_values: list(:class: `opencensus.tags.tag_value.TagValue`) :param tag_values: An iterable of TagValues to convert. :rtype: list(:class: `opencensus.metrics.label_value.LabelValue`) :return: A list of LabelValues, converted from TagValues. """ return [label_value.LabelValue(tv) for tv in tag_values]
def test_export_single_metric(self, mock_stats, mock_client): """Check that we can export a set of a single metric.""" lv = label_value.LabelValue('val') val = value.ValueLong(value=123) dt = datetime(2019, 3, 20, 21, 34, 0, 537954) pp = point.Point(value=val, timestamp=dt) ts = [ time_series.TimeSeries(label_values=[lv], points=[pp], start_timestamp=utils.to_iso_str(dt)) ] desc = metric_descriptor.MetricDescriptor( name='name2', description='description2', unit='unit2', type_=metric_descriptor.MetricDescriptorType.GAUGE_INT64, label_keys=[label_key.LabelKey('key', 'description')]) mm = metric.Metric(descriptor=desc, time_series=ts) mock_stats.get_metrics.return_value = [mm] with MockGetExporterThread() as mget: exporter = stackdriver.new_stats_exporter( stackdriver.Options(project_id=1)) mget.transport.step() exporter.client.create_metric_descriptor.assert_called() self.assertEqual(exporter.client.create_metric_descriptor.call_count, 1) md_call_arg =\ exporter.client.create_metric_descriptor.call_args[0][1] self.assertEqual(md_call_arg.metric_kind, monitoring_v3.enums.MetricDescriptor.MetricKind.GAUGE) self.assertEqual(md_call_arg.value_type, monitoring_v3.enums.MetricDescriptor.ValueType.INT64) exporter.client.create_time_series.assert_called() self.assertEqual(exporter.client.create_time_series.call_count, 1) ts_call_arg = exporter.client.create_time_series.call_args[0][1] self.assertEqual(len(ts_call_arg), 1) self.assertEqual(len(ts_call_arg[0].points), 1) self.assertEqual(ts_call_arg[0].points[0].value.int64_value, 123)
def create_metric(): lv = label_value.LabelValue('val') val = value.ValueLong(value=123) dt = datetime(2019, 3, 20, 21, 34, 0, 537954) pp = point.Point(value=val, timestamp=dt) ts = [ time_series.TimeSeries(label_values=[lv], points=[pp], start_timestamp=utils.to_iso_str(dt)) ] desc = metric_descriptor.MetricDescriptor( name='name', description='description', unit='unit', type_=metric_descriptor.MetricDescriptorType.GAUGE_INT64, label_keys=[label_key.LabelKey('key', 'description')]) return metric.Metric(descriptor=desc, time_series=ts)
def __init__(self, project_id="", resource="", metric_prefix="", default_monitoring_labels=None): self.project_id = project_id self.resource = resource self.metric_prefix = metric_prefix if default_monitoring_labels is None: self.default_monitoring_labels = { label_key.LabelKey(OPENCENSUS_TASK, OPENCENSUS_TASK_DESCRIPTION): label_value.LabelValue(get_task_value()) } else: for key, val in default_monitoring_labels.items(): if not isinstance(key, label_key.LabelKey): raise TypeError if not isinstance(val, label_value.LabelValue): raise TypeError self.default_monitoring_labels = default_monitoring_labels
def test_constructor_WithNonAsciiChars(self): value = '值' label_value = label_value_module.LabelValue(value) self.assertIsNotNone(label_value) self.assertEqual(label_value.value, value)
def test_constructor_Empty(self): value = '' label_value = label_value_module.LabelValue(value) self.assertIsNotNone(label_value) self.assertEqual(label_value.value, '')
def test_constructor_None(self): label_value = label_value_module.LabelValue() self.assertIsNotNone(label_value) self.assertIsNone(label_value.value)
# # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import unittest from opencensus.metrics import label_value from opencensus.metrics.export import point from opencensus.metrics.export import time_series from opencensus.metrics.export import value START_TIMESTAMP = '2018-10-09T22:33:44.012345Z' LABEL_VALUE1 = label_value.LabelValue('value one') LABEL_VALUE2 = label_value.LabelValue('价值二') LABEL_VALUES = (LABEL_VALUE1, LABEL_VALUE2) POINTS = (point.Point(value.ValueLong(1), "2018-10-09T23:33:44.012345Z"), point.Point(value.ValueLong(2), "2018-10-10T00:33:44.012345Z"), point.Point(value.ValueLong(3), "2018-10-10T01:33:44.012345Z"), point.Point(value.ValueLong(4), "2018-10-10T02:33:44.012345Z"), point.Point(value.ValueLong(5), "2018-10-10T03:33:44.012345Z")) class TestTimeSeries(unittest.TestCase): def test_init(self): ts = time_series.TimeSeries(LABEL_VALUES, POINTS, START_TIMESTAMP) self.assertEqual(ts.start_timestamp, START_TIMESTAMP) self.assertEqual(ts.label_values, LABEL_VALUES)