def _register_gauges(self): if not _PSUTIL_ENABLED: _logger.warning( "Statistics collection is enabled, but psutil is not found. " "Runtime and system related metrics will not be collected.") return self._register_system_gauge( "os.totalPhysicalMemorySize", lambda: psutil.virtual_memory().total, ) self._register_system_gauge( "os.freePhysicalMemorySize", lambda: psutil.virtual_memory().free, ) self._register_system_gauge( "os.committedVirtualMemorySize", lambda: psutil.virtual_memory().used, ) self._register_system_gauge( "os.totalSwapSpaceSize", lambda: psutil.swap_memory().total, ) self._register_system_gauge( "os.freeSwapSpaceSize", lambda: psutil.swap_memory().free, ) self._register_system_gauge( "os.systemLoadAverage", lambda: os.getloadavg()[0], ValueType.DOUBLE, ) self._register_system_gauge( "runtime.availableProcessors", lambda: psutil.cpu_count(), ) self._register_process_gauge( "runtime.usedMemory", lambda p: p.memory_info().rss, ) self._register_process_gauge( "os.openFileDescriptorCount", lambda p: p.num_fds(), ) self._register_process_gauge( "os.maxFileDescriptorCount", lambda p: p.rlimit(psutil.RLIMIT_NOFILE)[1], ) self._register_process_gauge( "os.processCpuTime", lambda p: to_nanos(sum(p.cpu_times())), ) self._register_process_gauge( "runtime.uptime", lambda p: to_millis(current_time() - p.create_time()), )
def _collect_process_cpu_time(self, psutil_stats, probe_name, process): return to_nanos(sum(process.cpu_times()))