MCPcopy Index your code
hub / github.com/prometheus/client_python / SummaryMetricFamily

Class SummaryMetricFamily

prometheus_client/metrics_core.py:180–221  ·  view source on GitHub ↗

A single summary and its samples. For use by custom collectors.

Source from the content-addressed store, hash-verified

178
179
180class SummaryMetricFamily(Metric):
181 """A single summary and its samples.
182
183 For use by custom collectors.
184 """
185
186 def __init__(self,
187 name: str,
188 documentation: str,
189 count_value: Optional[int] = None,
190 sum_value: Optional[float] = None,
191 labels: Optional[Sequence[str]] = None,
192 unit: str = '',
193 ):
194 Metric.__init__(self, name, documentation, 'summary', unit)
195 if (sum_value is None) != (count_value is None):
196 raise ValueError('count_value and sum_value must be provided together.')
197 if labels is not None and count_value is not None:
198 raise ValueError('Can only specify at most one of value and labels.')
199 if labels is None:
200 labels = []
201 self._labelnames = tuple(labels)
202 # The and clause is necessary only for typing, the above ValueError will raise if only one is set.
203 if count_value is not None and sum_value is not None:
204 self.add_metric([], count_value, sum_value)
205
206 def add_metric(self,
207 labels: Sequence[str],
208 count_value: int,
209 sum_value: float,
210 timestamp:
211 Optional[Union[float, Timestamp]] = None
212 ) -> None:
213 """Add a metric to the metric family.
214
215 Args:
216 labels: A list of label values
217 count_value: The count value of the metric.
218 sum_value: The sum value of the metric.
219 """
220 self.samples.append(Sample(self.name + '_count', dict(zip(self._labelnames, labels)), count_value, timestamp))
221 self.samples.append(Sample(self.name + '_sum', dict(zip(self._labelnames, labels)), sum_value, timestamp))
222
223
224class HistogramMetricFamily(Metric):

Callers 7

test_simple_summaryMethod · 0.90
test_summaryMethod · 0.90
test_summary_labelsMethod · 0.90
test_labelnamesMethod · 0.90
test_simple_summaryMethod · 0.90

Calls

no outgoing calls

Tested by 7

test_simple_summaryMethod · 0.72
test_summaryMethod · 0.72
test_summary_labelsMethod · 0.72
test_labelnamesMethod · 0.72
test_simple_summaryMethod · 0.72