diff options
author | Richard van der Hoff <richard@matrix.org> | 2021-04-08 18:30:38 +0100 |
---|---|---|
committer | Richard van der Hoff <richard@matrix.org> | 2021-04-08 18:30:38 +0100 |
commit | 9e167d9c53af8be7386ba7e2bd14ce385471df87 (patch) | |
tree | e5578a06584477e553b8e0eea11c3aa1f40dc2b5 /synapse/metrics/__init__.py | |
parent | remove unused param on `make_tuple_comparison_clause` (diff) | |
parent | Merge pull request #9769 from matrix-org/rav/fix_bionic (diff) | |
download | synapse-9e167d9c53af8be7386ba7e2bd14ce385471df87.tar.xz |
Merge remote-tracking branch 'origin/develop' into rav/drop_py35
Diffstat (limited to 'synapse/metrics/__init__.py')
-rw-r--r-- | synapse/metrics/__init__.py | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/synapse/metrics/__init__.py b/synapse/metrics/__init__.py index 3b499efc07..13a5bc4558 100644 --- a/synapse/metrics/__init__.py +++ b/synapse/metrics/__init__.py @@ -214,7 +214,12 @@ class GaugeBucketCollector: Prometheus, and optimise for that case. """ - __slots__ = ("_name", "_documentation", "_bucket_bounds", "_metric") + __slots__ = ( + "_name", + "_documentation", + "_bucket_bounds", + "_metric", + ) def __init__( self, @@ -242,11 +247,16 @@ class GaugeBucketCollector: if self._bucket_bounds[-1] != float("inf"): self._bucket_bounds.append(float("inf")) - self._metric = self._values_to_metric([]) + # We initially set this to None. We won't report metrics until + # this has been initialised after a successful data update + self._metric = None # type: Optional[GaugeHistogramMetricFamily] + registry.register(self) def collect(self): - yield self._metric + # Don't report metrics unless we've already collected some data + if self._metric is not None: + yield self._metric def update_data(self, values: Iterable[float]): """Update the data to be reported by the metric |