| 
12 | 12 | # See the License for the specific language governing permissions and  | 
13 | 13 | # limitations under the License.  | 
14 | 14 | 
 
  | 
15 |  | -# pylint: disable=protected-access  | 
 | 15 | +# pylint: disable=protected-access,too-many-lines  | 
16 | 16 | 
 
  | 
17 | 17 | import sys  | 
18 | 18 | from collections import namedtuple  | 
@@ -235,14 +235,28 @@ def _assert_metrics(self, observer_name, reader, expected):  | 
235 | 235 |                                 assertions += 1  | 
236 | 236 |         self.assertEqual(len(expected), assertions)  | 
237 | 237 | 
 
  | 
238 |  | -    def _test_metrics(self, observer_name, expected):  | 
 | 238 | +    @staticmethod  | 
 | 239 | +    def _setup_instrumentor() -> InMemoryMetricReader:  | 
239 | 240 |         reader = InMemoryMetricReader()  | 
240 | 241 |         meter_provider = MeterProvider(metric_readers=[reader])  | 
241 | 242 | 
 
  | 
242 | 243 |         system_metrics = SystemMetricsInstrumentor()  | 
243 | 244 |         system_metrics.instrument(meter_provider=meter_provider)  | 
 | 245 | +        return reader  | 
 | 246 | + | 
 | 247 | +    def _test_metrics(self, observer_name, expected):  | 
 | 248 | +        reader = self._setup_instrumentor()  | 
244 | 249 |         self._assert_metrics(observer_name, reader, expected)  | 
245 | 250 | 
 
  | 
 | 251 | +    def _assert_metrics_not_found(self, observer_name):  | 
 | 252 | +        reader = self._setup_instrumentor()  | 
 | 253 | +        seen_metrics = set()  | 
 | 254 | +        for resource_metrics in reader.get_metrics_data().resource_metrics:  | 
 | 255 | +            for scope_metrics in resource_metrics.scope_metrics:  | 
 | 256 | +                for metric in scope_metrics.metrics:  | 
 | 257 | +                    seen_metrics.add(metric.name)  | 
 | 258 | +        self.assertNotIn(observer_name, seen_metrics)  | 
 | 259 | + | 
246 | 260 |     # This patch is added here to stop psutil from raising an exception  | 
247 | 261 |     # because we're patching cpu_times  | 
248 | 262 |     # pylint: disable=unused-argument  | 
@@ -861,17 +875,7 @@ def test_context_switches_not_implemented_error(  | 
861 | 875 |     ):  | 
862 | 876 |         mock_process_num_ctx_switches.side_effect = NotImplementedError  | 
863 | 877 | 
 
  | 
864 |  | -        reader = InMemoryMetricReader()  | 
865 |  | -        meter_provider = MeterProvider(metric_readers=[reader])  | 
866 |  | -        system_metrics = SystemMetricsInstrumentor()  | 
867 |  | -        system_metrics.instrument(meter_provider=meter_provider)  | 
868 |  | - | 
869 |  | -        seen_metrics = set()  | 
870 |  | -        for resource_metrics in reader.get_metrics_data().resource_metrics:  | 
871 |  | -            for scope_metrics in resource_metrics.scope_metrics:  | 
872 |  | -                for metric in scope_metrics.metrics:  | 
873 |  | -                    seen_metrics.add(metric.name)  | 
874 |  | -        self.assertNotIn("process.context_switches", seen_metrics)  | 
 | 878 | +        self._assert_metrics_not_found("process.context_switches")  | 
875 | 879 | 
 
  | 
876 | 880 |     @mock.patch("psutil.Process.num_threads")  | 
877 | 881 |     def test_thread_count(self, mock_process_thread_num):  | 
@@ -971,19 +975,8 @@ def test_runtime_context_switches_not_implemented_error(  | 
971 | 975 |     ):  | 
972 | 976 |         mock_process_num_ctx_switches.side_effect = NotImplementedError  | 
973 | 977 | 
 
  | 
974 |  | -        reader = InMemoryMetricReader()  | 
975 |  | -        meter_provider = MeterProvider(metric_readers=[reader])  | 
976 |  | -        system_metrics = SystemMetricsInstrumentor()  | 
977 |  | -        system_metrics.instrument(meter_provider=meter_provider)  | 
978 |  | - | 
979 |  | -        seen_metrics = set()  | 
980 |  | -        for resource_metrics in reader.get_metrics_data().resource_metrics:  | 
981 |  | -            for scope_metrics in resource_metrics.scope_metrics:  | 
982 |  | -                for metric in scope_metrics.metrics:  | 
983 |  | -                    seen_metrics.add(metric.name)  | 
984 |  | -        self.assertNotIn(  | 
 | 978 | +        self._assert_metrics_not_found(  | 
985 | 979 |             f"process.runtime.{self.implementation}.context_switches",  | 
986 |  | -            seen_metrics,  | 
987 | 980 |         )  | 
988 | 981 | 
 
  | 
989 | 982 |     @mock.patch("psutil.Process.num_threads")  | 
 | 
0 commit comments