def test_constructor(self): mock_meter = mock.Mock() metrics_collector = dependency_metrics.DependencyMetrics( meter=mock_meter, labels=self._test_labels) self.assertEqual(metrics_collector._meter, mock_meter) self.assertEqual(metrics_collector._labels, self._test_labels) self.assertEqual(mock_meter.register_observer.call_count, 3) create_metric_calls = mock_meter.register_observer.call_args_list create_metric_calls[0].assert_called_with( callback=metrics_collector._track_dependency_duration, name="\\ApplicationInsights\\Dependency Call Duration", description="Average Outgoing Requests duration", unit="milliseconds", value_type=float, ) create_metric_calls[1].assert_called_with( callback=metrics_collector._track_failure_rate, name="\\ApplicationInsights\\Dependency Calls Failed/Sec", description="Failed Outgoing Requests per second", unit="rps", value_type=float, ) create_metric_calls[2].assert_called_with( callback=metrics_collector._track_dependency_rate, name="\\ApplicationInsights\\Dependency Calls/Sec", description="Outgoing Requests per second", unit="rps", value_type=float, )
def test_constructor(self): mock_meter = mock.Mock() metrics_collector = dependency_metrics.DependencyMetrics( meter=mock_meter, labels=self._test_labels ) self.assertEqual(metrics_collector._meter, mock_meter) self.assertEqual(metrics_collector._labels, self._test_labels) self.assertEqual(mock_meter.register_observer.call_count, 1) mock_meter.register_observer.assert_called_with( callback=metrics_collector._track_dependency_rate, name="\\ApplicationInsights\\Dependency Calls/Sec", description="Outgoing Requests per second", unit="rps", value_type=int, )
def test_track_dependency_rate_time_none(self, time_mock): time_mock.time.return_value = 100 metrics_collector = dependency_metrics.DependencyMetrics( meter=self._meter, labels=self._test_labels) dependency_metrics.dependency_map["last_time"] = None obs = Observer( callback=metrics_collector._track_dependency_rate, name="\\ApplicationInsights\\Dependency Calls/Sec", description="Outgoing Requests per second", unit="rps", value_type=float, ) metrics_collector._track_dependency_rate(obs) self.assertEqual( obs.aggregators[tuple(self._test_labels.items())].current, 0.0)
def test_track_failed_dependency_rate_time_none(self, time_mock): time_mock.time.return_value = 100 metrics_collector = dependency_metrics.DependencyMetrics( meter=self._meter, labels=self._test_labels) dependency_metrics.dependency_map["last_time"] = None obs = Observer( callback=metrics_collector._track_failure_rate, name="test", description="test", unit="test", value_type=float, ) metrics_collector._track_failure_rate(obs) self.assertEqual( obs.aggregators[tuple(self._test_labels.items())].current, 0.0)
def test_track_dependency_duration_error(self): metrics_collector = dependency_metrics.DependencyMetrics( meter=self._meter, labels=self._test_labels) dependency_metrics.dependency_map["duration"] = 100 dependency_metrics.dependency_map["count"] = 10 dependency_metrics.dependency_map["last_count"] = 10 obs = Observer( callback=metrics_collector._track_dependency_duration, name="test", description="test", unit="test", value_type=float, ) metrics_collector._track_dependency_duration(obs) self.assertEqual( obs.aggregators[tuple(self._test_labels.items())].current, 0)
def test_track_dependency_duration(self): metrics_collector = dependency_metrics.DependencyMetrics( meter=self._meter, labels=self._test_labels, span_processor=self._span_processor, ) self._span_processor.dependency_duration = 100 self._span_processor.dependency_count = 10 dependency_metrics.dependency_map["last_count"] = 5 obs = Observer( callback=metrics_collector._track_dependency_duration, name="test", description="test", unit="test", value_type=int, meter=self._meter, ) metrics_collector._track_dependency_duration(obs) self.assertEqual( obs.aggregators[tuple(self._test_labels.items())].current, 20 )