3838from opentelemetry .metrics ._internal .observation import Observation
3939from opentelemetry .util .types import (
4040 Attributes ,
41- MetricsCommonAdvisory ,
42- MetricsHistogramAdvisory ,
43- MetricsInstrumentAdvisory ,
4441)
4542
4643_logger = getLogger (__name__ )
4946_unit_regex = re_compile (r"[\x00-\x7F]{0,63}" )
5047
5148
49+ @dataclass (frozen = True )
50+ class MetricsHistogramAdvisory :
51+ explicit_bucket_boundaries : Optional [Sequence [float ]] = None
52+
53+
54+ @dataclass (frozen = True )
55+ class MetricsCommonAdvisory :
56+ pass
57+
58+
59+ _MetricsInstrumentAdvisory = Union [
60+ MetricsCommonAdvisory , MetricsHistogramAdvisory
61+ ]
62+
63+
5264@dataclass (frozen = True )
5365class CallbackOptions :
5466 """Options for the callback
@@ -78,7 +90,7 @@ def __init__(
7890 name : str ,
7991 unit : str = "" ,
8092 description : str = "" ,
81- advisory : Optional [MetricsInstrumentAdvisory ] = None ,
93+ advisory : Optional [_MetricsInstrumentAdvisory ] = None ,
8294 ) -> None :
8395 pass
8496
@@ -124,7 +136,7 @@ def __init__(
124136 name : str ,
125137 unit : str = "" ,
126138 description : str = "" ,
127- advisory : Optional [MetricsInstrumentAdvisory ] = None ,
139+ advisory : Optional [_MetricsInstrumentAdvisory ] = None ,
128140 ) -> None :
129141 self ._name = name
130142 self ._unit = unit
@@ -152,7 +164,7 @@ def __init__(
152164 callbacks : Optional [Sequence [CallbackT ]] = None ,
153165 unit : str = "" ,
154166 description : str = "" ,
155- advisory : Optional [MetricsInstrumentAdvisory ] = None ,
167+ advisory : Optional [_MetricsInstrumentAdvisory ] = None ,
156168 ) -> None :
157169 super ().__init__ (name , unit , description , advisory = advisory )
158170 self ._callbacks = callbacks
@@ -172,7 +184,7 @@ def __init__(
172184 callbacks : Optional [Sequence [CallbackT ]] = None ,
173185 unit : str = "" ,
174186 description : str = "" ,
175- advisory : Optional [MetricsInstrumentAdvisory ] = None ,
187+ advisory : Optional [_MetricsInstrumentAdvisory ] = None ,
176188 ) -> None :
177189 super ().__init__ (
178190 name , unit = unit , description = description , advisory = advisory
0 commit comments