8000 Use Iterable[Sample] for all sample collection · Cameron-Calpin/client_python@304745f · GitHub
[go: up one dir, main page]

Skip to content

Commit 304745f

Browse files
committed
Use Iterable[Sample] for all sample collection
This makes sure the types are all consistent and use the appropriate NamedTuple. Signed-off-by: Chris Marchbanks <csmarchbanks@gmail.com>
1 parent cd4cf2e commit 304745f

File tree

1 file changed

+27
-27
lines changed

1 file changed

+27
-27
lines changed

prometheus_client/metrics.py

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import time
33
import types
44
from typing import (
5-
Any, Callable, Dict, Optional, Sequence, Tuple, Type, TypeVar,
5+
Any, Callable, Dict, Iterable, Optional, Sequence, Type, TypeVar,
66
)
77

88
from . import values # retain this import style for testability
@@ -12,7 +12,7 @@
1212
RESERVED_METRIC_LABEL_NAME_RE,
1313
)
1414
from .registry import CollectorRegistry, REGISTRY
15-
from .samples import Exemplar
15+
from .samples import Exemplar, Sample
1616
from .utils import floatToGoString, INF
1717

1818
T = TypeVar('T', bound='MetricWrapperBase')
@@ -103,7 +103,7 @@ def __repr__(self):
103103
def __init__(self: T,
104104
name: str,
105105
documentation: str,
106-
labelnames: Sequence[str] = (),
106+
labelnames: Iterable[str] = (),
107107
namespace: str = '',
108108
subsystem: str = '',
109109
unit: str = '',
@@ -204,21 +204,21 @@ def clear(self) -> None:
204204
with self._lock:
205205
self._metrics = {}
206206

207-
def _samples(self):
207+
def _samples(self) -> Iterable[Sample]:
208208
if self._is_parent():
209209
return self._multi_samples()
210210
else:
211211
return self._child_samples()
212212

213-
def _multi_samples(self):
213+
def _multi_samples(self) -> Iterable[Sample]:
214214
with self._lock:
215215
metrics = self._metrics.copy()
216216
for labels, metric in metrics.items():
217217
series_labels = list(zip(self._labelnames, labels))
218218
for suffix, sample_labels, value, timestamp, exemplar in metric._samples():
219-
yield (suffix, dict(series_labels + list(sample_labels.items())), value, timestamp, exemplar)
219+
yield Sample(suffix, dict(series_labels + list(sample_labels.items())), value, timestamp, exemplar)
220220

221-
def _child_samples(self) -> Sequence[Tuple[str, Dict[str, str], float]]: # pragma: no cover
221+
def _child_samples(self) -> Iterable[Sample]: # pragma: no cover
222222
raise NotImplementedError('_child_samples() must be implemented by %r' % self)
223223

224224
def _metric_init(self): # pragma: no cover
@@ -289,10 +289,10 @@ def count_exceptions(self, exception: Type[BaseException] = Exception) -> Except
289289
self._raise_if_not_observable()
290290
return ExceptionCounter(self, exception)
291291

292-
def _child_samples(self):
292+
def _child_samples(self) -> Iterable[Sample]:
293293
return (
294-
('_total', {}, self._value.get(), None, self._value.get_exemplar()),
295-
('_created', {}, self._created, None, None),
294+
Sample('_total', {}, self._value.get(), None, self._value.get_exemplar()),
295+
Sample('_created', {}, self._created, None, None),
296296
)
297297

298298

@@ -413,13 +413,13 @@ def set_function(self, f):
413413

414414
self._raise_if_not_observable()
415415

416-
def samples(self):
417-
return (('', {}, float(f()), None, None),)
416+
def samples(self) -> Iterable[Sample]:
417+
return (Sample('', {}, float(f()), None, None),)
418418

419419
self._child_samples = types.MethodType(samples, self)
420420

421-
def _child_samples(self):
422-
return (('', {}, self._value.get(), None, None),)
421+
def _child_samples(self) -> Iterable[Sample]:
422+
return (Sample('', {}, self._value.get(), None, None),)
423423

424424

425425
class Summary(MetricWrapperBase):
@@ -482,11 +482,11 @@ def time(self):
482482
"""
483483
return Timer(self, 'observe')
484484

485-
def _child_samples(self):
485+
def _child_samples(self) -> Iterable[Sample]:
486486
return (
487-
('_count', {}, self._count.get(), None, None),
488-
('_sum', {}, self._sum.get(), None, None),
489-
('_created', {}, self._created, None, None),
487+
Sample('_count', {}, self._count.get(), None, None),
488+
Sample('_sum', {}, self._sum.get(), None, None),
489+
Sample('_created', {}, self._created, None, None),
490490
)
491491

492492

@@ -606,16 +606,16 @@ def time(self):
606606
"""
607607
return Timer(self, 'observe')
608608

609-
def _child_samples(self):
609+
def _child_samples(self) -> Iterable[Sample]:
610610
samples = []
611611
acc = 0
612612
for i, bound in enumerate(self._upper_bounds):
613613
acc += self._buckets[i].get()
614-
samples.append(('_bucket', {'le': floatToGoString(bound)}, acc, None, self._buckets[i].get_exemplar()))
615-
samples.append(('_count', {}, acc, None, None))
614+
samples.append(Sample('_bucket', {'le': floatToGoString(bound)}, acc, None, self._buckets[i].get_exemplar()))
615+
samples.append(Sample('_count', {}, acc, None, None))
616616
if self._upper_bounds[0] >= 0:
617-
samples.append(('_sum', {}, self._sum.get(), None, None))
618-
samples.append(('_created', {}, self._created, None, None))
617+
samples.append(Sample('_sum', {}, self._sum.get(), None, None))
618+
samples.append(Sample('_created', {}, self._created, None, None))
619619
return tuple(samples)
620620

621621

@@ -650,9 +650,9 @@ def info(self, val):
650650
with self._lock:
651651
self._value = dict(val)
652652

653-
def _child_samples(self):
653+
def _child_samples(self) -> Iterable[Sample]:
654654
with self._lock:
655-
return (('_info', self._value, 1.0, None, None),)
655+
return (Sample('_info', self._value, 1.0, None, None),)
656656

657657

658658
class Enum(MetricWrapperBase):
@@ -707,10 +707,10 @@ def state(self, state: str) -> None:
707707
with self._lock:
708708
self._value = self._states.index(state)
709709

710-
def _child_samples(self):
710+
def _child_samples(self) -> Iterable[Sample]:
711711
with self._lock:
712712
return [
713-
('', {self._name: s}, 1 if i == self._value else 0, None, None)
713+
Sample('', {self._name: s}, 1 if i == self._value else 0, None, None)
714714
for i, s
715715
in enumerate(self._states)
716716
]

0 commit comments

Comments
 (0)
0