§
    §	Êjm>  ã                   ó  — d dl mZmZ d dlmZmZmZmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZmZ d dlmZ d dlmZ d d	lmZ d d
lmZ  ee¦  «        Z ed¦  «        Z ed¦  «        Z e	d¬¦  «         G d„ d¦  «        ¦   «         Z e	d¬¦  «         G d„ d¦  «        ¦   «         Z edd¬¦  «        Z eegee         f         eee         edf         z  Z! G d„ de¦  «        Z" G d„ deee          ¦  «        Z# G d„ de#e          ¦  «        Z$ G d„ de"¦  «        Z% G d„ de"¦  «        Z& G d „ d!e%¦  «        Z' G d"„ d#e'¦  «        Z( G d$„ d%e#e'         e'¦  «        Z) G d&„ d'e%¦  «        Z* G d(„ d)e*¦  «        Z+ G d*„ d+e#e*         e*¦  «        Z, G d,„ d-e&¦  «        Z- G d.„ d/e-¦  «        Z. G d0„ d1e$e-         e-¦  «        Z/ G d2„ d3e&¦  «        Z0 G d4„ d5e0¦  «        Z1 G d6„ d7e$e0         e0¦  «        Z2 G d8„ d9e%¦  «        Z3 G d:„ d;e3¦  «        Z4 G d<„ d=e#e3         e3¦  «        Z5 G d>„ d?e&¦  «        Z6 G d@„ dAe6¦  «        Z7 G dB„ dCe$e6         e6¦  «        Z8 G dD„ dEe%¦  «        Z9 G dF„ dGe9¦  «        Z: G dH„ dIe#e9         e9¦  «        Z;dS )Jé    )ÚABCÚabstractmethod)ÚCallableÚ	GeneratorÚIterableÚSequence)Ú	dataclass)Ú	getLogger)Úcompile)ÚGenericÚTypeVar)Úmetrics)ÚContext)ÚObservation)Ú
Attributesz[a-zA-Z][-_./a-zA-Z0-9]{0,254}z[\x00-\x7F]{0,63}T)Úfrozenc                   ó0   — e Zd ZU dZee         dz  ed<   dS )Ú_MetricsHistogramAdvisoryNÚexplicit_bucket_boundaries)Ú__name__Ú
__module__Ú__qualname__r   r   ÚfloatÚ__annotations__© ó    úZC:\Projects\Muse2API\.venv\Lib\site-packages\opentelemetry/metrics/_internal/instrument.pyr   r      s,   € € € € € € à9=Ð ¨¤°$Ñ 6Ð=Ð=Ñ=Ð=Ð=r   r   c                   ó"   — e Zd ZU dZdZeed<   dS )ÚCallbackOptionszÏOptions for the callback

    Args:
        timeout_millis: Timeout for the callback's execution. If the callback does asynchronous
            work (e.g. HTTP requests), it should respect this timeout.
    i'  Útimeout_millisN)r   r   r   Ú__doc__r    r   r   r   r   r   r   r   $   s.   € € € € € € ðð ð #€N�EÐ"Ð"Ñ"Ð"Ð"r   r   ÚInstrumentTÚ
Instrument)ÚboundNc                   ó~   — e Zd ZdZe	 	 d
dedededdfd„¦   «         Zededededeeedz  f         fd	„¦   «         Z	dS )r#   z7Abstract class that serves as base for all instruments.Ú ÚnameÚunitÚdescriptionÚreturnNc                 ó   — d S ©Nr   ©Úselfr'   r(   r)   s       r   Ú__init__zInstrument.__init__8   s	   € ð 	ˆr   c                 óÀ   — i }t                                | ¦  «        �| |d<   nd|d<   |€d}t                               |¦  «        �||d<   nd|d<   |€d|d<   n||d<   |S )as  
        Checks the following instrument name, unit and description for
        compliance with the spec.

        Returns a dict with keys "name", "unit" and "description", the
        corresponding values will be the checked strings or `None` if the value
        is invalid. If valid, the checked strings should be used instead of the
        original values.
        Nr'   r&   r(   r)   )Ú_name_regexÚ	fullmatchÚ_unit_regex)r'   r(   r)   Úresults       r   Ú_check_name_unit_descriptionz'Instrument._check_name_unit_descriptionA   s…   € ð )+ˆå× Ò  Ñ&Ô&Ð2Ø!ˆF�6‰NˆNà!ˆF�6‰Nàˆ<ØˆDÝ× Ò  Ñ&Ô&Ð2Ø!ˆF�6‰NˆNà!ˆF�6‰NàÐØ$&ˆF�=Ñ!Ð!à$/ˆF�=Ñ!àˆr   ©r&   r&   )
