Ë
    dQêj!  ã                  óN  — U d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
mZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZmZmZ erd d
lmZmZ  ej:                  e«      ZdZ de!d<   dZ"de!d<   dZ#de!d<    e$ejJ                  jL                  ejN                  jL                  ejP                  jL                  ejR                  jL                  h«      Z*de!d<   dd„Z+d d„Z, G d„ dejZ                  «      Z. edd¬«       G d„ d«      «       Z/ G d„ d«      Z0y)!é    )ÚannotationsN)ÚMapping)Ú	dataclass)Útimezone)Úparsedate_to_datetime)Ú
HTTPStatus)ÚBytesIO)ÚTYPE_CHECKINGÚFinalÚLiteral)ÚBaseHTTPResultÚBaseHTTPTransporté   z
Final[int]Ú_MAX_RETRIESg      $@zFinal[float]Ú_DEFAULT_TIMEOUTgš™™™™™É?Ú_DEFAULT_JITTERzFinal[frozenset[int]]Ú_RETRYABLE_STATUS_CODESc                ó   — | t         v S )N)r   )Ústatus_codes    úl/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/opentelemetry/exporter/otlp/common/http.pyÚ_is_retryabler   -   s   € ØÔ1Ð1Ð1ó    c                óü  — 	 | j                  «       j                  d«      }|€y|j                  «       }	 t	        |«      }t        j                  |«      rt        |d«      S dS # t        $ r Y yw xY w# t        $ r Y nw xY w	 t        |«      }n# t        t        f$ r Y yw xY w|j                  € |j                  t        j                  ¬«      }t        |j                  «       t!        j                   «       z
  d«      S )z,Parse the ``Retry-After`` header (RFC 7231).zretry-afterNç        )Útzinfo)ÚheadersÚgetÚ	ExceptionÚstripÚfloatÚmathÚisfiniteÚmaxÚ
ValueErrorr   Ú	TypeErrorr   Úreplacer   ÚutcÚ	timestampÚtime)ÚresultÚvalueÚsecondsÚretry_ats       r   Ú_extract_retry_afterr.   1   sð   € ðØ—‘Ó ×$Ñ$ ]Ó3ˆð €}ØØ�K‰K‹M€EðEÜ˜“,ˆô %)§M¡M°'Ô$:Œs�7˜CÓ ÐDÀÐDøô ò Ùðûô ò ÙðúðÜ(¨Ó/‰øÜ”zÐ"ò Ùðúà‡�ÐØ×#Ñ#¬8¯<©<Ð#Ó8ˆÜˆx×!Ñ!Ó#¤d§i¡i£kÑ1°3Ó7Ð7s4   ‚A# µA2 Á#	A/Á.A/Á2	A>Á=A>ÂB ÂB ÂB c                  ó*   — e Zd ZdZdZdZedd„«       Zy)ÚCompressionÚnoneÚdeflateÚgzipc                óÜ   — | j                  «       j                  «       xdk(  r t        j                  S xdk(  r t        j                  S dk(  rt        j
                  S 	 t        d| ›d�«      ‚)Nr1   r2   r3   zInvalid compression type: z-. Expected one of: 'none', 'deflate', 'gzip'.)r   Úlowerr0   ÚNONEÚDEFLATEÚGZIPr$   )r+   s    r   Úfrom_strzCompression.from_strS   sZ   € à�k‰k‹m×!Ñ!Ó#ÝÜ"×'Ñ'Ð'ÝÜ"×*Ñ*Ð*ÛÜ"×'Ñ'Ð'ØÜ Ð#=¸e¸YÐFsÐ!tÓuÐur   N)r+   ÚstrÚreturnr0   )Ú__name__Ú
