o
    i=                     @   s  d dl Z d dlZd dlmZ d dlmZ d dlmZmZm	Z	m
Z
mZmZmZmZmZ d dlmZmZmZmZmZ d dlmZmZ d dlmZ d dlmZmZmZmZ d d	l m!Z! 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/m0Z0 dZ1dZ2eee	ee
eegZ3eeee!e#e$gZ4e	ee
eeeeegZ5eeeee!e)gZ6e	ee
eegZ7ee)gZ8dZ9G dd deZ:G dd deZ;de;fddZ<de;fddZ=G dd dZ>e;j?fddZ@e;j?fdd ZAd!d" ZBd#d$ ZCd%d& ZDd'd( ZEd)d* ZFd+d, ZGd-d. ZHd/d0 ZId1d2 ZJd3d4 ZKd5d6 ZLd7d8 ZMd9d: ZNd;d< ZOd=d> ZPd?d@ ZQdAdB ZRdCdD ZSdEdF ZTdGe;j?fdHeUdIeVdJeWdKeXdLe;f
dMdNZYde;dOeWfdPdQZZdS )R    N)Enum)http_status_to_status_code)	HTTP_FLAVOR	HTTP_HOSTHTTP_METHODHTTP_SCHEMEHTTP_SERVER_NAMEHTTP_STATUS_CODEHTTP_TARGETHTTP_URLHTTP_USER_AGENT)NET_HOST_NAMENET_HOST_PORTNET_PEER_IPNET_PEER_NAMENET_PEER_PORT)CLIENT_ADDRESSCLIENT_PORT)
ERROR_TYPE)HTTP_REQUEST_METHODHTTP_REQUEST_METHOD_ORIGINALHTTP_RESPONSE_STATUS_CODE
HTTP_ROUTE)NETWORK_PROTOCOL_VERSION)SERVER_ADDRESSSERVER_PORT)URL_FULLURL_PATH	URL_QUERY
URL_SCHEME)USER_AGENT_ORIGINAL)Schemas)Status
StatusCode)g        g      @g      $@g      9@g      I@g     R@g      Y@g     @o@g     @@g     p@g     @@g     @g     @g     L@g     @)g{Gzt?g{Gz?g?g?g333333?g?g      ?g      ?g      ?   g      @   g      @
   OTEL_SEMCONV_STABILITY_OPT_INc                   @   s   e Zd ZdZdZdZdS )!_OpenTelemetryStabilitySignalTypehttpdatabasegen_aiN)__name__
__module____qualname__HTTPDATABASEGEN_AI r2   r2   l/var/www/html/karishye-ai-python/venv/lib/python3.10/site-packages/opentelemetry/instrumentation/_semconv.pyr(      s    r(   c                   @   s$   e Zd ZdZdZdZdZdZdZdS )_StabilityModedefaultr)   zhttp/dupr*   zdatabase/dupgen_ai_latest_experimentalN)	r,   r-   r.   DEFAULTr/   HTTP_DUPr0   DATABASE_DUPGEN_AI_LATEST_EXPERIMENTALr2   r2   r2   r3   r4      s    r4   modec                 C   s
   | t jkS N)r4   r7   r;   r2   r2   r3   _report_new   s   
r>   c                 C   s   | t jt jfvS r<   )r4   r/   r0   r=   r2   r2   r3   _report_old   s   r?   c                   @   sJ   e Zd ZdZe Zi Zedd Z	e
dd Zededefdd	Zd
S ))_OpenTelemetrySemanticConventionStabilityFc                 C   s   | j l | jr	 W d    d S tjt}|s3tjtj	tj
tj	tjtj	i| _d| _	 W d    d S dd |dD }| |tjtj| jtj< | |tj	tj| jtj< | |tj
tj| jtj
< d| _W d    d S 1 srw   Y  d S )NTc                 S   s   g | ]}|  qS r2   )strip).0sr2   r2   r3   
<listcomp>   s    zI_OpenTelemetrySemanticConventionStability._initialize.<locals>.<listcomp>,)_lock_initializedosenvirongetr'   r(   r/   r4   r7   r0   r1   &_OTEL_SEMCONV_STABILITY_SIGNAL_MAPPINGsplit_filter_moder8   r:   r9   )clsopt_inopt_in_listr2   r2   r3   _initialize   sL   

"z5_OpenTelemetrySemanticConventionStability._initializec                 C   s"   |j | v r|S |j | v r|S tjS r<   )valuer4   r7   )rP   stable_modedup_moder2   r2   r3   rM      s   

