§
    Ÿji  ã                   ój   — d Z ddlZddlZddlmZ ddlmZ dZdZdZ	dZ
d	Zd
ZdZ G d„ de¦  «        ZdS )z;Bare-bones implementation of statsD's protocol, client-sideé    N)Úsub)ÚLoggerÚmetricÚvalueÚmtypeÚgaugeÚcounterÚ	histogramÚtimerc                   óp   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zdd„Zdd„Zd„ Zd„ Zd„ ZdS )ÚStatsdz:statsD-based instrumentation, that passes as a logger
    c                 óœ  — t          j        | |¦  «         t          dd|j        ¦  «        | _        t          |j        t          ¦  «        rt          j	        }nt          j
        }	 t          j        |t          j        ¦  «        | _        | j                             |j        ¦  «         n# t          $ r
 d | _        Y nw xY w|j        | _        d S )Nz^(.+[^.]+)\.*$z\g<1>.)r   Ú__init__r   Ústatsd_prefixÚprefixÚ
isinstanceÚstatsd_hostÚstrÚsocketÚAF_UNIXÚAF_INETÚ
SOCK_DGRAMÚsockÚconnectÚ	ExceptionÚdogstatsd_tags)ÚselfÚcfgÚaddress_familys      úg/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/gunicorn/instrument/statsd.pyr   zStatsd.__init__   s¾   € ÝŒ˜˜cÑ"Ô"Ð"ÝÐ+¨Y¸Ô8IÑJÔJˆŒå�c”o¥sÑ+Ô+ð 	,Ý#œ^ˆNˆNå#œ^ˆNð	Ýœ nµfÔ6GÑHÔHˆDŒIØŒI×Ò˜cœoÑ.Ô.Ð.Ð.øÝð 	ð 	ð 	ØˆDŒIˆIˆIð	øøøð "Ô0ˆÔÐÐs   Á%AB) Â)B=Â<B=c                 ó^   — t          j        | |g|¢R i |¤Ž |                      dd¦  «         d S )Nzgunicorn.log.criticalé   )r   ÚcriticalÚ	increment©r   ÚmsgÚargsÚkwargss       r    r#   zStatsd.critical,   s?   € ÝŒ˜˜cÐ3 DÐ3Ð3Ð3¨FÐ3Ð3Ð3Ø�ŠÐ.°Ñ2Ô2Ð2Ð2Ð2ó    c                 ó^   — t          j        | |g|¢R i |¤Ž |                      dd¦  «         d S )Nzgunicorn.log.errorr"   )r   Úerrorr$   r%   s       r    r+   zStatsd.error0   s?   € ÝŒ�T˜3Ð0 Ð0Ð0Ð0¨Ð0Ð0Ð0Ø�ŠÐ+¨QÑ/Ô/Ð/Ð/Ð/r)   c                 ó^   — t          j        | |g|¢R i |¤Ž |                      dd¦  «         d S )Nzgunicorn.log.warningr"   )r   Úwarningr$   r%   s       r    r-   zStatsd.warning4   s?   € ÝŒ�t˜SÐ2 4Ð2Ð2Ð2¨6Ð2Ð2Ð2Ø�ŠÐ-¨qÑ1Ô1Ð1Ð1Ð1r)   c                 ó^   — t          j        | |g|¢R i |¤Ž |                      dd¦  «         d S )Nzgunicorn.log.exceptionr"   )r   Ú	exceptionr$   r%   s       r    r/   zStatsd.exception8   s@   € ÝÔ˜˜sÐ4 TÐ4Ð4Ð4¨VÐ4Ð4Ð4Ø�ŠÐ/°Ñ3Ô3Ð3Ð3Ð3r)   c                 ó>   —  | j         t          j        |g|¢R i |¤Ž d S ©N)ÚlogÚloggingÚINFOr%   s       r    ÚinfozStatsd.info=   s.   € ØˆŒ•”˜sÐ4 TÐ4Ð4Ð4¨VÐ4Ð4Ð4Ð4Ð4r)   c                 ó>   —  | j         t          j        |g|¢R i |¤Ž d S r1   )r2   r3   ÚDEBUGr%   s       r    ÚdebugzStatsd.debugA   s.   € ØˆŒ•” Ð5 dÐ5Ð5Ð5¨fÐ5Ð5Ð5Ð5Ð5r)   c                 ó~  — 	 |                      dd¦  «        }|�à|                      t          d¦  «        }|                      t          d¦  «        }|                      t          d¦  «        }|r�|r‹|r‰|t          k    r|                      ||¦  «         ng|t          k    r|                      ||¦  «         nE|t          k    r|  	                    ||¦  «         n#|t          k    r|                      ||¦  «         n	 |rt          j        | ||g|¢R i |¤Ž dS dS # t          $ r t          j        | dd¬¦  «         Y dS w xY w)zDLog a given statistic if metric, value and type are present
        ÚextraNzFailed to log to statsdT©Úexc_info)ÚgetÚ