r   r   r   r!   r   Ústrr/   ÚstaticmethodÚdictr5   r   r   r   r#   r#   5   sº   € € € € € ØAÐAàð Øð	ð àðð ðð ð	ð
 
ðð ð ñ „^ðð ð¨3ð °cð Èð ÐPTÐUXÐZ]Ð`dÑZdÐUdÔPeð ð ð ñ „\ðð ð r   c            	       óT   — e Zd Z	 	 ddedededdfd„Zdd
„Zedd	defd„¦   «         ZdS )Ú_ProxyInstrumentr&   r'   r(   r)   r*   Nc                 ó>   — || _         || _        || _        d | _        d S r,   )Ú_nameÚ_unitÚ_descriptionÚ_real_instrumentr-   s       r   r/   z_ProxyInstrument.__init__d   s(   € ð ˆŒ
ØˆŒ
Ø'ˆÔØ48ˆÔÐÐr   Úmeterúmetrics.Meterc                 ó:   — |                       |¦  «        | _        dS )z;Called when a real meter is set on the creating _ProxyMeterN)Ú_create_real_instrumentr@   ©r.   rA   s     r   Úon_meter_setz_ProxyInstrument.on_meter_seto   s    € ð !%× <Ò <¸UÑ CÔ CˆÔÐÐr   c                 ó   — dS )z:Create an instance of the real instrument. Implement this.Nr   rE   s     r   rD   z(_ProxyInstrument._create_real_instrumentw   ó   € € € r   r6   )rA   rB   r*   N)	r   r   r   r7   r/   rF   r   r"   rD   r   r   r   r;   r;   c   s©   € € € € € ð Øð		9ð 	9àð	9ð ð	9ð ð		9ð
 
ð	9ð 	9ð 	9ð 	9ðDð Dð Dð Dð ðI¨_ð IÀð Ið Ið Iñ „^ðIð Ið Ir   r;   c                   óN   ‡ — e Zd Z	 	 	 d	dedee         dz  dededdf
ˆ fd„Zˆ xZS )
Ú_ProxyAsynchronousInstrumentNr&   r'   Ú	callbacksr(   r)   r*   c                 ó\   •— t          ¦   «                              |||¦  «         || _        d S r,   )Úsuperr/   Ú
_callbacks©r.   r'   rK   r(   r)   Ú	__class__s        €r   r/   z%_ProxyAsynchronousInstrument.__init__}   s,   ø€ õ 	‰Œ×Ò˜˜t [Ñ1Ô1Ð1Ø#ˆŒˆˆr   ©Nr&   r&   )r   r   r   r7   r   Ú	CallbackTr/   Ú__classcell__©rP   s   @r   rJ   rJ   |   s‡   ø€ € € € € ð 15ØØð$ð $àð$ð ˜IÔ&¨Ñ-ð$ð ð	$ð
 ð$ð 
ð$ð $ð $ð $ð $ð $ð $ð $ð $ð $r   rJ   c                   ó   — e Zd ZdZdS )ÚSynchronousz*Base class for all synchronous instrumentsN©r   r   r   r!   r   r   r   rV   rV   ˆ   s   € € € € € Ø4Ð4Ð4Ð4r   rV   c                   ób   ‡ — e Zd ZdZe	 	 	 d
dedee         dz  dededdf
ˆ fd	„¦   «         Zˆ xZ	S )ÚAsynchronousz+Base class for all asynchronous instrumentsNr&   r'   rK   r(   r)   r*   c                 óP   •— t          ¦   «                              |||¬¦  «         d S ©N)r(   r)   ©rM   r/   rO   s        €r   r/   zAsynchronous.__init__�   s*   ø€ õ 	‰Œ×Ò˜ D°kÐÑBÔBÐBÐBÐBr   rQ   )
r   r   r   r!   r   r7   r   rR   r/   rS   rT   s   @r   rY   rY   Œ   s§   ø€ € € € € Ø5Ð5àð 15ØØðCð CàðCð ˜IÔ&¨Ñ-ðCð ð	Cð
 ðCð 
ðCð Cð Cð Cð Cñ „^ðCð Cð Cð Cð Cr   rY   c            
       óF   — e Zd ZdZe	 	 ddedededz  ddfd„¦   «         ZdS )	ÚCounterzOA Counter is a synchronous `Instrument` which supports non-negative increments.NÚamountÚ
attributesÚcontextr*   c                 ó   — dS )ak  Records an increment to the counter.

        Args:
            amount: The amount to increment the counter by. Must be non-negative.
            attributes: Optional set of attributes to associate with the measurement.
            context: Optional context to associate with the measurement. If not
                provided, the current context is used.
        Nr   ©r.   r_   r`   ra   s       r   ÚaddzCounter.add�   rH   r   ©NN©	r   r   r   r!   r   r   r   r   rd   r   r   r   r^   r^   š   so   € € € € € ØYÐYàð "&Ø"&ð	ð àðð ðð ˜4‘ð	ð
 
