Add input_number state to prometheus metrics (#56507)
* Add input_number to prometheus metrics * Add prometheus input_number tests * Removed unused import from testpull/59868/head
parent
5d0c758886
commit
e180f1e302
|
@ -276,6 +276,15 @@ class PrometheusMetrics:
|
|||
value = self.state_as_number(state)
|
||||
metric.labels(**self._labels(state)).set(value)
|
||||
|
||||
def _handle_input_number(self, state):
|
||||
metric = self._metric(
|
||||
"input_number_state",
|
||||
self.prometheus_cli.Gauge,
|
||||
"State of the input number",
|
||||
)
|
||||
value = self.state_as_number(state)
|
||||
metric.labels(**self._labels(state)).set(value)
|
||||
|
||||
def _handle_device_tracker(self, state):
|
||||
metric = self._metric(
|
||||
"device_tracker_state",
|
||||
|
|
|
@ -7,6 +7,7 @@ import unittest.mock as mock
|
|||
import pytest
|
||||
|
||||
from homeassistant.components import climate, humidifier, sensor
|
||||
from homeassistant.components.demo.number import DemoNumber
|
||||
from homeassistant.components.demo.sensor import DemoSensor
|
||||
import homeassistant.components.prometheus as prometheus
|
||||
from homeassistant.const import (
|
||||
|
@ -99,6 +100,17 @@ async def prometheus_client(hass, hass_client, namespace):
|
|||
sensor5.entity_id = "sensor.sps30_pm_1um_weight_concentration"
|
||||
await sensor5.async_update_ha_state()
|
||||
|
||||
number1 = DemoNumber(None, "Threshold", 5.2, None, False, 0, 10, 0.1)
|
||||
number1.hass = hass
|
||||
number1.entity_id = "input_number.threshold"
|
||||
await number1.async_update_ha_state()
|
||||
|
||||
number2 = DemoNumber(None, None, 60, None, False, 0, 100)
|
||||
number2.hass = hass
|
||||
number2.entity_id = "input_number.brightness"
|
||||
number2._attr_name = None
|
||||
await number2.async_update_ha_state()
|
||||
|
||||
return await hass_client()
|
||||
|
||||
|
||||
|
@ -229,6 +241,18 @@ async def test_view_empty_namespace(hass, hass_client):
|
|||
'friendly_name="SPS30 PM <1µm Weight concentration"} 3.7069' in body
|
||||
)
|
||||
|
||||
assert (
|
||||
'input_number_state{domain="input_number",'
|
||||
'entity="input_number.threshold",'
|
||||
'friendly_name="Threshold"} 5.2' in body
|
||||
)
|
||||
|
||||
assert (
|
||||
'input_number_state{domain="input_number",'
|
||||
'entity="input_number.brightness",'
|
||||
'friendly_name="None"} 60.0' in body
|
||||
)
|
||||
|
||||
|
||||
async def test_view_default_namespace(hass, hass_client):
|
||||
"""Test prometheus metrics view."""
|
||||
|
|
Loading…
Reference in New Issue