z6_OpenTelemetrySemanticConventionStability._filter_modesignal_typereturnc                 C   s   | j |tjS r<   )rK   rJ   r4   r7   )rN   rU   r2   r2   r3   (_get_opentelemetry_stability_opt_in_mode   s   zR_OpenTelemetrySemanticConventionStability._get_opentelemetry_stability_opt_in_modeN)r,   r-   r.   rG   	threadingLockrF   rK   classmethodrQ   staticmethodrM   r(   r4   rW   r2   r2   r2   r3   r@      s    
,
r@   c                 C   s<   i }|t jkr	|n|}|  D ]\}}||v r|||< q|S r<   )r4   r/   items)attrs	old_attrs	new_attrssem_conv_opt_in_modefiltered_attrsallowed_attributeskeyvalr2   r2   r3   _filter_semconv_duration_attrs  s   re   c                 C   s\   i }t |r|  D ]\}}||v r|||< q
t|r,|  D ]\}}||v r+|||< q|S r<   )r?   r\   r>   )r]   r^   r_   r`   ra   rc   rd   r2   r2   r3   )_filter_semconv_active_request_count_attr  s   rf   c                 C   s   |r|| |< d S d S r<   r2   resultrc   rR   r2   r2   r3   set_string_attribute(  s   ri   c                 C   s0   |rz	t || |< W d S  ty   Y d S w d S r<   )int
ValueErrorrg   r2   r2   r3   set_int_attribute-  s   rl   c                 C   s\   |  }|  }||krt|rt| t| t|r t| t| t|r,t| t| d S d S r<   )rA   r>   ri   r   r?   r   r   )rh   original
normalizedr`   r2   r2   r3   _set_http_method5  s   ro   c                 C   0   t |r
t| t| t|rt| t| d S d S r<   )r?   rl   r	   r>   r   )rh   coder`   r2   r2   r3   _set_http_status_codeC  
   rr   c                 C   rp   r<   )r?   ri   r   r>   r   )rh   urlr`   r2   r2   r3   _set_http_urlJ  rs   ru   c                 C   rp   r<   )r?   ri   r   r>   r   )rh   schemer`   r2   r2   r3   _set_http_schemeQ  rs   rw   c                 C   rp   r<   r?   ri   r   r>   r   rh   versionr`   r2   r2   r3   _set_http_flavor_versionX  rs   r{   c                 C   rp   r<   )r?   ri   r   r>   r    )rh   
user_agentr`   r2   r2   r3   _set_http_user_agent_  rs   r}   c                 C   rp   r<   )r?   ri   r   r>   r   rh   hostr`   r2   r2   r3   _set_http_host_clienti  rs   r   c                 C   rp   r<   )r?   ri   r   r>   r   )rh   	peer_namer`   r2   r2   r3   _set_http_net_peer_name_clientp  rs   r   c                 C   rp   r<   )r?   rl   r   r>   r   rh   portr`   r2   r2   r3   _set_http_peer_port_clientw  rs   r   c                 C   rp   r<   rx   ry   r2   r2   r3   "_set_http_network_protocol_version~  rs   r   c                 C   rp   r<   )r?   ri   r   r>   r   r~   r2   r2   r3   _set_http_net_host  rs   r   c                 C   rp   r<   )r?   rl   r   r>   r   r   r2   r2   r3   _set_http_net_host_port  rs   r   c                 C   sH   t |r
t| t| t|r |rt| t| |r"t| t| d S d S d S r<   )r?   ri   r
   r>   r   r   )rh   targetpathqueryr`   r2   r2   r3   _set_http_target  s   r   c                 C   >   t |r
t| t| t|r| tst| t| d S d S d S r<   )r?   ri   r   r>   rJ   r   r~   r2   r2   r3   _set_http_host_server  s   
r   c                 C   r   r<   )r?   ri   r   r>   rJ   r   )rh   ipr`   r2   r2   r3   _set_http_peer_ip_server  s   
r   c                 C   rp   r<   )r?   rl   r   r>   r   r   r2   r2   r3   _set_http_peer_port_server  rs   r   c                 C   rp   r<   )r?   ri   r   r>   r   )rh   namer`   r2   r2   r3   _set_http_net_peer_name_server  rs   r   Tmetrics_attributesstatus_codestatus_code_strserver_spanr`   c                 C   s   |dk r)t |r||t< |  r't |r| t| | ttjd|  d S d S t||d}t	|rA|  r=| t
| ||t
< t |rf|  rO| t| ||t< |tjkrf|  rb| t| ||t< |  rs| t| d S d S )Nr   zNon-integer HTTP status: )r   )r>   r   is_recordingset_attribute
set_statusr"   r#   ERRORr   r?   r	   r   )spanr   r   r   r   r`   statusr2   r2   r3   _set_status  s>   

r   rV   c                 C   s   | t ju rdS tjjS )Nz'https://opentelemetry.io/schemas/1.11.0)r4   r7   r!   V1_21_0rR   r=   r2   r2   r3   _get_schema_url  s   
r   )[rH   rX   enumr   #opentelemetry.instrumentation.utilsr   <opentelemetry.semconv._incubating.attributes.http_attributesr   r   r   r   r   r	   r
   r   r   ;opentelemetry.semconv._incubating.attributes.net_attributesr   r   r   r   r   2opentelemetry.semconv.attributes.client_attributesr   r   1opentelemetry.semconv.attributes.error_attributesr   0opentelemetry.semconv.attributes.http_attributesr   r   r   r   3opentelemetry.semconv.attributes.network_attributesr   2opentelemetry.semconv.attributes.server_attributesr   r   /opentelemetry.semconv.attributes.url_attributesr   r   r   r   6opentelemetry.semconv.attributes.user_agent_attributesr    opentelemetry.semconv.schemasr!   opentelemetry.trace.statusr"   r#   #HTTP_DURATION_HISTOGRAM_BUCKETS_OLD#HTTP_DURATION_HISTOGRAM_BUCKETS_NEW_client_duration_attrs_old_client_duration_attrs_new_server_duration_attrs_old_server_duration_attrs_new'_server_active_requests_count_attrs_old'_server_active_requests_count_attrs_newr'   r(   r4   r>   r?   r@   r7   re   rf   ri   rl   ro   rr   ru   rw   r{   r}   r   r   r   r   r   r   r   r   r   r   r   dictrj   strboolr   r   r2   r2   r2   r3   <module>   s   ,
		M




	
*