summary refs log tree commit diff
path: root/synapse/metrics/__init__.py
diff options
context:
space:
mode:
authorPaul "LeoNerd" Evans <paul@matrix.org>2016-10-19 15:37:41 +0100
committerPaul "LeoNerd" Evans <paul@matrix.org>2016-10-19 15:37:41 +0100
commitb202531be6d8bfcdb7ce555b164a1578bcdf33f5 (patch)
tree91903dac278698abb4770c589833c6147a822c64 /synapse/metrics/__init__.py
parentGuard registration of process-wide metrics by existence of the requisite /pro... (diff)
downloadsynapse-b202531be6d8bfcdb7ce555b164a1578bcdf33f5.tar.xz
Also guard /proc/self/fds-related code with a suitable psuedoconstant
Diffstat (limited to 'synapse/metrics/__init__.py')
-rw-r--r--synapse/metrics/__init__.py8
1 files changed, 5 insertions, 3 deletions
diff --git a/synapse/metrics/__init__.py b/synapse/metrics/__init__.py
index 323328061a..081f3aa3d8 100644
--- a/synapse/metrics/__init__.py
+++ b/synapse/metrics/__init__.py
@@ -118,6 +118,7 @@ BYTES_PER_PAGE = 4096
 HAVE_PROC_STAT = os.path.exists("/proc/stat")
 HAVE_PROC_SELF_STAT = os.path.exists("/proc/self/stat")
 HAVE_PROC_SELF_LIMITS = os.path.exists("/proc/self/limits")
+HAVE_PROC_SELF_FDS = os.path.exists("/proc/self/fds")
 
 rusage = None
 stats = None
@@ -162,7 +163,7 @@ def _process_fds():
     counts[("other",)] = 0
 
     # Not every OS will have a /proc/self/fd directory
-    if not os.path.exists("/proc/self/fd"):
+    if not HAVE_PROC_SELF_FDS:
         return counts
 
     for fd in os.listdir("/proc/self/fd"):
@@ -217,11 +218,12 @@ if HAVE_PROC_SELF_STAT:
     )
 
     process_metrics.register_callback(
-        "open_fds", lambda: sum(fd_counts.values())
+        "start_time_seconds", lambda: boot_time + int(stats[19]) / TICKS_PER_SEC
     )
 
+if HAVE_PROC_SELF_FDS:
     process_metrics.register_callback(
-        "start_time_seconds", lambda: boot_time + int(stats[19]) / TICKS_PER_SEC
+        "open_fds", lambda: sum(fd_counts.values())
     )
 
 if HAVE_PROC_SELF_LIMITS: