def test_handle_upload_no_data(self):
     client = mock.Mock()
     option = stackdriver.Options(project_id="project-test")
     exporter = stackdriver.StackdriverStatsExporter(options=option,
                                                     client=client)
     exporter.handle_upload(None)
     self.assertFalse(client.create_time_series.called)
    def test_create_timeseries(self):
        client = mock.Mock()
        start_time = datetime.utcnow()
        end_time = datetime.utcnow()

        option = stackdriver.Options(project_id="project-test", resource="global")
        exporter = stackdriver.StackdriverStatsExporter(options=option, client=client)

        stats = stats_module.Stats()
        view_manager = stats.view_manager
        stats_recorder = stats.stats_recorder

        if len(view_manager.measure_to_view_map.exporters) > 0:
            view_manager.unregister_exporter(view_manager.measure_to_view_map.exporters[0])

        view_manager.register_exporter(exporter)

        view_manager.register_view(VIDEO_SIZE_VIEW)

        tag_value = tag_value_module.TagValue("1200")
        tag_map = tag_map_module.TagMap()
        tag_map.insert(FRONTEND_KEY, tag_value)
        measure_map = stats_recorder.new_measurement_map()
        measure_map.measure_int_put(VIDEO_SIZE_MEASURE, 25 * MiB)

        measure_map.record(tag_map)

        v_data = measure_map.measure_to_view_map.get_view(VIDEO_SIZE_VIEW_NAME, None)

        time_serie = exporter.create_time_series_list(v_data,"")
        self.assertIsNotNone(time_serie)
        time_serie = exporter.create_time_series_list(v_data,"global")
        self.assertIsNotNone(time_serie)
 def test_create_metric_descriptor(self):
     client = mock.Mock()
     start_time = datetime.utcnow()
     end_time = datetime.utcnow()
     option = stackdriver.Options(project_id="project-test", metric_prefix="teste")
     exporter = stackdriver.StackdriverStatsExporter(options=option, client=client)
     desc = exporter.create_metric_descriptor(VIDEO_SIZE_VIEW)
     self.assertNotEqual(desc, None)
 def test_export_no_data(self):
     client = mock.Mock()
     transport = mock.Mock()
     option = stackdriver.Options(project_id="project-test")
     exporter = stackdriver.StackdriverStatsExporter(
         options=option, client=client, transport=transport)
     exporter.export(None)
     self.assertFalse(exporter.transport.export.called)
 def test_create_metric_descriptor(self):
     client = mock.Mock()
     option = stackdriver.Options(project_id="project-test",
                                  metric_prefix="teste")
     exporter = stackdriver.StackdriverStatsExporter(options=option,
                                                     client=client)
     desc = exporter.create_metric_descriptor(VIDEO_SIZE_VIEW)
     self.assertIsNotNone(desc)
 def test_on_register_view(self):
     client = mock.Mock()
     view_none = None
     option = stackdriver.Options(project_id="project-test")
     exporter = stackdriver.StackdriverStatsExporter(options=option,
                                                     client=client)
     exporter.on_register_view(VIDEO_SIZE_VIEW)
     exporter.on_register_view(view_none)
     self.assertTrue(client.create_metric_descriptor.called)
    def test_constructor_param(self):
        project_id = 1
        default_labels = {'key1': 'value1'}
        exporter = stackdriver.StackdriverStatsExporter(
            options=stackdriver.Options(project_id=project_id),
            default_labels=default_labels)

        self.assertEqual(exporter.options.project_id, project_id)
        self.assertEqual(exporter.default_labels, default_labels)
    def test_create_timeseries_with_resource(self, monitor_resource_mock):
        client = mock.Mock()

        option = stackdriver.Options(project_id="project-test",
                                     resource="global")
        exporter = stackdriver.StackdriverStatsExporter(options=option,
                                                        client=client)

        stats = stats_module.Stats()
        view_manager = stats.view_manager
        stats_recorder = stats.stats_recorder

        if len(view_manager.measure_to_view_map.exporters) > 0:
            view_manager.unregister_exporter(
                view_manager.measure_to_view_map.exporters[0])

        view_manager.register_exporter(exporter)

        view_manager.register_view(VIDEO_SIZE_VIEW)

        tag_value = tag_value_module.TagValue("1200")
        tag_map = tag_map_module.TagMap()
        tag_map.insert(FRONTEND_KEY, tag_value)
        measure_map = stats_recorder.new_measurement_map()
        measure_map.measure_int_put(VIDEO_SIZE_MEASURE, 25 * MiB)

        measure_map.record(tag_map)

        v_data = measure_map.measure_to_view_map.get_view(
            VIDEO_SIZE_VIEW_NAME, None)

        mocked_labels = {
            'instance_id': 'my-instance',
            'project_id': 'my-project',
            'zone': 'us-east1',
            'pod_id': 'localhost',
            'namespace_id': 'namespace'
        }

        monitor_resource_mock.return_value = mock.Mock()
        monitor_resource_mock.return_value.resource_type = 'gce_instance'
        monitor_resource_mock.return_value.get_resource_labels.return_value = mocked_labels

        time_series = exporter.create_time_series_list(v_data, "", "")
        self.assertEquals(time_series.resource.type, "gce_instance")
        self.assertEquals(
            time_series.metric.type,
            "custom.googleapis.com/opencensus/my.org/views/video_size_test2")
        self.assertIsNotNone(time_series)

        time_series = exporter.create_time_series_list(v_data, "global", "")
        self.assertEquals(
            time_series.metric.type,
            "custom.googleapis.com/opencensus/my.org/views/video_size_test2")
        self.assertIsNotNone(time_series)
 def test_export_with_data(self):
     client = mock.Mock()
     transport = mock.Mock()
     v_data = view_data_module.ViewData(
         view=VIDEO_SIZE_VIEW, start_time=TEST_TIME, end_time=TEST_TIME)
     view_data = [v_data]
     option = stackdriver.Options(project_id="project-test")
     exporter = stackdriver.StackdriverStatsExporter(
         options=option, client=client, transport=transport)
     exporter.export(view_data)
     self.assertTrue(exporter.transport.export.called)
 def test_handle_upload_with_data(self, monitor_resource_mock):
     client = mock.Mock()
     start_time = datetime.utcnow()
     end_time = datetime.utcnow()
     v_data = view_data_module.ViewData(
         view=VIDEO_SIZE_VIEW, start_time=start_time, end_time=end_time)
     view_data = [v_data]
     option = stackdriver.Options(project_id="project-test")
     exporter = stackdriver.StackdriverStatsExporter(
         options=option, client=client)
     exporter.handle_upload(view_data)
     self.assertTrue(client.create_time_series.called)
 def test_make_request(self):
     client = mock.Mock()
     start_time = datetime.utcnow()
     end_time = datetime.utcnow()
     v_data = view_data_module.ViewData(view=VIDEO_SIZE_VIEW,
                                        start_time=start_time,
                                        end_time=end_time)
     view_data = [v_data]
     option = stackdriver.Options(project_id="project-test")
     exporter = stackdriver.StackdriverStatsExporter(options=option, client=client)
     requests = exporter.make_request(view_data,1)
     self.assertEqual(len(requests), 1)