METRIC_VARÚ	VALUE_VARÚ	MTYPE_VARÚ
GAUGE_TYPEr   ÚCOUNTER_TYPEr$   ÚHISTOGRAM_TYPEr
   Ú
TIMER_TYPEr   r   r2   r   r-   )	r   Úlvlr&   r'   r(   r:   r   r   Útyps	            r    r2   z
Statsd.logD   sy  € ð	KØ—J’J˜w¨Ñ-Ô-ˆEØÐ ØŸš¥:¨tÑ4Ô4�ØŸ	š	¥)¨TÑ2Ô2�Ø—i’i¥	¨4Ñ0Ô0�Øð 
˜eð 
¨ð 
Ø�jÒ(Ð(ØŸ
š
 6¨5Ñ1Ô1Ð1Ð1Ø¥Ò,Ð,ØŸš v¨uÑ5Ô5Ð5Ð5Ø¥Ò.Ð.ØŸš v¨uÑ5Ô5Ð5Ð5Ø¥
Ò*Ð*ØŸ
š
 6¨5Ñ1Ô1Ð1Ð1àð ð <Ý”
˜4  cÐ;¨DÐ;Ð;Ð;°FÐ;Ð;Ð;Ð;Ð;ð<ð <øåð 	Kð 	Kð 	KÝŒN˜4Ð!:ÀTÐJÑJÔJÐJÐJÐJÐJð	Køøøs   ‚DD Ä!D<Ä;D<c                 óâ  — t          j        | ||||¦  «         |j        dz  t          |j        ¦  «        dz  z   }|j        }t          |t          ¦  «        r|                     d¦  «        }t          |t          ¦  «        r)t          |                     dd¦  «        d         ¦  «        }|                      d|¦  «         |                      dd¦  «         |                      d|z  d¦  «         dS )	zNMeasure request duration
        request_time is a datetime.timedelta
        iè  zutf-8Nr"   r   zgunicorn.request.durationzgunicorn.requestszgunicorn.request.status.%d)r   ÚaccessÚsecondsÚfloatÚmicrosecondsÚstatusr   ÚbytesÚdecoder   ÚintÚsplitr   r$   )r   ÚrespÚreqÚenvironÚrequest_timeÚduration_in_msrL   s          r    rH   zStatsd.access`   så   € õ 	Œ�d˜D # w°Ñ=Ô=Ð=Ø%Ô-°Ñ4µu¸\Ô=VÑ7WÔ7WÐZaÑ7aÑaˆØ”ˆÝ�f�eÑ$Ô$ð 	,Ø—]’] 7Ñ+Ô+ˆFÝ�f�cÑ"Ô"ð 	3Ý˜Ÿš d¨AÑ.Ô.¨qÔ1Ñ2Ô2ˆFØ�
