@@ -31,7 +31,7 @@ def test_producer_get_metrics(self):
3131 producer = standard_metrics .AzureStandardMetricsProducer ()
3232 metrics = producer .get_metrics ()
3333
34- self .assertEqual (len (metrics ), 3 )
34+ self .assertEqual (len (metrics ), 4 )
3535
3636 def test_get_available_memory_metric (self ):
3737 gauge = standard_metrics .get_available_memory_metric ()
@@ -55,21 +55,21 @@ def test_get_process_private_bytes_metric(self):
5555 '\\ Process(??APP_WIN32_PROC??)\\ Private Bytes' )
5656
5757 def test_get_process_private_bytes (self ):
58- with mock .patch ('psutil.Process' ) as process_mock :
58+ with mock .patch ('opencensus.ext.azure.metrics_exporter' +
59+ '.standard_metrics.PROCESS' ) as process_mock :
5960 memory = collections .namedtuple ('memory' , 'rss' )
6061 pmem = memory (rss = 100 )
61- process = mock .Mock ()
62- process .memory_info .return_value = pmem
63- process_mock .return_value = process
62+ process_mock .memory_info .return_value = pmem
6463 mem = standard_metrics .get_process_private_bytes ()
6564
6665 self .assertEqual (mem , 100 )
6766
6867 @mock .patch ('opencensus.ext.azure.metrics_exporter'
6968 '.standard_metrics.logger' )
7069 def test_get_process_private_bytes_exception (self , logger_mock ):
71- with mock .patch ('psutil.Process' ) as process_mock :
72- process_mock .side_effect = Exception ()
70+ with mock .patch ('opencensus.ext.azure.metrics_exporter' +
71+ '.standard_metrics.PROCESS' ) as process_mock :
72+ process_mock .memory_info .side_effect = Exception ()
7373 standard_metrics .get_process_private_bytes ()
7474
7575 logger_mock .exception .assert_called ()
@@ -88,3 +88,30 @@ def test_get_processor_time(self):
8888 processor_time = standard_metrics .get_processor_time ()
8989
9090 self .assertEqual (processor_time , 5.5 )
91+
92+ def test_get_process_cpu_usage_metric (self ):
93+ gauge = standard_metrics .get_process_cpu_usage_metric ()
94+
95+ self .assertEqual (gauge .descriptor .name ,
96+ '\\ Process(??APP_WIN32_PROC??)\\ % Processor Time' )
97+
98+ def test_get_process_cpu_usage (self ):
99+ with mock .patch ('opencensus.ext.azure.metrics_exporter' +
100+ '.standard_metrics.PROCESS' ) as process_mock :
101+ with mock .patch ('opencensus.ext.azure.metrics_exporter' +
102+ '.standard_metrics.psutil' ) as psutil_mock :
103+ process_mock .cpu_percent .return_value = 44.4
104+ psutil_mock .cpu_count .return_value = 2
105+ cpu_usage = standard_metrics .get_process_cpu_usage ()
106+
107+ self .assertEqual (cpu_usage , 22.2 )
108+
109+ @mock .patch ('opencensus.ext.azure.metrics_exporter'
110+ '.standard_metrics.logger' )
111+ def test_get_process_cpu_usage_exception (self , logger_mock ):
112+ with mock .patch ('opencensus.ext.azure.metrics_exporter' +
113+ '.standard_metrics.psutil' ) as psutil_mock :
114+ psutil_mock .cpu_count .return_value = None
115+ standard_metrics .get_process_cpu_usage ()
116+
117+ logger_mock .exception .assert_called ()
0 commit comments