Exemplo n.º 12
0
 def test_handle_upload_with_data(self, monitor_resource_mock):
     client = mock.Mock()
     v_data = view_data_module.ViewData(view=VIDEO_SIZE_VIEW,
                                        start_time=TEST_TIME,
                                        end_time=TEST_TIME)
     v_data.record(context=tag_map_module.TagMap(), value=2, timestamp=None)
     view_data = [v_data]
     option = stackdriver.Options(project_id="project-test")
     exporter = stackdriver.StackdriverStatsExporter(options=option,
                                                     client=client)
     exporter.handle_upload(view_data)
     self.assertTrue(client.create_time_series.called)
Exemplo n.º 13
0
    def test_create_timeseries_float_tagvalue(self, monitor_resource_mock):
        client = mock.Mock()

        option = stackdriver.Options(project_id="project-test",
                                     resource="global")
        exporter = stackdriver.StackdriverStatsExporter(options=option,
                                                        client=client)

        stats = stats_module.Stats()
        view_manager = stats.view_manager
        stats_recorder = stats.stats_recorder

        if len(view_manager.measure_to_view_map.exporters) > 0:
            view_manager.unregister_exporter(
                view_manager.measure_to_view_map.exporters[0])

        view_manager.register_exporter(exporter)

        agg_3 = aggregation_module.SumAggregation(sum=2.2)
        view_name3 = "view-name3"
        new_view3 = view_module.View(view_name3,
                                     "processed video size over time",
                                     [FRONTEND_KEY_FLOAT],
                                     VIDEO_SIZE_MEASURE_FLOAT, agg_3)

        view_manager.register_view(new_view3)

        tag_value_float = tag_value_module.TagValue("1200")
        tag_map = tag_map_module.TagMap()
        tag_map.insert(FRONTEND_KEY_FLOAT, tag_value_float)

        measure_map = stats_recorder.new_measurement_map()
        measure_map.measure_float_put(VIDEO_SIZE_MEASURE_FLOAT, 25 * MiB)
        measure_map.record(tag_map)

        v_data = measure_map.measure_to_view_map.get_view(view_name3, None)

        time_series_list = exporter.create_time_series_list(
            v_data, "global", "")
        self.assertEqual(len(time_series_list), 1)
        [time_series] = time_series_list
        self.assertEqual(time_series.metric.type,
                         "custom.googleapis.com/opencensus/view-name3")
        self.assertCorrectLabels(time_series.metric.labels,
                                 {FRONTEND_KEY_FLOAT_CLEAN: "1200"},
                                 include_opencensus=True)
        self.assertIsNotNone(time_series.resource)

        self.assertEqual(len(time_series.points), 1)
        expected_value = monitoring_v3.types.TypedValue()
        expected_value.double_value = 2.2 + 25 * MiB
        self.assertEqual(time_series.points[0].value, expected_value)
 def test_create_metric_descriptor_count(self):
     client = mock.Mock()
     option = stackdriver.Options(
         project_id="project-test", metric_prefix="teste")
     view_name_count = "view-count"
     agg_count = aggregation_module.CountAggregation(count=2)
     view_count = view_module.View(
         view_name_count, "processed video size over time", [FRONTEND_KEY],
         VIDEO_SIZE_MEASURE, agg_count)
     exporter = stackdriver.StackdriverStatsExporter(
         options=option, client=client)
     desc = exporter.create_metric_descriptor(view_count)
     self.assertIsNotNone(desc)
    def test_create_metric_descriptor_sum_float(self):
        client = mock.Mock()
        option = stackdriver.Options(
            project_id="project-test", metric_prefix="teste")

        view_name_sum_float = "view-sum-float"
        agg_sum = aggregation_module.SumAggregation(sum=2)
        view_sum_float = view_module.View(
            view_name_sum_float, "processed video size over time",
            [FRONTEND_KEY_FLOAT], VIDEO_SIZE_MEASURE_FLOAT, agg_sum)
        exporter = stackdriver.StackdriverStatsExporter(
            options=option, client=client)
        desc = exporter.create_metric_descriptor(view_sum_float)
        self.assertIsNotNone(desc)
    def test_create_metric_descriptor_last_value_float(self):
        client = mock.Mock()
        option = stackdriver.Options(
            project_id="project-test", metric_prefix="teste")

        view_name_base = "view-base"
        agg_base = aggregation_module.LastValueAggregation()
        view_base = view_module.View(
            view_name_base, "processed video size over time", [FRONTEND_KEY],
            VIDEO_SIZE_MEASURE_FLOAT, agg_base)
        exporter = stackdriver.StackdriverStatsExporter(
            options=option, client=client)
        desc = exporter.create_metric_descriptor(view_base)
        self.assertIsNotNone(desc)
 def test_handle_upload(self):
     client = mock.Mock()
     start_time = datetime.utcnow()
     end_time = datetime.utcnow()
     v_data = view_data_module.ViewData(view=VIDEO_SIZE_VIEW,
                                           start_time=start_time,
                                           end_time=end_time)
     view_data = [v_data]
     option = stackdriver.Options(project_id="project-test")
     exporter = stackdriver.StackdriverStatsExporter(options=option, client=client)
     exporter.handle_upload(view_data)
     self.assertTrue(True)
     exporter.handle_upload(None)
     self.assertTrue(True)
    def test_create_metric_descriptor_base(self):
        client = mock.Mock()
        option = stackdriver.Options(
            project_id="project-test", metric_prefix="teste")

        view_name_base = "view-base"
        agg_base = aggregation_module.BaseAggregation()
        view_base = view_module.View(
            view_name_base, "processed video size over time", [FRONTEND_KEY],
            VIDEO_SIZE_MEASURE, agg_base)
        exporter = stackdriver.StackdriverStatsExporter(
            options=option, client=client)
        self.assertRaises(Exception, exporter.create_metric_descriptor,
                          view_base)