ðð ð ñ „^ðð ð r   r^   c            	       ób   ‡ — e Zd ZdZ	 	 ddedededdfˆ fd„Z	 	 dd	ed
ededz  ddfˆ fd„Z	ˆ xZ
S )ÚNoOpCounterz"No-op implementation of `Counter`.r&   r'   r(   r)   r*   Nc                 óP   •— t          ¦   «                              |||¬¦  «         d S r[   r\   ©r.   r'   r(   r)   rP   s       €r   r/   zNoOpCounter.__init__±   ó*   ø€ õ 	‰Œ×Ò˜ D°kÐÑBÔBÐBÐBÐBr   r_   r`   ra   c                 óL   •— t          ¦   «                              |||¬¦  «        S ©N)r`   ra   ©rM   rd   ©r.   r_   r`   ra   rP   s       €r   rd   zNoOpCounter.add¹   ó!   ø€ õ ‰wŒw�{Š{˜6¨jÀ'ˆ{ÑJÔJÐJr   r6   re   ©r   r   r   r!   r7   r/   r   r   r   rd   rS   rT   s   @r   rh   rh   ®   óå   ø€ € € € € Ø,Ð,ð
 Øð	Cð CàðCð ðCð ð	Cð
 
ðCð Cð Cð Cð Cð Cð "&Ø"&ð	Kð KàðKð ðKð ˜4‘ð	Kð
 
ðKð Kð Kð Kð Kð Kð Kð Kð Kð Kr   rh   c            	       óB   — e Zd Z	 	 d
dedededz  ddfd„Zdddefd	„ZdS )Ú_ProxyCounterNr_   r`   ra   r*   c                 óP   — | j         r| j                              |||¦  «         d S d S r,   ©r@   rd   rc   s       r   rd   z_ProxyCounter.addÃ   ó=   € ð Ô ð 	CØÔ!×%Ò% f¨j¸'ÑBÔBÐBÐBÐBð	Cð 	Cr   rA   rB   c                 óN   — |                      | j        | j        | j        ¦  «        S r,   )Úcreate_counterr=   r>   r?   rE   s     r   rD   z%_ProxyCounter._create_real_instrumentÌ   s*   € Ø×#Ò#ØŒJØŒJØÔñ
ô 
ð 	
r   re   )	r   r   r   r   r   r   rd   r^   rD   r   r   r   rt   rt   Â   sŠ   € € € € € ð "&Ø"&ð	Cð CàðCð ðCð ˜4‘ð	Cð
 
ðCð Cð Cð Cð
¨_ð 
Àð 
ð 
ð 
ð 
ð 
ð 
r   rt   c            
       óF   — e Zd ZdZe	 	 ddedededz  ddfd„¦   «         ZdS )	ÚUpDownCounterzXAn UpDownCounter is a synchronous `Instrument` which supports increments and decrements.Nr_   r`   ra   r*   c                 ó   — dS )a/  Records an increment or decrement to the counter.

        Unlike `Counter`, the ``amount`` may be negative, allowing the
        instrument to track values that go up and down (e.g. number of
        active requests, queue depth).

        Args:
            amount: The amount to add to the counter. May be positive or negative.
            attributes: Optional set of attributes to associate with the measurement.
            context: Optional context to associate with the measurement. If not
                provided, the current context is used.
        Nr   rc   s       r   rd   zUpDownCounter.add×   rH   r   re   rf   r   r   r   r{   r{   Ô   so   € € € € € ØbÐbàð "&Ø"&ð	ð àðð ðð ˜4‘ð	ð
 
ðð ð ñ „^ðð ð r   r{   c            	       ób   ‡ — e Zd ZdZ	 	 ddedededdfˆ fd„Z	 	 dd	ed
ededz  ddfˆ fd„Z	ˆ xZ
S )ÚNoOpUpDownCounterz(No-op implementation of `UpDownCounter`.r&   r'   r(   r)   r*   Nc                 óP   •— t          ¦   «                              |||¬¦  «         d S r[   r\   rj   s       €r   r/   zNoOpUpDownCounter.__init__ï   rk   r   r_   r`   ra   c                 óL   •— t          ¦   «                              |||¬¦  «        S rm   rn   ro   s       €r   rd   zNoOpUpDownCounter.add÷   rp   r   r6   re   rq   rT   s   @r   r~   r~   ì   så   ø€ € € € € Ø2Ð2ð
 Øð	Cð CàðCð ðCð ð	Cð
 
ðCð Cð Cð Cð Cð Cð "&Ø"&ð	Kð KàðKð ðKð ˜4‘ð	Kð
 
ðKð Kð Kð Kð Kð Kð Kð Kð Kð Kr   r~   c            	       óB   — e Zd Z	 	 d
dedededz  ddfd„Zdddefd	„ZdS )Ú_ProxyUpDownCounterNr_   r`   ra   r*   c                 óP   — | j         r| j                              |||¦  «         d S d S r,   rv   rc   s       r   rd   z_ProxyUpDownCounter.add  rw   r   rA   rB   c                 óN   — |                      | j        | j        | j        ¦  «        S r,   )Úcreate_up_down_counterr=   r>   r?   rE   s     r   rD   z+_ProxyUpDownCounter._create_real_instrument
  s*   € Ø×+Ò+ØŒJØŒJØÔñ
ô 
ð 	
r   re   )	r   r   r   r   r   r   rd   r{   rD   r   r   r   r‚   r‚      sŠ   € € € € € ð "&Ø"&ð	Cð CàðCð ðCð ˜4‘ð	Cð
 
ðCð Cð Cð Cð
¨_ð 
Àð 
ð 
ð 
ð 
ð 
ð 
r   r‚   c                   ó   — e Zd ZdZdS )ÚObservableCounterz”An ObservableCounter is an asynchronous `Instrument` which reports monotonically
    increasing value(s) when the instrument is being observed.
    NrW   r   r   r   r‡   r‡     s   € € € € € ðð ð ð r   r‡   c                   óR   ‡ — e Zd ZdZ	 	 	 d
dedee         dz  dededdf
ˆ fd	„Zˆ xZS )ÚNoOpObservableCounterz,No-op implementation of `ObservableCounter`.Nr&   r'   rK   r(   r)   r*   c                 óR   •— t          ¦   «                              ||||¬¦  «         d S r[   r\   rO   s        €r   r/   zNoOpObservableCounter.__init__  ó<   ø€ õ 	‰Œ×ÒØØØØ#ð	 	ñ 	
ô 	
ð 	
ð 	
ð 	
r   rQ   ©	r   r   r   r!   r7   r   rR   r/   rS   rT   s   @r   r‰   r‰     s�   ø€ € € € € Ø6Ð6ð
 15ØØð
ð 
àð
ð ˜IÔ&¨Ñ-ð
ð ð	
ð
 ð
ð 
ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r   r‰   c                   ó   — e Zd Zdddefd„ZdS )Ú_ProxyObservableCounterrA   rB   r*   c                 óZ   — |                      | j        | j        | j        | j        ¦  «        S r,   )Úcreate_observable_counterr=   rN   r>   r?   rE   s     r   rD   z/_ProxyObservableCounter._create_real_instrument+  s/   € Ø×.Ò.ØŒJØŒOØŒJØÔñ	
ô 
ð 	
r   N)r   r   r   r‡   rD   r   r   r   rŽ   rŽ   *  s7   € € € € € ð
¨_ð 
ÐARð 
ð 
ð 
ð 
ð 
ð 
r   rŽ   c                   ó   — e Zd ZdZdS )ÚObservableUpDownCountera  An ObservableUpDownCounter is an asynchronous `Instrument` which reports additive value(s) (e.g.
    the process heap size - it makes sense to report the heap size from multiple processes and sum them
    up, so we get the total heap usage) when the instrument is being observed.
    NrW   r   r   r   r’   r’   4  ó   € € € € € ðð ð ð r   r’   c                   óR   ‡ — e Zd ZdZ	 	 	 d
dedee         dz  dededdf
ˆ fd	„Zˆ xZS )ÚNoOpObservableUpDownCounterz2No-op implementation of `ObservableUpDownCounter`.Nr&   r'   rK   r(   r)   r*   c                 óR   •— t          ¦   «                              ||||¬¦  «         d S r[   r\   rO   s        €r   r/   z$NoOpObservableUpDownCounter.__init__>  r‹   r   rQ   rŒ   rT   s   @r   r•   r•   ;  s�   ø€ € € € € Ø<Ð<ð
 15ØØð
ð 
àð
ð ˜IÔ&¨Ñ-ð
ð ð	
ð
 ð
ð 
ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r   r•   c                   ó   — e Zd Zdddefd„ZdS )Ú_ProxyObservableUpDownCounterrA   rB   r*   c                 óZ   — |                      | j        | j        | j        | j        ¦  «        S r,   )Ú!create_observable_up_down_counterr=   rN   r>   r?   rE   s     r   rD   z5_ProxyObservableUpDownCounter._create_real_instrumentQ  s/   € Ø×6Ò6ØŒJØŒOØŒJØÔñ	
ô 
ð 	
r   N)r   r   r   r’   rD   r   r   r   r˜   r˜   M  s7   € € € € € ð
¨_ð 
ÐAXð 
ð 
ð 
ð 
ð 
ð 
r   r˜   c                   óŒ   — e Zd ZdZe	 	 	 ddedededee         dz  ddf
d	„¦   «         Ze	 	 dd
ede	de
dz  ddfd„¦   «         ZdS )Ú	HistogramzÞHistogram is a synchronous `Instrument` which can be used to report arbitrary values
    that are likely to be statistically meaningful. It is intended for statistics such as
    histograms, summaries, and percentile.
    r&   Nr'   r(   r)   Ú#explicit_bucket_boundaries_advisoryr*   c                 ó   — d S r,   r   )r.   r'   r(   r)   r�   s        r   r/   zHistogram.__init__`  s	   € ð 	ˆr   r_   r`   ra   c                 ó   — dS )aª  Records a measurement.

        Used to report measurements that are likely to be statistically
        meaningful, such as request durations, payload sizes, or any value
        for which a distribution (e.g. percentiles) is useful.

        Args:
            amount: The measurement to record. Should be non-negative in most
                cases; negative values are only meaningful when the histogram
                is used to track signed deltas.
            attributes: Optional set of attributes to associate with the measurement.
            context: Optional context to associate with the measurement. If not
                provided, the current context is used.
        Nr   rc   s       r   ÚrecordzHistogram.recordj  rH   r   ©r&   r&   Nre   )r   r   r   r!   r   r7   r   r   r/   r   r   r    r   r   r   rœ   rœ   Z  sÞ   € € € € € ðð ð
 ð ØØFJðð àðð ðð ð	ð
 .6°e¬_¸tÑ-Cðð 
ðð ð ñ „^ðð ð "&Ø"&ð	ð àðð ðð ˜4‘ð	ð
 
ðð ð ñ „^ðð ð r   rœ   c                   óz   ‡ — e Zd ZdZ	 	 	 ddedededee         dz  ddf
ˆ fd	„Z	 	 dd
edede	dz  ddfˆ fd„Z
ˆ xZS )ÚNoOpHistogramz$No-op implementation of `Histogram`.r&   Nr'   r(   r)   r�   r*   c                 óR   •— t          ¦   «                              ||||¬¦  «         d S )N)r(   r)   r�   r\   ©r.   r'   r(   r)   r�   rP   s        €r   r/   zNoOpHistogram.__init__„  s<   ø€ õ 	‰Œ×ÒØØØ#Ø0Sð	 	ñ 	
ô 	
ð 	
ð 	
ð 	
r   r_   r`   ra   c                 óL   •— t          ¦   «                              |||¬¦  «        S rm   )rM   r    ro   s       €r   r    zNoOpHistogram.record’  s!   ø€ õ ‰wŒw�~Š~˜f°ÀWˆ~ÑMÔMÐMr   r¡   re   )r   r   r   r!   r7   r   r   r/   r   r   r    rS   rT   s   @r   r£   r£   �  sð   ø€ € € € € Ø.Ð.ð
 ØØFJð
