mirror of
https://mau.dev/maunium/synapse.git
synced 2024-10-01 01:36:05 -04:00
Drop support for ancient prometheus_client (#8426)
Drop compatibility hacks for prometheus-client pre 0.4.0. Debian stretch and Fedora 31 both have newer versions, so hopefully this will be ok.
This commit is contained in:
parent
c429dfc300
commit
ceafb5a1c6
1
changelog.d/8426.removal
Normal file
1
changelog.d/8426.removal
Normal file
@ -0,0 +1 @@
|
|||||||
|
Drop support for `prometheus_client` older than 0.4.0.
|
@ -24,7 +24,6 @@ expect, and the newer "best practice" version of the up-to-date official client.
|
|||||||
|
|
||||||
import math
|
import math
|
||||||
import threading
|
import threading
|
||||||
from collections import namedtuple
|
|
||||||
from http.server import BaseHTTPRequestHandler, HTTPServer
|
from http.server import BaseHTTPRequestHandler, HTTPServer
|
||||||
from socketserver import ThreadingMixIn
|
from socketserver import ThreadingMixIn
|
||||||
from urllib.parse import parse_qs, urlparse
|
from urllib.parse import parse_qs, urlparse
|
||||||
@ -35,14 +34,6 @@ from twisted.web.resource import Resource
|
|||||||
|
|
||||||
from synapse.util import caches
|
from synapse.util import caches
|
||||||
|
|
||||||
try:
|
|
||||||
from prometheus_client.samples import Sample
|
|
||||||
except ImportError:
|
|
||||||
Sample = namedtuple( # type: ignore[no-redef] # noqa
|
|
||||||
"Sample", ["name", "labels", "value", "timestamp", "exemplar"]
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
CONTENT_TYPE_LATEST = str("text/plain; version=0.0.4; charset=utf-8")
|
CONTENT_TYPE_LATEST = str("text/plain; version=0.0.4; charset=utf-8")
|
||||||
|
|
||||||
|
|
||||||
@ -93,17 +84,6 @@ def sample_line(line, name):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def nameify_sample(sample):
|
|
||||||
"""
|
|
||||||
If we get a prometheus_client<0.4.0 sample as a tuple, transform it into a
|
|
||||||
namedtuple which has the names we expect.
|
|
||||||
"""
|
|
||||||
if not isinstance(sample, Sample):
|
|
||||||
sample = Sample(*sample, None, None)
|
|
||||||
|
|
||||||
return sample
|
|
||||||
|
|
||||||
|
|
||||||
def generate_latest(registry, emit_help=False):
|
def generate_latest(registry, emit_help=False):
|
||||||
|
|
||||||
# Trigger the cache metrics to be rescraped, which updates the common
|
# Trigger the cache metrics to be rescraped, which updates the common
|
||||||
@ -144,7 +124,7 @@ def generate_latest(registry, emit_help=False):
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
output.append("# TYPE {0} {1}\n".format(mname, mtype))
|
output.append("# TYPE {0} {1}\n".format(mname, mtype))
|
||||||
for sample in map(nameify_sample, metric.samples):
|
for sample in metric.samples:
|
||||||
# Get rid of the OpenMetrics specific samples
|
# Get rid of the OpenMetrics specific samples
|
||||||
for suffix in ["_created", "_gsum", "_gcount"]:
|
for suffix in ["_created", "_gsum", "_gcount"]:
|
||||||
if sample.name.endswith(suffix):
|
if sample.name.endswith(suffix):
|
||||||
@ -172,7 +152,7 @@ def generate_latest(registry, emit_help=False):
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
output.append("# TYPE {0} {1}\n".format(mnewname, mtype))
|
output.append("# TYPE {0} {1}\n".format(mnewname, mtype))
|
||||||
for sample in map(nameify_sample, metric.samples):
|
for sample in metric.samples:
|
||||||
# Get rid of the OpenMetrics specific samples
|
# Get rid of the OpenMetrics specific samples
|
||||||
for suffix in ["_created", "_gsum", "_gcount"]:
|
for suffix in ["_created", "_gsum", "_gcount"]:
|
||||||
if sample.name.endswith(suffix):
|
if sample.name.endswith(suffix):
|
||||||
|
@ -68,7 +68,11 @@ REQUIREMENTS = [
|
|||||||
"pymacaroons>=0.13.0",
|
"pymacaroons>=0.13.0",
|
||||||
"msgpack>=0.5.2",
|
"msgpack>=0.5.2",
|
||||||
"phonenumbers>=8.2.0",
|
"phonenumbers>=8.2.0",
|
||||||
"prometheus_client>=0.0.18,<0.9.0",
|
# we use GaugeHistogramMetric, which was added in prom-client 0.4.0.
|
||||||
|
# prom-client has a history of breaking backwards compatibility between
|
||||||
|
# minor versions (https://github.com/prometheus/client_python/issues/317),
|
||||||
|
# so we also pin the minor version.
|
||||||
|
"prometheus_client>=0.4.0,<0.9.0",
|
||||||
# we use attr.validators.deep_iterable, which arrived in 19.1.0 (Note:
|
# we use attr.validators.deep_iterable, which arrived in 19.1.0 (Note:
|
||||||
# Fedora 31 only has 19.1, so if we want to upgrade we should wait until 33
|
# Fedora 31 only has 19.1, so if we want to upgrade we should wait until 33
|
||||||
# is out in November.)
|
# is out in November.)
|
||||||
|
Loading…
Reference in New Issue
Block a user