diff options
author | Amber Brown <hawkowl@atleastfornow.net> | 2018-06-14 20:26:59 +1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-14 20:26:59 +1000 |
commit | f116f32ace4aff8e378b4771ad072a89c7433a70 (patch) | |
tree | eff8c465fe94be7b8d12fe9087b3ec174ff064f6 /synapse/metrics | |
parent | Remove run_on_reactor (#3395) (diff) | |
download | synapse-f116f32ace4aff8e378b4771ad072a89c7433a70.tar.xz |
add a last seen metric (#3396)
Diffstat (limited to 'synapse/metrics')
-rw-r--r-- | synapse/metrics/__init__.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/synapse/metrics/__init__.py b/synapse/metrics/__init__.py index 429e79c472..0355d020ef 100644 --- a/synapse/metrics/__init__.py +++ b/synapse/metrics/__init__.py @@ -190,6 +190,22 @@ event_processing_last_ts = Gauge("synapse_event_processing_last_ts", "", ["name" # finished being processed. event_processing_lag = Gauge("synapse_event_processing_lag", "", ["name"]) +last_ticked = time.time() + + +class ReactorLastSeenMetric(object): + + def collect(self): + cm = GaugeMetricFamily( + "python_twisted_reactor_last_seen", + "Seconds since the Twisted reactor was last seen", + ) + cm.add_metric([], time.time() - last_ticked) + yield cm + + +REGISTRY.register(ReactorLastSeenMetric()) + def runUntilCurrentTimer(func): @@ -222,6 +238,11 @@ def runUntilCurrentTimer(func): tick_time.observe(end - start) pending_calls_metric.observe(num_pending) + # Update the time we last ticked, for the metric to test whether + # Synapse's reactor has frozen + global last_ticked + last_ticked = end + if running_on_pypy: return ret |