ð 
àð
ð ð
ð ð	
ð
 .6°e¬_¸tÑ-Cð
ð 
ð
ð 
ð 
ð 
ð 
ð 
ð" "&Ø"&ð	Nð NàðNð ðNð ˜4‘ð	Nð
 
ðNð Nð Nð Nð Nð Nð Nð Nð Nð Nr   r£   c                   ó‚   ‡ — e Zd Z	 	 	 ddedededee         dz  ddf
ˆ fd„Z	 	 dd	ed
ededz  ddfd„Z	ddde
fd„Zˆ xZS )Ú_ProxyHistogramr&   Nr'   r(   r)   r�   r*   c                 ó^   •— t          ¦   «                              |||¬¦  «         || _        d S r[   )rM   r/   Ú$_explicit_bucket_boundaries_advisoryr¥   s        €r   r/   z_ProxyHistogram.__init__œ  s2   ø€ õ 	‰Œ×Ò˜ D°kÐÑBÔBÐBØ4WˆÔ1Ð1Ð1r   r_   r`   ra   c                 óP   — | j         r| j                              |||¦  «         d S d S r,   )r@   r    rc   s       r   r    z_ProxyHistogram.record¦  s=   € ð Ô ð 	FØÔ!×(Ò(¨°¸WÑEÔEÐEÐEÐEð	Fð 	Fr   rA   rB   c                 ó\   — |                      | j        | j        | j        | j        ¬¦  «        S )N)r�   )Úcreate_histogramr=   r>   r?   rª   rE   s     r   rD   z'_ProxyHistogram._create_real_instrument¯  s5   € Ø×%Ò%ØŒJØŒJØÔØ04Ô0Yð	 &ñ 
ô 
ð 	
r   r¡   re   )r   r   r   r7   r   r   r/   r   r   r    rœ   rD   rS   rT   s   @r   r¨   r¨   ›  s  ø€ € € € € ð ØØFJðXð XàðXð ðXð ð	Xð
 .6°e¬_¸tÑ-CðXð 
