summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--synapse/metrics/__init__.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/synapse/metrics/__init__.py b/synapse/metrics/__init__.py
index dfbb634af9..75ba248c56 100644
--- a/synapse/metrics/__init__.py
+++ b/synapse/metrics/__init__.py
@@ -205,6 +205,19 @@ process_metrics.register_callback(
     "open_fds", lambda: sum(fd_counts.values())
 )
 
+def _get_max_fds():
+    with open("/proc/self/limits") as limits:
+        for line in limits:
+            if not line.startswith("Max open files "):
+                continue
+            # Line is  Max open files  $SOFT  $HARD
+            return int(line.split()[3])
+    return None
+
+process_metrics.register_callback(
+    "max_fds", lambda: _get_max_fds()
+)
+
 reactor_metrics = get_metrics_for("reactor")
 tick_time = reactor_metrics.register_distribution("tick_time")
 pending_calls_metric = reactor_metrics.register_distribution("pending_calls")