Exemplo n.º 19
0
    def test_create_batched_time_series_with_many(self, monitor_resource_mock):
        client = mock.Mock()

        # First view with 3
        view_name1 = "view-name1"
        view1 = view_module.View(view_name1, "test description", ['test'],
                                 VIDEO_SIZE_MEASURE,
                                 aggregation_module.LastValueAggregation())
        v_data1 = view_data_module.ViewData(view=view1,
                                            start_time=TEST_TIME,
                                            end_time=TEST_TIME)
        v_data1.record(context=tag_map_module.TagMap({'test': '1'}),
                       value=7,
                       timestamp=None)
        v_data1.record(context=tag_map_module.TagMap({'test': '2'}),
                       value=5,
                       timestamp=None)
        v_data1.record(context=tag_map_module.TagMap({'test': '3'}),
                       value=3,
                       timestamp=None)

        # Second view with 2
        view_name2 = "view-name2"
        view2 = view_module.View(view_name2, "test description", ['test'],
                                 VIDEO_SIZE_MEASURE,
                                 aggregation_module.LastValueAggregation())
        v_data2 = view_data_module.ViewData(view=view2,
                                            start_time=TEST_TIME,
                                            end_time=TEST_TIME)
        v_data2.record(context=tag_map_module.TagMap({'test': '1'}),
                       value=7,
                       timestamp=None)
        v_data2.record(context=tag_map_module.TagMap({'test': '2'}),
                       value=5,
                       timestamp=None)

        view_data = [v_data1, v_data2]

        option = stackdriver.Options(project_id="project-test")
        exporter = stackdriver.StackdriverStatsExporter(options=option,
                                                        client=client)

        time_series_batches = exporter.create_batched_time_series(view_data, 2)

        self.assertEqual(len(time_series_batches), 3)
        [tsb1, tsb2, tsb3] = time_series_batches
        self.assertEqual(len(tsb1), 2)
        self.assertEqual(len(tsb2), 2)
        self.assertEqual(len(tsb3), 1)
    def test_create_metric_descriptor_sum_int(self):
        client = mock.Mock()
        start_time = datetime.utcnow()
        end_time = datetime.utcnow()
        option = stackdriver.Options(project_id="project-test", metric_prefix="teste")

        view_name_sum_int= "view-sum-int"
        agg_sum = aggregation_module.SumAggregation(sum=2)
        view_sum_int = view_module.View(view_name_sum_int,
                                        "processed video size over time",
                                        [FRONTEND_KEY],
                                        VIDEO_SIZE_MEASURE,
                                        agg_sum)
        exporter = stackdriver.StackdriverStatsExporter(options=option, client=client)
        desc = exporter.create_metric_descriptor(view_sum_int)
        self.assertNotEqual(desc, None)
    def test_create_timeseries_last_value_float_tagvalue(
            self, monitor_resource_mock):
        client = mock.Mock()

        option = stackdriver.Options(project_id="project-test",
                                     resource="global")
        exporter = stackdriver.StackdriverStatsExporter(options=option,
                                                        client=client)

        stats = stats_module.Stats()
        view_manager = stats.view_manager
        stats_recorder = stats.stats_recorder

        if len(view_manager.measure_to_view_map.exporters) > 0:
            view_manager.unregister_exporter(
                view_manager.measure_to_view_map.exporters[0])

        view_manager.register_exporter(exporter)

        agg_1 = aggregation_module.LastValueAggregation(value=2)
        view_name1 = "view-name1"
        new_view1 = view_module.View(view_name1,
                                     "processed video size over time",
                                     [FRONTEND_KEY_FLOAT],
                                     VIDEO_SIZE_MEASURE_FLOAT, agg_1)

        view_manager.register_view(new_view1)

        tag_value_int = tag_value_module.TagValue("Abc")

        tag_map = tag_map_module.TagMap()

        tag_map.insert(FRONTEND_KEY_INT, tag_value_int)

        measure_map = stats_recorder.new_measurement_map()
        measure_map.measure_int_put(VIDEO_SIZE_MEASURE, 25 * MiB)

        measure_map.record(tag_map)

        v_data = measure_map.measure_to_view_map.get_view(view_name1, None)

        time_series = exporter.create_time_series_list(v_data, "global",
                                                       "kubernetes.io/myorg")
        self.assertEquals(time_series.metric.type,
                          "kubernetes.io/myorg/view-name1")
        self.assertIsNotNone(time_series)
Exemplo n.º 22
0
    def test_create_timeseries_something(self):
        """Check that exporter creates timeseries for multiple tag values.

        create_time_series_list should return a time series for each set of
        values in the tag value aggregation map.
        """

        v_data = mock.Mock(spec=view_data_module.ViewData)
        v_data.view.name = "example.org/test_view"
        v_data.view.columns = [
            tag_key_module.TagKey('color'),
            tag_key_module.TagKey('shape')
        ]
        v_data.view.aggregation.aggregation_type = \
            aggregation_module.Type.COUNT
        v_data.start_time = TEST_TIME
        v_data.end_time = TEST_TIME

        rs_count = aggregation_data_module.CountAggregationData(10)
        bc_count = aggregation_data_module.CountAggregationData(20)
        v_data.tag_value_aggregation_data_map = {
            ('red', 'square'): rs_count,
            ('blue', 'circle'): bc_count,
        }

        exporter = stackdriver.StackdriverStatsExporter(
            options=mock.Mock(),
            client=mock.Mock(),
        )
        time_series_list = exporter.create_time_series_list(v_data, "", "")

        self.assertEqual(len(time_series_list), 2)
        self.assertEqual(len(time_series_list[0].points), 1)
        self.assertEqual(len(time_series_list[1].points), 1)

        ts_by_color = {
            ts.metric.labels.get('color'): ts
            for ts in time_series_list
        }
        rs_ts = ts_by_color['red']
        bc_ts = ts_by_color['blue']
        self.assertEqual(rs_ts.metric.labels.get('shape'), 'square')
        self.assertEqual(bc_ts.metric.labels.get('shape'), 'circle')
        self.assertEqual(rs_ts.points[0].value.int64_value, 10)
        self.assertEqual(bc_ts.points[0].value.int64_value, 20)
    def test_create_timeseries_from_distribution(self):
        """Check for explicit 0-bound bucket for SD export."""

        v_data = mock.Mock(spec=view_data_module.ViewData)
        v_data.view.name = "example.org/test_view"
        v_data.view.columns = ['tag_key']
        v_data.view.aggregation.aggregation_type = \
            aggregation_module.Type.DISTRIBUTION
        v_data.start_time = TEST_TIME
        v_data.end_time = TEST_TIME

        # Aggregation over (10 * range(10)) for buckets [2, 4, 6, 8]
        dad = aggregation_data_module.DistributionAggregationData(
            mean_data=4.5,
            count_data=100,
            min_=0,
            max_=9,
            sum_of_sqd_deviations=825,
            counts_per_bucket=[20, 20, 20, 20, 20],
            bounds=[2, 4, 6, 8],
            exemplars={mock.Mock()
                       for ii in range(5)})
        v_data.tag_value_aggregation_data_map = {('tag_value', ): dad}

        exporter = stackdriver.StackdriverStatsExporter(
            options=mock.Mock(),
            client=mock.Mock(),
        )
        time_series_list = exporter.create_time_series_list(v_data, "", "")
        self.assertEqual(len(time_series_list), 1)
        [time_series] = time_series_list

        self.assertCorrectLabels(time_series.metric.labels,
                                 {'tag_key': 'tag_value'},
                                 include_opencensus=True)
        self.assertEqual(len(time_series.points), 1)
        [point] = time_series.points
        dv = point.value.distribution_value
        self.assertEqual(100, dv.count)
        self.assertEqual(4.5, dv.mean)
        self.assertEqual(825.0, dv.sum_of_squared_deviation)
        self.assertEqual([0, 20, 20, 20, 20, 20], dv.bucket_counts)
        self.assertEqual([0, 2, 4, 6, 8],
                         dv.bucket_options.explicit_buckets.bounds)
    def test_create_timeseries_float_tagvalue(self, monitor_resource_mock):
        client = mock.Mock()

        option = stackdriver.Options(project_id="project-test",
                                     resource="global")
        exporter = stackdriver.StackdriverStatsExporter(options=option,
                                                        client=client)

        stats = stats_module.Stats()
        view_manager = stats.view_manager
        stats_recorder = stats.stats_recorder

        if len(view_manager.measure_to_view_map.exporters) > 0:
            view_manager.unregister_exporter(
                view_manager.measure_to_view_map.exporters[0])

        view_manager.register_exporter(exporter)

        agg_2 = aggregation_module.SumAggregation(sum=2.2)
        view_name2 = "view-name2"
        new_view2 = view_module.View(view_name2,
                                     "processed video size over time",
                                     [FRONTEND_KEY_FLOAT],
                                     VIDEO_SIZE_MEASURE_FLOAT, agg_2)

        view_manager.register_view(new_view2)

        tag_value_float = tag_value_module.TagValue("1200")

        tag_map = tag_map_module.TagMap()

        tag_map.insert(FRONTEND_KEY_FLOAT, tag_value_float)

        measure_map = stats_recorder.new_measurement_map()
        measure_map.measure_float_put(VIDEO_SIZE_MEASURE_FLOAT, 25 * MiB)

        measure_map.record(tag_map)

        v_data = measure_map.measure_to_view_map.get_view(view_name2, None)

        time_series = exporter.create_time_series_list(v_data, "global", "")
        self.assertEquals(time_series.metric.type,
                          "custom.googleapis.com/opencensus/view-name2")
        self.assertIsNotNone(time_series)
