Add number state to prometheus metrics (#102518)

This commit is contained in:
Max 2023-11-13 17:03:08 +01:00 committed by GitHub
parent ba3269540f
commit 1e57bc5415
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 76 additions and 5 deletions

View file

@ -353,18 +353,18 @@ class PrometheusMetrics:
value = self.state_as_number(state)
metric.labels(**self._labels(state)).set(value)
def _handle_input_number(self, state):
def _numeric_handler(self, state, domain, title):
if unit := self._unit_string(state.attributes.get(ATTR_UNIT_OF_MEASUREMENT)):
metric = self._metric(
f"input_number_state_{unit}",
f"{domain}_state_{unit}",
self.prometheus_cli.Gauge,
f"State of the input number measured in {unit}",
f"State of the {title} measured in {unit}",
)
else:
metric = self._metric(
"input_number_state",
f"{domain}_state",
self.prometheus_cli.Gauge,
"State of the input number",
f"State of the {title}",
)
with suppress(ValueError):
@ -378,6 +378,12 @@ class PrometheusMetrics:
)
metric.labels(**self._labels(state)).set(value)
def _handle_input_number(self, state):
self._numeric_handler(state, "input_number", "input number")
def _handle_number(self, state):
self._numeric_handler(state, "number", "number")
def _handle_device_tracker(self, state):
metric = self._metric(
"device_tracker_state",