1313# limitations under the License.
1414
1515
16- from typing import (
17- Callable ,
18- Final ,
19- Generator ,
20- Iterable ,
21- Optional ,
22- Sequence ,
23- Union ,
24- )
16+ from collections .abc import Callable , Generator , Iterable , Sequence
17+ from typing import Final
2518
2619from opentelemetry .metrics import (
2720 CallbackOptions ,
3326)
3427
3528# pylint: disable=invalid-name
36- CallbackT = Union [
37- Callable [[CallbackOptions ], Iterable [Observation ]],
38- Generator [Iterable [Observation ], CallbackOptions , None ],
39- ]
29+ CallbackT = (
30+ Callable [[CallbackOptions ], Iterable [Observation ]]
31+ | Generator [Iterable [Observation ], CallbackOptions , None ]
32+ )
4033
4134HW_BATTERY_CHARGE : Final = "hw.battery.charge"
4235"""
4740
4841
4942def create_hw_battery_charge (
50- meter : Meter , callbacks : Optional [ Sequence [CallbackT ]]
43+ meter : Meter , callbacks : Sequence [CallbackT ] | None
5144) -> ObservableGauge :
5245 """Remaining fraction of battery charge"""
5346 return meter .create_observable_gauge (
@@ -67,7 +60,7 @@ def create_hw_battery_charge(
6760
6861
6962def create_hw_battery_charge_limit (
70- meter : Meter , callbacks : Optional [ Sequence [CallbackT ]]
63+ meter : Meter , callbacks : Sequence [CallbackT ] | None
7164) -> ObservableGauge :
7265 """Lower limit of battery charge fraction to ensure proper operation"""
7366 return meter .create_observable_gauge (
@@ -87,7 +80,7 @@ def create_hw_battery_charge_limit(
8780
8881
8982def create_hw_battery_time_left (
90- meter : Meter , callbacks : Optional [ Sequence [CallbackT ]]
83+ meter : Meter , callbacks : Sequence [CallbackT ] | None
9184) -> ObservableGauge :
9285 """Time left before battery is completely charged or discharged"""
9386 return meter .create_observable_gauge (
@@ -107,7 +100,7 @@ def create_hw_battery_time_left(
107100
108101
109102def create_hw_cpu_speed (
110- meter : Meter , callbacks : Optional [ Sequence [CallbackT ]]
103+ meter : Meter , callbacks : Sequence [CallbackT ] | None
111104) -> ObservableGauge :
112105 """CPU current frequency"""
113106 return meter .create_observable_gauge (
@@ -127,7 +120,7 @@ def create_hw_cpu_speed(
127120
128121
129122def create_hw_cpu_speed_limit (
130- meter : Meter , callbacks : Optional [ Sequence [CallbackT ]]
123+ meter : Meter , callbacks : Sequence [CallbackT ] | None
131124) -> ObservableGauge :
132125 """CPU maximum frequency"""
133126 return meter .create_observable_gauge (
@@ -181,7 +174,7 @@ def create_hw_errors(meter: Meter) -> Counter:
181174
182175
183176def create_hw_fan_speed (
184- meter : Meter , callbacks : Optional [ Sequence [CallbackT ]]
177+ meter : Meter , callbacks : Sequence [CallbackT ] | None
185178) -> ObservableGauge :
186179 """Fan speed in revolutions per minute"""
187180 return meter .create_observable_gauge (
@@ -201,7 +194,7 @@ def create_hw_fan_speed(
201194
202195
203196def create_hw_fan_speed_limit (
204- meter : Meter , callbacks : Optional [ Sequence [CallbackT ]]
197+ meter : Meter , callbacks : Sequence [CallbackT ] | None
205198) -> ObservableGauge :
206199 """Speed limit in rpm"""
207200 return meter .create_observable_gauge (
@@ -221,7 +214,7 @@ def create_hw_fan_speed_limit(
221214
222215
223216def create_hw_fan_speed_ratio (
224- meter : Meter , callbacks : Optional [ Sequence [CallbackT ]]
217+ meter : Meter , callbacks : Sequence [CallbackT ] | None
225218) -> ObservableGauge :
226219 """Fan speed expressed as a fraction of its maximum speed"""
227220 return meter .create_observable_gauge (
@@ -292,7 +285,7 @@ def create_hw_gpu_memory_usage(meter: Meter) -> UpDownCounter:
292285
293286
294287def create_hw_gpu_memory_utilization (
295- meter : Meter , callbacks : Optional [ Sequence [CallbackT ]]
288+ meter : Meter , callbacks : Sequence [CallbackT ] | None
296289) -> ObservableGauge :
297290 """Fraction of GPU memory used"""
298291 return meter .create_observable_gauge (
@@ -312,7 +305,7 @@ def create_hw_gpu_memory_utilization(
312305
313306
314307def create_hw_gpu_utilization (
315- meter : Meter , callbacks : Optional [ Sequence [CallbackT ]]
308+ meter : Meter , callbacks : Sequence [CallbackT ] | None
316309) -> ObservableGauge :
317310 """Fraction of time spent in a specific task"""
318311 return meter .create_observable_gauge (
@@ -332,7 +325,7 @@ def create_hw_gpu_utilization(
332325
333326
334327def create_hw_host_ambient_temperature (
335- meter : Meter , callbacks : Optional [ Sequence [CallbackT ]]
328+ meter : Meter , callbacks : Sequence [CallbackT ] | None
336329) -> ObservableGauge :
337330 """Ambient (external) temperature of the physical host"""
338331 return meter .create_observable_gauge (
@@ -370,7 +363,7 @@ def create_hw_host_energy(meter: Meter) -> Counter:
370363
371364
372365def create_hw_host_heating_margin (
373- meter : Meter , callbacks : Optional [ Sequence [CallbackT ]]
366+ meter : Meter , callbacks : Sequence [CallbackT ] | None
374367) -> ObservableGauge :
375368 """By how many degrees Celsius the temperature of the physical host can be increased, before reaching a warning threshold on one of the internal sensors"""
376369 return meter .create_observable_gauge (
@@ -391,7 +384,7 @@ def create_hw_host_heating_margin(
391384
392385
393386def create_hw_host_power (
394- meter : Meter , callbacks : Optional [ Sequence [CallbackT ]]
387+ meter : Meter , callbacks : Sequence [CallbackT ] | None
395388) -> ObservableGauge :
396389 """Instantaneous power consumed by the entire physical host in Watts (`hw.host.energy` is preferred)"""
397390 return meter .create_observable_gauge (
@@ -445,7 +438,7 @@ def create_hw_logical_disk_usage(meter: Meter) -> UpDownCounter:
445438
446439
447440def create_hw_logical_disk_utilization (
448- meter : Meter , callbacks : Optional [ Sequence [CallbackT ]]
441+ meter : Meter , callbacks : Sequence [CallbackT ] | None
449442) -> ObservableGauge :
450443 """Logical disk space utilization as a fraction"""
451444 return meter .create_observable_gauge (
@@ -499,7 +492,7 @@ def create_hw_network_bandwidth_limit(meter: Meter) -> UpDownCounter:
499492
500493
501494def create_hw_network_bandwidth_utilization (
502- meter : Meter , callbacks : Optional [ Sequence [CallbackT ]]
495+ meter : Meter , callbacks : Sequence [CallbackT ] | None
503496) -> ObservableGauge :
504497 """Utilization of the network bandwidth as a fraction"""
505498 return meter .create_observable_gauge (
@@ -572,7 +565,7 @@ def create_hw_network_up(meter: Meter) -> UpDownCounter:
572565
573566
574567def create_hw_physical_disk_endurance_utilization (
575- meter : Meter , callbacks : Optional [ Sequence [CallbackT ]]
568+ meter : Meter , callbacks : Sequence [CallbackT ] | None
576569) -> ObservableGauge :
577570 """Endurance remaining for this SSD disk"""
578571 return meter .create_observable_gauge (
@@ -609,7 +602,7 @@ def create_hw_physical_disk_size(meter: Meter) -> UpDownCounter:
609602
610603
611604def create_hw_physical_disk_smart (
612- meter : Meter , callbacks : Optional [ Sequence [CallbackT ]]
605+ meter : Meter , callbacks : Sequence [CallbackT ] | None
613606) -> ObservableGauge :
614607 """Value of the corresponding [S.M.A.R.T.](https://wikipedia.org/wiki/S.M.A.R.T.) (Self-Monitoring, Analysis, and Reporting Technology) attribute"""
615608 return meter .create_observable_gauge (
@@ -630,7 +623,7 @@ def create_hw_physical_disk_smart(
630623
631624
632625def create_hw_power (
633- meter : Meter , callbacks : Optional [ Sequence [CallbackT ]]
626+ meter : Meter , callbacks : Sequence [CallbackT ] | None
634627) -> ObservableGauge :
635628 """Instantaneous power consumed by the component"""
636629 return meter .create_observable_gauge (
@@ -684,7 +677,7 @@ def create_hw_power_supply_usage(meter: Meter) -> UpDownCounter:
684677
685678
686679def create_hw_power_supply_utilization (
687- meter : Meter , callbacks : Optional [ Sequence [CallbackT ]]
680+ meter : Meter , callbacks : Sequence [CallbackT ] | None
688681) -> ObservableGauge :
689682 """Utilization of the power supply as a fraction of its maximum output"""
690683 return meter .create_observable_gauge (
@@ -739,7 +732,7 @@ def create_hw_tape_drive_operations(meter: Meter) -> Counter:
739732
740733
741734def create_hw_temperature (
742- meter : Meter , callbacks : Optional [ Sequence [CallbackT ]]
735+ meter : Meter , callbacks : Sequence [CallbackT ] | None
743736) -> ObservableGauge :
744737 """Temperature in degrees Celsius"""
745738 return meter .create_observable_gauge (
@@ -759,7 +752,7 @@ def create_hw_temperature(
759752
760753
761754def create_hw_temperature_limit (
762- meter : Meter , callbacks : Optional [ Sequence [CallbackT ]]
755+ meter : Meter , callbacks : Sequence [CallbackT ] | None
763756) -> ObservableGauge :
764757 """Temperature limit in degrees Celsius"""
765758 return meter .create_observable_gauge (
@@ -779,7 +772,7 @@ def create_hw_temperature_limit(
779772
780773
781774def create_hw_voltage (
782- meter : Meter , callbacks : Optional [ Sequence [CallbackT ]]
775+ meter : Meter , callbacks : Sequence [CallbackT ] | None
783776) -> ObservableGauge :
784777 """Voltage measured by the sensor"""
785778 return meter .create_observable_gauge (
@@ -799,7 +792,7 @@ def create_hw_voltage(
799792
800793
801794def create_hw_voltage_limit (
802- meter : Meter , callbacks : Optional [ Sequence [CallbackT ]]
795+ meter : Meter , callbacks : Sequence [CallbackT ] | None
803796) -> ObservableGauge :
804797 """Voltage limit in Volts"""
805798 return meter .create_observable_gauge (
@@ -819,7 +812,7 @@ def create_hw_voltage_limit(
819812
820813
821814def create_hw_voltage_nominal (
822- meter : Meter , callbacks : Optional [ Sequence [CallbackT ]]
815+ meter : Meter , callbacks : Sequence [CallbackT ] | None
823816) -> ObservableGauge :
824817 """Nominal (expected) voltage"""
825818 return meter .create_observable_gauge (
0 commit comments