@@ -269,47 +269,51 @@ def collect_modules(self):
269269
270270 def collect_metrics (self ):
271271 """ Collect up and return various metrics """
272- u = resource .getrusage (resource .RUSAGE_SELF )
273- if gc_ .isenabled ():
274- c = list (gc_ .get_count ())
275- th = list (gc_ .get_threshold ())
276- g = GC (collect0 = c [0 ] if not self .last_collect else c [0 ] - self .last_collect [0 ],
277- collect1 = c [1 ] if not self .last_collect else c [
278- 1 ] - self .last_collect [1 ],
279- collect2 = c [2 ] if not self .last_collect else c [
280- 2 ] - self .last_collect [2 ],
281- threshold0 = th [0 ],
282- threshold1 = th [1 ],
283- threshold2 = th [2 ])
284-
285- thr = threading .enumerate ()
286- daemon_threads = [tr .daemon is True for tr in thr ].count (True )
287- alive_threads = [tr .daemon is False for tr in thr ].count (True )
288- dummy_threads = [type (tr ) is threading ._DummyThread for tr in thr ].count (True )
289-
290- m = Metrics (ru_utime = u [0 ] if not self .last_usage else u [0 ] - self .last_usage [0 ],
291- ru_stime = u [1 ] if not self .last_usage else u [1 ] - self .last_usage [1 ],
292- ru_maxrss = u [2 ],
293- ru_ixrss = u [3 ],
294- ru_idrss = u [4 ],
295- ru_isrss = u [5 ],
296- ru_minflt = u [6 ] if not self .last_usage else u [6 ] - self .last_usage [6 ],
297- ru_majflt = u [7 ] if not self .last_usage else u [7 ] - self .last_usage [7 ],
298- ru_nswap = u [8 ] if not self .last_usage else u [8 ] - self .last_usage [8 ],
299- ru_inblock = u [9 ] if not self .last_usage else u [9 ] - self .last_usage [9 ],
300- ru_oublock = u [10 ] if not self .last_usage else u [10 ] - self .last_usage [10 ],
301- ru_msgsnd = u [11 ] if not self .last_usage else u [11 ] - self .last_usage [11 ],
302- ru_msgrcv = u [12 ] if not self .last_usage else u [12 ] - self .last_usage [12 ],
303- ru_nsignals = u [13 ] if not self .last_usage else u [13 ] - self .last_usage [13 ],
304- ru_nvcs = u [14 ] if not self .last_usage else u [14 ] - self .last_usage [14 ],
305- ru_nivcsw = u [15 ] if not self .last_usage else u [15 ] - self .last_usage [15 ],
306- alive_threads = alive_threads ,
307- dummy_threads = dummy_threads ,
308- daemon_threads = daemon_threads ,
309- gc = g )
310-
311- self .last_usage = u
312- if gc_ .isenabled ():
313- self .last_collect = c
314-
315- return m
272+ try :
273+ g = None
274+ u = resource .getrusage (resource .RUSAGE_SELF )
275+ if gc_ .isenabled ():
276+ c = list (gc_ .get_count ())
277+ th = list (gc_ .get_threshold ())
278+ g = GC (collect0 = c [0 ] if not self .last_collect else c [0 ] - self .last_collect [0 ],
279+ collect1 = c [1 ] if not self .last_collect else c [
280+ 1 ] - self .last_collect [1 ],
281+ collect2 = c [2 ] if not self .last_collect else c [
282+ 2 ] - self .last_collect [2 ],
283+ threshold0 = th [0 ],
284+ threshold1 = th [1 ],
285+ threshold2 = th [2 ])
286+
287+ thr = threading .enumerate ()
288+ daemon_threads = [tr .daemon is True for tr in thr ].count (True )
289+ alive_threads = [tr .daemon is False for tr in thr ].count (True )
290+ dummy_threads = [type (tr ) is threading ._DummyThread for tr in thr ].count (True )
291+
292+ m = Metrics (ru_utime = u [0 ] if not self .last_usage else u [0 ] - self .last_usage [0 ],
293+ ru_stime = u [1 ] if not self .last_usage else u [1 ] - self .last_usage [1 ],
294+ ru_maxrss = u [2 ],
295+ ru_ixrss = u [3 ],
296+ ru_idrss = u [4 ],
297+ ru_isrss = u [5 ],
298+ ru_minflt = u [6 ] if not self .last_usage else u [6 ] - self .last_usage [6 ],
299+ ru_majflt = u [7 ] if not self .last_usage else u [7 ] - self .last_usage [7 ],
300+ ru_nswap = u [8 ] if not self .last_usage else u [8 ] - self .last_usage [8 ],
301+ ru_inblock = u [9 ] if not self .last_usage else u [9 ] - self .last_usage [9 ],
302+ ru_oublock = u [10 ] if not self .last_usage else u [10 ] - self .last_usage [10 ],
303+ ru_msgsnd = u [11 ] if not self .last_usage else u [11 ] - self .last_usage [11 ],
304+ ru_msgrcv = u [12 ] if not self .last_usage else u [12 ] - self .last_usage [12 ],
305+ ru_nsignals = u [13 ] if not self .last_usage else u [13 ] - self .last_usage [13 ],
306+ ru_nvcs = u [14 ] if not self .last_usage else u [14 ] - self .last_usage [14 ],
307+ ru_nivcsw = u [15 ] if not self .last_usage else u [15 ] - self .last_usage [15 ],
308+ alive_threads = alive_threads ,
309+ dummy_threads = dummy_threads ,
310+ daemon_threads = daemon_threads ,
311+ gc = g )
312+
313+ self .last_usage = u
314+ if gc_ .isenabled ():
315+ self .last_collect = c
316+
317+ return m
318+ except :
319+ logger .debug ("collect_metrics" , exc_info = True )
0 commit comments