Exemplo n.º 25
0
    def setup_create_timeseries_test(self):
        client = mock.Mock()
        execution_context.clear()

        option = stackdriver.Options(project_id="project-test",
                                     resource="global")
        exporter = stackdriver.StackdriverStatsExporter(options=option,
                                                        client=client)

        stats = stats_module.Stats()
        view_manager = stats.view_manager
        stats_recorder = stats.stats_recorder

        if len(view_manager.measure_to_view_map.exporters) > 0:
            view_manager.unregister_exporter(
                view_manager.measure_to_view_map.exporters[0])

        view_manager.register_exporter(exporter)
        return view_manager, stats_recorder, exporter
    def test_create_timeseries(self, monitor_resource_mock):
        client = mock.Mock()

        option = stackdriver.Options(project_id="project-test",
                                     resource="global")
        exporter = stackdriver.StackdriverStatsExporter(options=option,
                                                        client=client)

        stats = stats_module.Stats()
        view_manager = stats.view_manager
        stats_recorder = stats.stats_recorder

        if len(view_manager.measure_to_view_map.exporters) > 0:
            view_manager.unregister_exporter(
                view_manager.measure_to_view_map.exporters[0])

        view_manager.register_exporter(exporter)

        view_manager.register_view(VIDEO_SIZE_VIEW)

        tag_value = tag_value_module.TagValue("1200")
        tag_map = tag_map_module.TagMap()
        tag_map.insert(FRONTEND_KEY, tag_value)
        measure_map = stats_recorder.new_measurement_map()
        measure_map.measure_int_put(VIDEO_SIZE_MEASURE, 25 * MiB)

        measure_map.record(tag_map)

        v_data = measure_map.measure_to_view_map.get_view(
            VIDEO_SIZE_VIEW_NAME, None)

        time_series = exporter.create_time_series_list(v_data, "", "")
        self.assertEquals(time_series.resource.type, "global")
        self.assertEquals(
            time_series.metric.type,
            "custom.googleapis.com/opencensus/my.org/views/video_size_test2")
        self.assertIsNotNone(time_series)

        time_series = exporter.create_time_series_list(v_data, "global",
                                                       "kubernetes.io/myorg")
        self.assertEquals(time_series.metric.type,
                          "kubernetes.io/myorg/my.org/views/video_size_test2")
        self.assertIsNotNone(time_series)