__module__Ú__qualname__r6   r7   r8   Ústaticmethodr9   © r   r   r0   r0   N   s%   „ Ø€DØ€GØ€Dàò	vó ñ	vr   r0   T)ÚslotsÚfrozenc                  ó:   — e Zd ZU dZded<   ded<   ded<   ded	<   y
)Ú_ExportResultz>Outcome of an OTLP export attempt, including retry exhaustion.ÚboolÚsuccessú
int | Noner   z
str | NoneÚreasonzException | NoneÚerrorN)r<   r=   r>   Ú__doc__Ú__annotations__r@   r   r   rD   rD   `   s   … áHàƒMØÓØÓØÔr   rD   c                  ó‚   — e Zd ZdZeej                  dedf	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d	d„Zd
d„Z	dd„Z
dd„Zdd„Zdd„Zy)Ú_OTLPHTTPClientzÛSends serialized OTLP payloads over HTTP with retry logic.

    Compression, backoff, and connection-error recovery are handled internally.
    Callers interact through the :meth:`export` and :meth:`close` methods.
    Nc	                ó¼  — || _         || _        || _        || _        |�t	        |«      ni | _        | j                  t        j                  ur?t        d„ | j
                  D «       «      s#| j                  j                  | j
                  d<   || _
        t        t        |d«      d«      | _        |�|nt        | _        d| _        t!        j"                  «       | _        y )Nc              3  óB   K  — | ]  }|j                  «       d k(  –— Œ y­w)zcontent-encodingN)r5   )Ú.0Úkeys     r   ú	<genexpr>z+_OTLPHTTPClient.__init__.<locals>.<genexpr>�   s#   è ø€ ò A
Ø25ˆC�I‰I‹KÐ-Õ-ñA
ùs   ‚zContent-Encodingr   g      ð?F)Ú
_transportÚ	_endpointÚ_timeoutÚ_compressionÚdictÚ_headersr0   r6   Úanyr+   Ú_kindÚminr#   Ú_jitterÚ_loggerÚ	_shutdownÚ	threadingÚEventÚ_shutdown_event)	ÚselfÚ	transportÚendpointÚkindÚtimeoutÚcompressionr   ÚjitterÚloggers	            r   Ú__init__z_OTLPHTTPClient.__init__q   s¾   € ð $ˆŒØ!ˆŒØˆŒØ'ˆÔØ)0Ð)<œ˜WœÀ"ˆŒØ×Ñ¤K×$4Ñ$4Ñ4¼Sñ A
Ø9=¿¹ôA
ô >
ð 15×0AÑ0A×0GÑ0GˆD�M‰MÐ,Ñ-ØˆŒ
Üœ3˜v sÓ+¨SÓ1ˆŒØ!'Ð!3‘v¼ˆŒØˆŒÜ(Ÿ™Ó0ˆÕr   c                ón   — d|z  t        j                  d| j                  z
  d| j                  z   «      z  S )Né   é   )ÚrandomÚuniformr\   )rb   Úretrys     r   Ú_compute_backoffz _OTLPHTTPClient._compute_backoff‹   s.   € Ø�%‰xœ&Ÿ.™.¨¨T¯\©\Ñ)9¸1¸t¿|¹|Ñ;KÓLÑLÐLr   c                ól  — | j                   t        j                  u rKt        «       }t	        j
                  |d¬«      5 }|j                  |«       d d d «       |j                  «       S | j                   t        j                  u rt        j                  |«      S |S # 1 sw Y   |j                  «       S xY w)NÚw)ÚfileobjÚmode)rV   r0   r8   r	   r3   ÚGzipFileÚwriteÚgetvaluer7   ÚzlibÚcompress)rb   Úserialized_dataÚbufÚgzs       r   Ú	_compressz_OTLPHTTPClient._compressŽ   sŠ   € Ø×Ñ¤× 0Ñ 0Ñ0Ü“)ˆCÜ—‘ s°Ô5ð *¸Ø—‘˜Ô)÷*à—<‘<“>Ð!Ø×Ñ¤× 3Ñ 3Ñ3Ü—=‘= Ó1Ð1ØÐ÷*à—<‘<“>Ð!ús   ¾BÂB3c                óž  — t        j                   «       |z   }| j                  j                  d| j                  | j                  ||¬«      }|j
                  �u| j                  j                  |j
                  «      rP|t        j                   «       z
  x}dkD  r4| j                  j                  d| j                  | j                  ||¬«      }|S )NÚPOST)r   Údatarf   r   )r)   rS   ÚrequestrT   rX   rI   Úis_connection_error)rb   r�   rf   Údeadliner*   Ú	remainings         r   Ú_submitz_OTLPHTTPClient._submit˜   sµ   € Ü—9‘9“; Ñ(ˆØ—‘×(Ñ(ØØ�N‰NØ—M‘MØØð )ó 
ˆð �L‰LÐ$Ø—‘×3Ñ3°F·L±LÔAØ&¬¯©«Ñ4Ð4�¸Ò9ð
 —_‘_×,Ñ,ØØ—‘ØŸ™ØØ!ð -ó ˆFð ˆr   c           	     óÂ  — | j                  |«      }t        j                  «       | j                  z   }t        t        «      D �]ò  }| j                  |«      }d}d}	 | j                  |t        |t        j                  «       z
  d«      «      }|j                  }|j                  }|�d|cxk  rdk  rn nt        d||d«      c S |j                  }|rt        |«      n$| j                  j                  |j                  «      }	|	r|�t        |«      x}
�|
}	 |	s@| j"                  j                  d| j$                  ||xs |xs d«       t        d|||«      c S |d	z   t        k(  s4||t        j                  «       z
  kD  s| j&                  j)                  «       r6| j"                  j                  d
| j$                  «       t        d|||«      c S | j"                  j+                  d|xs || j$                  |«       | j&                  j-                  |«      }|s�ŒØ| j"                  j+                  d«        n t        dddd«      S # t         $ r}|}d}	Y d}~�ŒBd}~ww xY w)zÎExport a serialized payload, retrying on transient failures.

        :param data: Serialized bytes to send.
        :returns: An :class:`ExportResult` indicating success or the reason for failure.
        Nr   éÈ   i�  TFz.Failed to export %s batch code: %s, reason: %sÚunknownrm   zBFailed to export %s batch due to timeout, max retries or shutdown.zKTransient error %s encountered while exporting %s batch, retrying in %.2fs.z%Shutdown in progress, aborting retry.)r~   r)   rU   Úranger   rq   r†   r#   r   rH   rD   rI   r   rS   rƒ   r.   r   r]   rZ   ra   Úis_setÚwarningÚwait)rb   r�   r„   rp   Úbackoffr   rH   r*   Úexport_errorÚ	retryableÚretry_afterrI   Úshutdowns                r   Úexportz_OTLPHTTPClient.export²   s/  € ð �~‰~˜dÓ#ˆÜ—9‘9“; §¡Ñ.ˆäœ<Ó(ó 2	ˆEØ×+Ñ+¨EÓ2ˆGØ&*ˆKØ!%ˆFð*ØŸ™ d¬C°¼4¿9¹9»;Ñ0FÈÓ,LÓM�ð %×0Ñ0�ØŸ™�ØÐ*¨s°kÔ/GÀCÕ/GÜ(¨¨{¸FÀDÓIÒIØ%Ÿ|™|�á2=”M +Ô.À4Ç?Á?×CfÑCfÐgm×gsÑgsÓCtð ñ  Ð!8ÔMaÐbhÓMiÐ>i¸kÐ=vØ)‘GáØ—‘×"Ñ"ØDØ—J‘JØØÒ7˜lÒ7¨iô	ô % U¨K¸ÀÓNÒNà�q‰yœLÒ(¨G°xÄ$Ç)Á)Ã+Ñ7MÒ,NÐRV×RfÑRf×RmÑRmÔRoØ—‘×"Ñ"ØXØ—J‘Jôô % U¨K¸ÀÓNÒNà�L‰L× Ñ Ø]ØÒ&˜,Ø—
‘
Øô	ð ×+Ñ+×0Ñ0°Ó9ˆHÛØ—‘×$Ñ$Ð%LÔMÙðe2	ôh ˜U D¨$°Ó5Ð5øôU ò "Ø$�Ø!–	ûð"ús   Á1IÉ	IÉIÉIc                óÊ   — | j                   r| j                  j                  d«       yd| _         | j                  j	                  «        | j
                  j                  «        y)zShutdown the client.z+OTLP client already shutdown, ignoring callNT)r^   r]   rŒ   ra   ÚsetrS   Úclose)rb   s    r   r’   z_OTLPHTTPClient.shutdownñ   sH   € à�>Š>Ø�L‰L× Ñ Ð!NÔOØØˆŒØ×Ñ× Ñ Ô"Ø�‰×ÑÕr   )rc   r   rd   r:   re   z#Literal['spans', 'logs', 'metrics']rf   r    rg   r0   r   zMapping[str, str] | Nonerh   r    ri   zlogging.Logger | Noner;   ÚNone)rp   Úintr;   r    )r{   Úbytesr;   r™   )r�   r™   rf   r    r;   r   )r�   r™   r;   rD   )r;   r—   )r<   r=   r>   rJ   r   r0   r6   r   rj   rq   r~   r†   r“   r’   r@   r   r   rM   rM   j   s–   „ ñð *Ø#.×#3Ñ#3Ø,0Ø'Ø(,ð1à$ð1ð ð1ð 2ð	1ð
 ð1ð !ð1ð *ð1ð ð1ð &ð1ð 
ó1ó4Móóó4=6ô~ r   rM   )r   rG   r;   rE   )r*   r   r;   zfloat | None)1Ú
__future__r   Úenumr3   Úloggingr!   rn   r_   r)   ry   Úcollections.abcr   Údataclassesr   Údatetimer   Úemail.utilsr   Úhttpr   Úior	   Útypingr
   r   r   Ú+opentelemetry.exporter.http.transport._baser   r   Ú	getLoggerr<   r]   r   rK   r   r   Ú	frozensetÚTOO_MANY_REQUESTSr+   ÚBAD_GATEWAYÚSERVICE_UNAVAILABLEÚGATEWAY_TIMEOUTr   r   r.   ÚEnumr0   rD   rM   r@   r   r   ú<module>r¬      s  ðö #ã Û Û Û Û Û Û Û Ý #Ý !Ý Ý -Ý Ý ß 0Ñ 0á÷ð
 ˆ'×
Ñ
˜HÓ
%€à€ˆjÓ Ø!%Ð �,Ó %Ø #€�Ó #ñ 2;à×$Ñ$×*Ñ*Ø×Ñ×$Ñ$Ø×&Ñ&×,Ñ,Ø×"Ñ"×(Ñ(ð	ó2Ð Ð.ó ó2ó8ô:v�$—)‘)ô vñ$ �˜dÔ#÷ð ó $ð÷N ò N r   