ðXð Xð Xð Xð Xð Xð "&Ø"&ð	Fð FàðFð ðFð ˜4‘ð	Fð
 
ðFð Fð Fð Fð
¨_ð 
Àð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r   r¨   c                   ó   — e Zd ZdZdS )ÚObservableGaugezþAsynchronous Gauge is an asynchronous `Instrument` which reports non-additive value(s) (e.g.
    the room temperature - it makes no sense to report the temperature value from multiple rooms
    and sum them up) when the instrument is being observed.
    NrW   r   r   r   r¯   r¯   ¸  r“   r   r¯   c                   óR   ‡ — e Zd ZdZ	 	 	 d
dedee         dz  dededdf
ˆ fd	„Zˆ xZS )ÚNoOpObservableGaugez*No-op implementation of `ObservableGauge`.Nr&   r'   rK   r(   r)   r*   c                 óR   •— t          ¦   «                              ||||¬¦  «         d S r[   r\   rO   s        €r   r/   zNoOpObservableGauge.__init__Â  r‹   r   rQ   rŒ   rT   s   @r   r±   r±   ¿  s�   ø€ € € € € Ø4Ð4ð
 15ØØð
ð 
àð
ð ˜IÔ&¨Ñ-ð
ð ð	
ð
 ð
ð 
ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r   r±   c                   ó   — e Zd Zdddefd„ZdS )Ú_ProxyObservableGaugerA   rB   r*   c                 óZ   — |                      | j        | j        | j        | j        ¦  «        S r,   )Úcreate_observable_gauger=   rN   r>   r?   rE   s     r   rD   z-_ProxyObservableGauge._create_real_instrumentÕ  s/   € Ø×,Ò,ØŒJØŒOØŒJØÔñ	
ô 
ð 	
r   N)r   r   r   r¯   rD   r   r   r   r´   r´   Ñ  s6   € € € € € ð
¨_ð 
Àð 
ð 
ð 
ð 
ð 
ð 
r   r´   c            
       óF   — e Zd ZdZe	 	 ddedededz  ddfd„¦   «         ZdS )	ÚGaugezdA Gauge is a synchronous `Instrument` which can be used to record non-additive values as they occur.Nr_   r`   ra   r*   c                 ó   — dS )a&  Records the current value of the gauge.

        The gauge reports the last recorded value when observed. It is
        intended for non-additive measurements where only the current
        value matters (e.g. CPU utilisation percentage, room temperature).

        Args:
            amount: The current value to record.
            attributes: Optional set of attributes to associate with the measurement.
            context: Optional context to associate with the measurement. If not
                provided, the current context is used.
        Nr   rc   s       r   Úsetz	Gauge.setá  rH   r   re   )	r   r   r   r!   r   r   r   r   rº   r   r   r   r¸   r¸   Þ  so   € € € € € ØnÐnàð "&Ø"&ð	ð àðð ðð ˜4‘ð	ð
 
ðð ð ñ „^ðð ð r   r¸   c            	       ób   ‡ — e Zd ZdZ	 	 ddedededdfˆ fd„Z	 	 dd	ed
ededz  ddfˆ fd„Z	ˆ xZ
S )Ú	NoOpGaugez"No-op implementation of ``Gauge``.r&   r'   r(   r)   r*   Nc                 óP   •— t          ¦   «                              |||¬¦  «         d S r[   r\   rj   s       €r   r/   zNoOpGauge.__init__ù  rk   r   r_   r`   ra   c                 óL   •— t          ¦   «                              |||¬¦  «        S rm   )rM   rº   ro   s       €r   rº   zNoOpGauge.set  rp   r   r6   re   )r   r   r   r!   r7   r/   r   r   r   rº   rS   rT   s   @r   r¼   r¼   ö  rr   r   r¼   c            	       óB   — e Zd Z	 	 d
dedededz  ddfd„Zdddefd	„ZdS )Ú_ProxyGaugeNr_   r`   ra   r*   c                 óP   — | j         r| j                              |||¦  «         d S d S r,   )r@   rº   rc   s       r   rº   z_ProxyGauge.set  rw   r   rA   rB   c                 óN   — |                      | j        | j        | j        ¦  «        S r,   )Úcreate_gauger=   r>   r?   rE   s     r   rD   z#_ProxyGauge._create_real_instrument  s*   € Ø×!Ò!ØŒJØŒJØÔñ
ô 
ð 	
r   re   )	r   r   r   r   r   r   rº   r¸   rD   r   r   r   rÀ   rÀ   
  sŠ   € € € € € ð "&Ø"&ð	Cð CàðCð ðCð ˜4‘ð	Cð
 
ðCð Cð Cð Cð
¨_ð 
Àð 
ð 
ð 
ð 
ð 
ð 
r   rÀ   )<Úabcr   r   Úcollections.abcr   r   r   r   Údataclassesr	   Úloggingr
   Úrer   Ú
re_compileÚtypingr   r   Úopentelemetryr   Úopentelemetry.contextr   Ú+opentelemetry.metrics._internal.observationr   Úopentelemetry.util.typesr   r   Ú_loggerr1   r3   r   r   r"   rR   r#   r;   rJ   rV   rY   r^   rh   rt   r{   r~   r‚   r‡   r‰   rŽ   r’   r•   r˜   rœ   r£   r¨   r¯   r±   r´   r¸   r¼   rÀ   r   r   r   ú<module>rÐ      s¿  ðð $Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CØ !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $ðð ð ð ð ð ð ð ð "Ð !Ð !Ð !Ð !Ð !Ø )Ð )Ð )Ð )Ð )Ð )Ø CÐ CÐ CÐ CÐ CÐ Cðð ð ð ð ð ð ˆ)�HÑ
Ô
€àˆjÐ:Ñ;Ô;€ØˆjÐ-Ñ.Ô.€ð €�$ÐÑÔð>ð >ð >ð >ð >ñ >ô >ñ Ôð>ð €�$ÐÑÔð#ð #ð #ð #ð #ñ #ô #ñ Ôð#ð ˆg�m¨<Ð8Ñ8Ô8€à�oÐ&¨°Ô(=Ð=Ô>ÀÈ8ÐT_ÔK`ÐbqÐswÐKwÔAxÑx€	ð+ð +ð +ð +ð +�ñ +ô +ð +ð\Ið Ið Ið Ið I�s˜G KÔ0ñ Iô Ið Ið2	$ð 	$ð 	$ð 	$ð 	$Ð#3°KÔ#@ñ 	$ô 	$ð 	$ð5ð 5ð 5ð 5ð 5�*ñ 5ô 5ð 5ðCð Cð Cð Cð C�:ñ Cô Cð Cðð ð ð ð ˆkñ ô ð ð(Kð Kð Kð Kð K�'ñ Kô Kð Kð(
ð 
ð 
ð 
ð 
Ð$ WÔ-¨wñ 
ô 
ð 
ð$ð ð ð ð �Kñ ô ð ð0Kð Kð Kð Kð K˜ñ Kô Kð Kð(
ð 
ð 
ð 
ð 
Ð*¨=Ô9¸=ñ 
ô 
ð 
ð$ð ð ð ð ˜ñ ô ð ð
ð 
ð 
ð 
ð 
Ð-ñ 
ô 
ð 
ð$
ð 
ð 
ð 
ð 
Ð:Ð;LÔMÐO`ñ 
ô 
ð 
ðð ð ð ð ˜lñ ô ð ð
ð 
ð 
ð 
ð 
Ð"9ñ 
ô 
ð 
ð$

ð 

ð 

ð 

ð 

Ø Ð!8Ô9Øñ

ô 

ð 

ð$ð $ð $ð $ð $�ñ $ô $ð $ðNNð Nð Nð Nð N�Iñ Nô Nð Nð4
ð 
ð 
ð 
ð 
Ð& yÔ1°9ñ 
ô 
ð 
ð:ð ð ð ð �lñ ô ð ð
ð 
ð 
ð 
ð 
˜/ñ 
ô 
ð 
ð$

ð 

ð 

ð 

ð 

Ø  Ô1Øñ

ô 

ð 

ðð ð ð ð ˆKñ ô ð ð0Kð Kð Kð Kð K�ñ Kô Kð Kð(
ð 
ð 
ð 
ð 
Ø�UÔØ	ñ
ô 
ð 
ð 
ð 
r   