Ë
    qûàgŽ  ã                   ó^   — 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 G d„ de«      Zy)z;Bare-bones implementation of statsD's protocol, client-sideé    N)Úsub)ÚLoggerÚmetricÚvalueÚmtypeÚgaugeÚcounterÚ	histogramc                   óh   — 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y)Ú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                  |j                  «       |j                  | _        y # t        $ r
 d | _        Y Œ$w xY w)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      úX/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/gunicorn/instrument/statsd.pyr   zStatsd.__init__   s¢   € Ü�‰˜˜cÔ"ÜÐ+¨Y¸×8IÑ8IÓJˆŒä�c—o‘o¤sÔ+Ü#Ÿ^™^‰Nä#Ÿ^™^ˆNð	ÜŸ™ n´f×6GÑ6GÓHˆDŒIØ�I‰I×Ñ˜cŸo™oÔ.ð "×0Ñ0ˆÕøô ò 	ØˆDŽIð	ús   Á/AC ÃC"Ã!C"c                 ó\   — t        j                  | |g|¢­i |¤Ž | j                  dd«       y )Nzgunicorn.log.criticalé   )r   ÚcriticalÚ	increment©r   ÚmsgÚargsÚkwargss       r   r"   zStatsd.critical+   s)   € Ü�‰˜˜cÐ3 DÒ3¨FÒ3Ø�‰Ð.°Õ2ó    c                 ó\   — t        j                  | |g|¢­i |¤Ž | j                  dd«       y )Nzgunicorn.log.errorr!   )r   Úerrorr#   r$   s       r   r*   zStatsd.error/   s)   € Ü�‰�T˜3Ð0 Ò0¨Ò0Ø�‰Ð+¨QÕ/r(   c                 ó\   — t        j                  | |g|¢­i |¤Ž | j                  dd«       y )Nzgunicorn.log.warningr!   )r   Úwarningr#   r$   s       r   r,   zStatsd.warning3   s)   € Ü�‰�t˜SÐ2 4Ò2¨6Ò2Ø�‰Ð-¨qÕ1r(   c                 ó\   — t        j                  | |g|¢­i |¤Ž | j                  dd«       y )Nzgunicorn.log.exceptionr!   )r   Ú	exceptionr#   r$   s       r   r.   zStatsd.exception7   s+   € Ü×Ñ˜˜sÐ4 TÒ4¨VÒ4Ø�‰Ð/°Õ3r(   c                 óN   —  | j                   t        j                  |g|¢­i |¤Ž y ©N)ÚlogÚloggingÚINFOr$   s       r   ÚinfozStatsd.info<   s    € Øˆ�‰”—‘˜sÐ4 TÒ4¨VÓ4r(   c                 óN   —  | j                   t        j                  |g|¢­i |¤Ž y r0   )r1   r2   ÚDEBUGr$   s       r   ÚdebugzStatsd.debug@   s    € Øˆ�‰”—‘ Ð5 dÒ5¨fÓ5r(   c                 óò  — 	 |j                  dd«      }|��|j                  t        d«      }|j                  t        d«      }|j                  t        d«      }|rY|rW|rU|t        k(  r| j                  ||«       n9|t        k(  r| j                  ||«       n|t        k(  r| j                  ||«       n	 |rt        j                  | ||g|¢­i |¤Ž yy# t        $ r t        j                  | dd¬«       Y y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
   r   r1   r   r,   )	r   Úlvlr%   r&   r'   r9   r   r   Útyps	            r   r1   z
Statsd.logC   sà   € ð	KØ—J‘J˜w¨Ó-ˆEØÐ ØŸ™¤:¨tÓ4�ØŸ	™	¤)¨TÓ2�Ø—i‘i¤	¨4Ó0�Ù™e©ØœjÒ(ØŸ
™
 6¨5Õ1Ø¤Ò,ØŸ™ v¨uÕ5Ø¤Ò.ØŸ™ v¨uÕ5àñ Ü—
‘
˜4  cÐ;¨DÒ;°FÓ;ð øäò 	KÜ�N‰N˜4Ð!:ÀT×Jð	Kús   ‚CC Ã!C6Ã5C6c                 ó®  — t        j                  | ||||«       |j                  dz  t        |j                  «      dz  z   }|j
                  }t        |t        «      r|j                  d«      }t        |t        «      rt        |j                  dd«      d   «      }| j                  d|«       | j                  dd«       | j                  d|z  d«       y)	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_msrJ   s          r   rF   zStatsd.access]   sµ   € ô 	�‰�d˜D # w°Ô=Ø%×-Ñ-°Ñ4´u¸\×=VÑ=VÓ7WÐZaÑ7aÑaˆØ—‘ˆÜ�fœeÔ$Ø—]‘] 7Ó+ˆFÜ�fœcÔ"Ü˜Ÿ™ d¨AÓ.¨qÑ1Ó2ˆFØ�‰Ð2°NÔCØ�‰Ð*¨AÔ.Ø�‰Ð3°fÑ<¸aÕ@r(   c                 ó\   — | j                  dj                  | j                  ||«      «       y )Nz{0}{1}:{2}|g©Ú
_sock_sendÚformatr   ©r   Únamer   s      r   r   zStatsd.gaugen   s!   € Ø�‰˜×-Ñ-¨d¯k©k¸4ÀÓGÕHr(   c                 ó^   — | j                  dj                  | j                  |||«      «       y )Nz{0}{1}:{2}|c|@{3}rU   ©r   rY   r   Úsampling_rates       r   r#   zStatsd.incrementq   s$   € Ø�‰Ð+×2Ñ2°4·;±;ÀÀeÈ]Ó[Õ\r(   c                 ó^   — | j                  dj                  | j                  |||«      «       y )Nz{0}{1}:-{2}|c|@{3}rU   r[   s       r   Ú	decrementzStatsd.decrementt   s$   € Ø�‰Ð,×3Ñ3°D·K±KÀÀuÈmÓ\Õ]r(   c                 ó\   — | j                  dj                  | j                  ||«      «       y )Nz{0}{1}:{2}|msrU   rX   s      r   r
   zStatsd.histogramw   s!   € Ø�‰˜×.Ñ.¨t¯{©{¸DÀ%ÓHÕIr(   c                 ó@  — 	 t        |t        «      r|j                  d«      }| j                  r!|dz   | j                  j                  d«      z   }| j                  r| j                  j                  |«       y y # t        $ r t        j                  | dd¬«       Y y w xY w)NÚasciis   |#zError sending message to statsdTr:   )	r   r   Úencoder   r   Úsendr   r   r,   )r   r%   s     r   rV   zStatsd._sock_sendz   sˆ   € ð	SÜ˜#œsÔ#Ø—j‘j Ó)�ð ×"Ò"Ø˜E‘k D×$7Ñ$7×$>Ñ$>¸wÓ$GÑG�à�yŠyØ—	‘	—‘˜sÕ#ð øäò 	SÜ�N‰N˜4Ð!BÈT×Rð	Sús   ‚A5A9 Á9!BÂBN)g      ð?)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r"   r*   r,   r.   r4   r7   r1   rF   r   r#   r^   r
   rV   © r(   r   r   r      sT   „ ñò1ò$3ò0ò2ò4ò
5ò6òKò4Aò"Ió]ó^òJóSr(   r   )rg   r2   r   Úrer   Úgunicorn.gloggingr   r=   r>   r?   r@   rA   rB   r   rh   r(   r   ú<module>rk      sF   ðñ
 >ã Û Ý å $ð €
Ø€	Ø€	Ø€
Ø€Ø€ôpSˆVõ pSr(   