예제 #1
0
 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)
예제 #2
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)
예제 #3
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)
예제 #4
0
 def test_track_request_rate_time_none(self, time_mock):
     time_mock.time.return_value = 100
     request_metrics_collector = request_metrics.RequestMetrics(
         meter=self._meter,
         labels=self._test_labels,
     )
     request_metrics.requests_map["last_time"] = None
     obs = Observer(
         callback=request_metrics_collector._track_request_rate,
         name="\\ASP.NET Applications(??APP_W3SVC_PROC??)\\Requests/Sec",
         description="Incoming Requests Average Execution Rate",
         unit="rps",
         value_type=float,
     )
     request_metrics_collector._track_request_rate(obs)
     self.assertEqual(
         obs.aggregators[tuple(self._test_labels.items())].current, 0.0)
예제 #5
0
 def test_track_memory(self, psutil_mock):
     performance_metrics_collector = PerformanceMetrics(
         meter=self._meter, labels=self._test_labels)
     memory = collections.namedtuple("memory", "available")
     vmem = memory(available=100)
     psutil_mock.return_value = vmem
     obs = Observer(
         callback=performance_metrics_collector._track_memory,
         name="\\Memory\\Available Bytes",
         description="Amount of available memory in bytes",
         unit="byte",
         value_type=int,
         meter=self._meter,
     )
     performance_metrics_collector._track_memory(obs)
     self.assertEqual(
         obs.aggregators[tuple(self._test_labels.items())].current, 100)
예제 #6
0
 def test_track_process_memory_exception(self, logger_mock):
     with mock.patch(
             "azure_monitor.sdk.auto_collection.performance_metrics.PROCESS",
             throw(Exception),
     ):
         performance_metrics_collector = PerformanceMetrics(
             meter=self._meter, labels=self._test_labels)
         obs = Observer(
             callback=performance_metrics_collector._track_process_memory,
             name="\\Process(??APP_WIN32_PROC??)\\Private Bytes",
             description="Amount of memory process has used in bytes",
             unit="byte",
             value_type=int,
             meter=self._meter,
         )
         performance_metrics_collector._track_process_memory(obs)
         self.assertEqual(logger_mock.exception.called, True)
예제 #7
0
 def test_track_process_cpu_exception(self, logger_mock):
     with mock.patch(
             "azure_monitor.sdk.auto_collection.performance_metrics.psutil"
     ) as psutil_mock:
         performance_metrics_collector = PerformanceMetrics(
             meter=self._meter, labels=self._test_labels)
         psutil_mock.cpu_count.return_value = None
         obs = Observer(
             callback=performance_metrics_collector._track_process_cpu,
             name="\\Process(??APP_WIN32_PROC??)\\% Processor Time",
             description="Process CPU usage as a percentage",
             unit="percentage",
             value_type=float,
             meter=self._meter,
         )
         performance_metrics_collector._track_process_cpu(obs)
         self.assertEqual(logger_mock.exception.called, True)
예제 #8
0
 def test_track_cpu(self):
     performance_metrics_collector = PerformanceMetrics(
         meter=self._meter, labels=self._test_labels)
     with mock.patch("psutil.cpu_times_percent") as processor_mock:
         cpu = collections.namedtuple("cpu", "idle")
         cpu_times = cpu(idle=94.5)
         processor_mock.return_value = cpu_times
         obs = Observer(
             callback=performance_metrics_collector._track_cpu,
             name="\\Processor(_Total)\\% Processor Time",
             description="Processor time as a percentage",
             unit="percentage",
             value_type=float,
             meter=self._meter,
         )
         performance_metrics_collector._track_cpu(obs)
         self.assertEqual(
             obs.aggregators[tuple(self._test_labels.items())].current, 5.5)
