diff options
author | Richard van der Hoff <1389908+richvdh@users.noreply.github.com> | 2022-04-06 13:59:04 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-06 12:59:04 +0000 |
commit | ae01a7edd32c8a4650700294c50a37385fa07984 (patch) | |
tree | dadb535ee33aad957b0fb6625026c42df5a1aa77 /synapse/metrics/jemalloc.py | |
parent | Generate historic pagination token for `/messages` when no `?from` token prov... (diff) | |
download | synapse-ae01a7edd32c8a4650700294c50a37385fa07984.tar.xz |
Update type annotations for compatiblity with prometheus_client 0.14 (#12389)
Principally, `prometheus_client.REGISTRY.register` now requires its argument to extend `prometheus_client.Collector`. Additionally, `Gauge.set` is now annotated so that passing `Optional[int]` causes an error.
Diffstat (limited to 'synapse/metrics/jemalloc.py')
-rw-r--r-- | synapse/metrics/jemalloc.py | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/synapse/metrics/jemalloc.py b/synapse/metrics/jemalloc.py index 98ed9c0829..6bc329f04a 100644 --- a/synapse/metrics/jemalloc.py +++ b/synapse/metrics/jemalloc.py @@ -16,11 +16,13 @@ import ctypes import logging import os import re -from typing import Iterable, Optional +from typing import Iterable, Optional, overload -from prometheus_client import Metric +from prometheus_client import REGISTRY, Metric +from typing_extensions import Literal -from synapse.metrics import REGISTRY, GaugeMetricFamily +from synapse.metrics import GaugeMetricFamily +from synapse.metrics._types import Collector logger = logging.getLogger(__name__) @@ -59,6 +61,16 @@ def _setup_jemalloc_stats() -> None: jemalloc = ctypes.CDLL(jemalloc_path) + @overload + def _mallctl( + name: str, read: Literal[True] = True, write: Optional[int] = None + ) -> int: + ... + + @overload + def _mallctl(name: str, read: Literal[False], write: Optional[int] = None) -> None: + ... + def _mallctl( name: str, read: bool = True, write: Optional[int] = None ) -> Optional[int]: @@ -134,7 +146,7 @@ def _setup_jemalloc_stats() -> None: except Exception as e: logger.warning("Failed to reload jemalloc stats: %s", e) - class JemallocCollector: + class JemallocCollector(Collector): """Metrics for internal jemalloc stats.""" def collect(self) -> Iterable[Metric]: |