
    6Ii                        S SK r S SKrS SKJr  S SKJrJr  S SKJrJ	r	  S SK
Jr  S SKJr  S SKJr  S SKJr  S SKJr  S S	KJr  S S
KJr  S SKJr  S SKJr  S SKJr  S SKJ r   S SK!J"r"  S SK#J$r$  S SK%J&r&  S SK'J(r(  S SK)J*r*  S r+S\4S jr,g)    N)urlparse)FastAPIRequest)metricstrace)CloudTraceSpanExporter)OTLPMetricExporter)OTLPSpanExporter)FastAPIInstrumentor)LoggingInstrumentor)RequestsInstrumentor)set_global_textmap)CloudTraceFormatPropagator)MeterProvider)PeriodicExportingMetricReader)Resource)TracerProvider)BatchSpanProcessor)ResourceAttributes)configc                     [        U 5      nUR                  S:X  a  [        $ UR                  S:X  a  [        $ [	        SUR                   35      e)NhttpgrpczUnsupported protocol: )r   schemeHTTPOTLPSpanExporterGRPCOTLPSpanExporter
ValueError)endpoint
parsed_urls     </venv/lib/python3.13/site-packages/keep/api/observability.pyget_protocol_from_endpointr!      sN    (#JF"##			f	$##1*2C2C1DEFF    appc                 R   [         R                  " [        5      n[        R                  R                  S[        R                  R                  SS5      5      n[        R                  R                  S[        R                  R                  SS5      5      n[        R                  R                  SS 5      n[        R                  R                  SS 5      n[        R                  R                  S	S 5      n[        S
S[        S9n[        R                  R                  SS5      n[        R                  " [        R                  U[        R                  S[        R                  " 5        30S9n	[        U	S9n
U(       a  UR                  SU 35        U(       a?  UR                  SU 35        [!        U5      n[#        U" US95      nU
R%                  U5        UR'                  5       S:X  aM  U(       aF  UR                  SU 35        [)        [+        US95      n[-        X/S9n[.        R0                  " U5        U(       a  UR                  SU 35        U(       a4  UR                  S5        [#        [3        SS95      nU
R%                  U5        [4        R6                  " U
5        [9        5       n[;        U5         " S S5      nU R=                  S5      " U" 5       5        [>        R@                  " U 5        [C        5       RE                  5         [G        5       RE                  5         g )NOTEL_SERVICE_NAMESERVICE_NAMEzkeep-apiOTEL_EXPORTER_OTLP_ENDPOINTOTLP_ENDPOINTF"OTEL_EXPORTER_OTLP_TRACES_ENDPOINT OTEL_EXPORTER_OTLP_LOGS_ENDPOINT#OTEL_EXPORTER_OTLP_METRICS_ENDPOINTCLOUD_TRACE_ENABLED)defaultcastMETRIC_OTEL_ENABLED zworker-)
attributes)resourcezOTLP endpoint set to zOTLP Traces endpoint set to )r   truez.Metrics enabled. OTLP Metrics endpoint set to )r2   metric_readerszOTLP Logs endpoint set to zCloud Trace exporter enabled.z	service.*)resource_regexc                   "    \ rS rSrS\4S jrSrg) setup.<locals>.TraceIDMiddlewaref   requestc                    #    [         R                  " 5       nUR                  5       R                  n[	        US5      UR
                  l        U" U5      I S h  vN nU$  N7f)N032x)r   get_current_spanget_span_contexttrace_idformatstate)selfr9   	call_nexttracerr>   responses         r    __call__)setup.<locals>.TraceIDMiddleware.__call__g   sQ     ++-F..099H%+Hf%=GMM"&w//HO 0s   AA!AA! N)__name__
__module____qualname____firstlineno__r   rE   __static_attributes__rG   r"   r    TraceIDMiddlewarer7   f   s    	' 	r"   rM   r   )$logging	getLoggerrH   osenvirongetr   boolr   creater   r&   SERVICE_INSTANCE_IDgetpidr   infor!   r   add_span_processorlowerr   r	   r   r   set_meter_providerr   r   set_tracer_providerr   r   
middlewarer   instrument_appr   
instrumentr   )r#   loggerservice_nameotlp_collector_endpointotlp_traces_endpointotlp_logs_endpointotlp_metrics_endpointenable_cloud_trace_exportermetrics_enabledr2   providerSpanExporter	processorreadermetric_provider
propagatorrM   s                    r    setuprm   (   s   x(F::>>RZZ^^NJGL !jjnn%rzz~~ou'M ::>>*NPTU(JDQJJNN+PRVW"(u4# jjnn%:B?O++\22gbiik]4K
H x0H+,C+DEFKK67K6LMN56JKL*<AU+VWI''	2  "f,1FKK@AV@WX 3",ABF ,XhWO&&7KK45G4HIJ"34&"+>
	 	##I.	h'+-Jz"  NN6,./&&s+%%'$$&r"   )-rN   rP   urllib.parser   fastapir   r   opentelemetryr   r   "opentelemetry.exporter.cloud_tracer   6opentelemetry.exporter.otlp.proto.grpc.metric_exporterr	   5opentelemetry.exporter.otlp.proto.grpc.trace_exporterr
   r   5opentelemetry.exporter.otlp.proto.http.trace_exporterr   %opentelemetry.instrumentation.fastapir   %opentelemetry.instrumentation.loggingr   &opentelemetry.instrumentation.requestsr   opentelemetry.propagater   0opentelemetry.propagators.cloud_trace_propagatorr   opentelemetry.sdk.metricsr    opentelemetry.sdk.metrics.exportr   opentelemetry.sdk.resourcesr   opentelemetry.sdk.tracer   opentelemetry.sdk.trace.exportr   opentelemetry.semconv.resourcer   keep.api.core.configr   r!   rm   rG   r"   r    <module>r      s_     	 ! $ ( E U F E G 6 W 3 J 0 2 = = 'GK'w K'r"   