Š
Ð.°Ñ?Ô?Ð?Ø�ŠÐ*¨AÑ.Ô.Ð.Ø�ŠÐ3°fÑ<¸aÑ@Ô@Ð@Ð@Ð@r)   c                 ód   — |                       d                     | j        ||¦  «        ¦  «         d S )Nz{0}{1}:{2}|g©Ú
_sock_sendÚformatr   ©r   Únamer   s      r    r   zStatsd.gaugeq   ó.   € Ø�Š˜×-Ò-¨d¬k¸4ÀÑGÔGÑHÔHÐHÐHÐHr)   ç      ð?c                 óf   — |                       d                     | j        |||¦  «        ¦  «         d S )Nz{0}{1}:{2}|c|@{3}rW   ©r   r[   r   Úsampling_rates       r    r$   zStatsd.incrementt   s1   € Ø�ŠÐ+×2Ò2°4´;ÀÀeÈ]Ñ[Ô[Ñ\Ô\Ð\Ð\Ð\r)   c                 óf   — |                       d                     | j        |||¦  «        ¦  «         d S )Nz{0}{1}:-{2}|c|@{3}rW   r_   s       r    Ú	decrementzStatsd.decrementw   s1   € Ø�ŠÐ,×3Ò3°D´KÀÀuÈmÑ\Ô\Ñ]Ô]Ð]Ð]Ð]r)   c                 ód   — |                       d                     | j        ||¦  «        ¦  «         d S )Nz{0}{1}:{2}|msrW   rZ   s      r    r   zStatsd.timerz   s.   € Ø�Š˜×.Ò.¨t¬{¸DÀ%ÑHÔHÑIÔIÐIÐIÐIr)   c                 ód   — |                       d                     | j        ||¦  «        ¦  «         d S )Nz{0}{1}:{2}|hrW   rZ   s      r    r
   zStatsd.histogram}   r\   r)   c                 ó@  — 	 t          |t          ¦  «        r|                     d¦  «        }| j        r |dz   | j                             d¦  «        z   }| j        r| j                             |¦  «         d S d S # t          $ r t          j        | dd¬¦  «         Y d S w xY w)NÚasciis   |#zError sending message to statsdTr;   )	r   r   Úencoder   r   Úsendr   r   r-   )r   r&   s     r    rX   zStatsd._sock_send€   sÆ   € ð	SÝ˜#�sÑ#Ô#ð *Ø—j’j Ñ)Ô)�ð Ô"ð HØ˜E‘k DÔ$7×$>Ò$>¸wÑ$GÔ$GÑG�àŒyð $Ø”	—’˜sÑ#Ô#Ð#Ð#Ð#ð$ð $øåð 	Sð 	Sð 	SÝŒN˜4Ð!BÈTÐRÑRÔRÐRÐRÐRÐRð	Søøøs   ‚A2A8 Á8!BÂBN)r]   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r#   r+   r-   r/   r5   r8   r2   rH   r   r$   rb   r   r
   rX   © r)   r    r   r      s%  € € € € € ðð ð1ð 1ð 1ð$3ð 3ð 3ð0ð 0ð 0ð2ð 2ð 2ð4ð 4ð 4ð
5ð 5ð 5ð6ð 6ð 6ðKð Kð Kð8Að Að Að"Ið Ið Ið]ð ]ð ]ð ]ð^ð ^ð ^ð ^ðJð Jð JðIð Ið IðSð Sð Sð Sð Sr)   r   )rl   r3   r   Úrer   Úgunicorn.gloggingr   r>   r?   r@   rA   rB   rC   rD   r   rm   r)   r    ú<module>rp      s°   ðð
 >Ð =à €€€Ø €€€Ø Ð Ð Ð Ð Ð à $Ð $Ð $Ð $Ð $Ð $ð €
Ø€	Ø€	Ø€
Ø€Ø€Ø€
ðuSð uSð uSð uSð uSˆVñ uSô uSð uSð uSð uSr)   