Exemplo n.º 27
0
    def test_create_timeseries_invalid_aggregation(self):
        v_data = mock.Mock(spec=view_data_module.ViewData)
        v_data.view.name = "example.org/base_view"
        v_data.view.columns = [tag_key_module.TagKey('base_key')]
        v_data.view.aggregation.aggregation_type = \
            aggregation_module.Type.NONE
        v_data.start_time = TEST_TIME
        v_data.end_time = TEST_TIME

        base_data = aggregation_data_module.BaseAggregationData(10)
        v_data.tag_value_aggregation_data_map = {
            (None, ): base_data,
        }

        exporter = stackdriver.StackdriverStatsExporter(
            options=mock.Mock(),
            client=mock.Mock(),
        )
        self.assertRaises(TypeError, exporter.create_time_series_list, v_data,
                          "", "")
Exemplo n.º 28
0
    def test_create_batched_time_series(self, monitor_resource_mock):
        client = mock.Mock()
        v_data = view_data_module.ViewData(view=VIDEO_SIZE_VIEW,
                                           start_time=TEST_TIME,
                                           end_time=TEST_TIME)
        v_data.record(context=tag_map_module.TagMap(), value=2, timestamp=None)
        view_data = [v_data]

        option = stackdriver.Options(project_id="project-test")
        exporter = stackdriver.StackdriverStatsExporter(options=option,
                                                        client=client)

        time_series_batches = exporter.create_batched_time_series(view_data, 1)

        self.assertEqual(len(time_series_batches), 1)
        [time_series_batch] = time_series_batches
        self.assertEqual(len(time_series_batch), 1)
        [time_series] = time_series_batch
        self.assertEqual(
            time_series.metric.type,
            'custom.googleapis.com/opencensus/' + VIDEO_SIZE_VIEW_NAME)
        self.assertCorrectLabels(time_series.metric.labels, {},
                                 include_opencensus=True)
    def test_create_timeseries_from_distribution(self):
        """Check for explicit 0-bound bucket for SD export."""

        v_data = mock.Mock(spec=view_data_module.ViewData)
        v_data.view.name = "example.org/test_view"
        v_data.start_time = '2018-11-21T00:12:34.56Z'
        v_data.end_time = '2018-11-21T00:23:45.67Z'

        # Aggregation over (10 * range(10)) for buckets [2, 4, 6, 8]
        dad = aggregation_data_module.DistributionAggregationData(
            mean_data=4.5,
            count_data=100,
            min_=0,
            max_=9,
            sum_of_sqd_deviations=825,
            counts_per_bucket=[20, 20, 20, 20, 20],
            bounds=[2, 4, 6, 8],
            exemplars={mock.Mock()
                       for ii in range(5)})
        v_data.tag_value_aggregation_data_map = ({'tag_key': dad})

        exporter = stackdriver.StackdriverStatsExporter(
            options=mock.Mock(),
            client=mock.Mock(),
        )
        time_series = exporter.create_time_series_list(v_data, "", "")

        self.assertEqual(len(time_series.points), 1)
        [point] = time_series.points
        dv = point.value.distribution_value
        self.assertEqual(100, dv.count)
        self.assertEqual(4.5, dv.mean)
        self.assertEqual(825.0, dv.sum_of_squared_deviation)
        self.assertEqual([0, 20, 20, 20, 20, 20], dv.bucket_counts)
        self.assertEqual([0, 2, 4, 6, 8],
                         dv.bucket_options.explicit_buckets.bounds)
    def test_constructor(self):
        exporter = stackdriver.StackdriverStatsExporter()

        self.assertIsNone(exporter.client)