@@ -135,6 +135,7 @@ def __init__(
135135 streaming : bool = False ,
136136 shutdown_event : asyncio .Event | None = None ,
137137 drain_timeout_s : float | None = None ,
138+ enable_isl : bool = True ,
138139 ** kwargs ,
139140 ):
140141 # drain_timeout_s is injected (not derived) because the right
@@ -179,17 +180,21 @@ def __init__(
179180
180181 # Pre-register all metrics on the registry. Tests can introspect via
181182 # registry.has_counter / has_series.
182- self ._register_metrics (streaming , sig_figs , n_histogram_buckets )
183+ self ._register_metrics (streaming , enable_isl , sig_figs , n_histogram_buckets )
183184
184185 self ._table = MetricsTable (self ._registry )
185- self ._register_triggers (streaming )
186+ self ._register_triggers (streaming , enable_isl )
186187
187188 # ------------------------------------------------------------------
188189 # Registration helpers
189190 # ------------------------------------------------------------------
190191
191192 def _register_metrics (
192- self , streaming : bool , sig_figs : int , n_histogram_buckets : int
193+ self ,
194+ streaming : bool ,
195+ enable_isl : bool ,
196+ sig_figs : int ,
197+ n_histogram_buckets : int ,
193198 ) -> None :
194199 """Register all counters and series on the registry."""
195200 for key in MetricCounterKey :
@@ -204,13 +209,14 @@ def _register_metrics(
204209 sig_figs = sig_figs ,
205210 n_histogram_buckets = n_histogram_buckets ,
206211 )
207- self ._registry .register_series (
208- MetricSeriesKey .ISL .value ,
209- hdr_low = TOKEN_HDR_LOW ,
210- hdr_high = TOKEN_HDR_HIGH ,
211- sig_figs = sig_figs ,
212- n_histogram_buckets = n_histogram_buckets ,
213- )
212+ if enable_isl :
213+ self ._registry .register_series (
214+ MetricSeriesKey .ISL .value ,
215+ hdr_low = TOKEN_HDR_LOW ,
216+ hdr_high = TOKEN_HDR_HIGH ,
217+ sig_figs = sig_figs ,
218+ n_histogram_buckets = n_histogram_buckets ,
219+ )
214220 self ._registry .register_series (
215221 MetricSeriesKey .OSL .value ,
216222 hdr_low = TOKEN_HDR_LOW ,
@@ -246,18 +252,19 @@ def _register_metrics(
246252 dtype = float ,
247253 )
248254
249- def _register_triggers (self , streaming : bool ) -> None :
255+ def _register_triggers (self , streaming : bool , enable_isl : bool ) -> None :
250256 """Register metric triggers on the table.
251257
252258 Streaming-only triggers (TTFT, chunk_delta, TPOT) are only registered
253- when ``streaming=True``.
259+ when ``streaming=True``; the ISL trigger only when ``enable_isl=True`` .
254260 """
255261 table = self ._table
256262 registry = self ._registry
257263 queue = self ._token_queue
258264
259- # Always registered
260- table .add_trigger (SampleField .ISSUED_NS , IslTrigger (registry , queue ))
265+ # Latency and OSL are always registered; ISL is opt-out.
266+ if enable_isl :
267+ table .add_trigger (SampleField .ISSUED_NS , IslTrigger (registry , queue ))
261268 table .add_trigger (SampleField .COMPLETE_NS , SampleLatencyTrigger (registry ))
262269 table .add_trigger (SampleField .COMPLETE_NS , OslTrigger (registry , queue ))
263270
0 commit comments