예제 #9
0
 def test_track_request_duration_error(self):
     request_metrics_collector = request_metrics.RequestMetrics(
         meter=self._meter,
         labels=self._test_labels,
     )
     request_metrics.requests_map["duration"] = 100
     request_metrics.requests_map["count"] = 10
     request_metrics.requests_map["last_count"] = 10
     obs = Observer(
         callback=request_metrics_collector._track_request_duration,
         name=
         "\\ASP.NET Applications(??APP_W3SVC_PROC??)\\Request Execution Time",
         description="Incoming Requests Average Execution Time",
         unit="milliseconds",
         value_type=float,
     )
     request_metrics_collector._track_request_duration(obs)
     self.assertEqual(
         obs.aggregators[tuple(self._test_labels.items())].current, 0.0)
예제 #10
0
 def test_track_process_memory(self):
     with mock.patch(
             "azure_monitor.sdk.auto_collection.performance_metrics.PROCESS"
     ) as process_mock:
         performance_metrics_collector = PerformanceMetrics(
             meter=self._meter, labels=self._test_labels)
         memory = collections.namedtuple("memory", "rss")
         pmem = memory(rss=100)
         process_mock.memory_info.return_value = pmem
         obs = Observer(
             callback=performance_metrics_collector._track_process_memory,
             name="\\Process(??APP_WIN32_PROC??)\\Private Bytes",
             description="Amount of memory process has used in bytes",
             unit="byte",
             value_type=int,
             meter=self._meter,
         )
         performance_metrics_collector._track_process_memory(obs)
         self.assertEqual(
             obs.aggregators[tuple(self._test_labels.items())].current, 100)
예제 #11
0
 def test_track_process_cpu(self, psutil_mock):
     with mock.patch(
             "azure_monitor.sdk.auto_collection.performance_metrics.PROCESS"
     ) as process_mock:
         performance_metrics_collector = PerformanceMetrics(
             meter=self._meter, labels=self._test_labels)
         process_mock.cpu_percent.return_value = 44.4
         psutil_mock.cpu_count.return_value = 2
         obs = Observer(
             callback=performance_metrics_collector._track_process_cpu,
             name="\\Process(??APP_WIN32_PROC??)\\% Processor Time",
             description="Process CPU usage as a percentage",
             unit="percentage",
             value_type=float,
             meter=self._meter,
         )
         performance_metrics_collector._track_process_cpu(obs)
         self.assertEqual(
             obs.aggregators[tuple(self._test_labels.items())].current,
             22.2)
 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
     )
 def test_track_request_duration(self):
     request_metrics_collector = request_metrics.RequestMetrics(
         meter=self._meter,
         labels=self._test_labels,
         span_processor=self._span_processor,
         collection_type=AutoCollectionType.STANDARD_METRICS,
     )
     self._span_processor.request_duration = 100
     self._span_processor.request_count = 10
     request_metrics.requests_map["last_count"] = 5
     obs = Observer(
         callback=request_metrics_collector._track_request_duration,
         name="\\ASP.NET Applications(??APP_W3SVC_PROC??)\\Request Execution Time",
         description="Incoming Requests Average Execution Time",
         unit="milliseconds",
         value_type=int,
         meter=self._meter,
     )
     request_metrics_collector._track_request_duration(obs)
     self.assertEqual(
         obs.aggregators[tuple(self._test_labels.items())].current, 20.0
     )
 def test_track_request_rate_error(self, time_mock):
     request_metrics_collector = request_metrics.RequestMetrics(
         meter=self._meter,
         labels=self._test_labels,
         span_processor=self._span_processor,
         collection_type=AutoCollectionType.STANDARD_METRICS,
     )
     time_mock.time.return_value = 100
     request_metrics.requests_map["last_rate"] = 5.0
     request_metrics.requests_map["last_time"] = 100
     obs = Observer(
         callback=request_metrics_collector._track_request_rate,
         name="\\ASP.NET Applications(??APP_W3SVC_PROC??)\\Requests/Sec",
         description="Incoming Requests Average Execution Rate",
         unit="rps",
         value_type=float,
         meter=self._meter,
     )
     request_metrics_collector._track_request_rate(obs)
     self.assertEqual(
         obs.aggregators[tuple(self._test_labels.items())].current, 5.0
     )