
    !<i              	       x   U d dl mZ d dlmZ d dlmZmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZmZ d dlmZ  ej        d	          Zej        ed
<   e                    ddd          Ze                    ddd          Ze                    ddd          Ze                    ddd          Ze                    ddd          Ze                    ddd          Ze                    ddd          Ze                    ddd          Ze                    ddd          Ze                    dd d          Z e                    d!d"d          Z!e                    d#d$d          Z"e#                    d%d&d'          Z$e#                    d(d)d'          Z%e&                    d*d+d          Z'e                    d,d-d          Z(e&                    d.d/d          Z)e*                    d0d1d          Z+e*                    d2d3d          Z,e*                    d4d5d          Z-e.e/e/f         Z0 G d6 d7ee0                   Z1 G d8 d9ee0                   Z2 e1            Z3e1ed:<    e2            Z4e2ed;<   e	 dDd>e5d?e6d=z  d@edA         fdB            Z7e	 dDd>e5d?e6d=z  d@edA         fdC            Z8d=S )E    )contextmanager)Thread)	Generatorcast)metrics)PrometheusMetricReader)set_meter_provider)GetterSetter)MeterProviderdocketmeterdocket_tasks_addedz"How many tasks added to the docket1)descriptionunitdocket_tasks_replacedz%How many tasks replaced on the docketdocket_tasks_scheduledz.How many tasks added or replaced on the docketdocket_tasks_cancelledz(How many tasks cancelled from the docketdocket_tasks_startedzHow many tasks starteddocket_tasks_redeliveredz@How many tasks started that were redelivered from another workerdocket_tasks_strickenz0How many tasks have been stricken from executingdocket_tasks_completedz/How many tasks that have completed in any statedocket_tasks_failedzHow many tasks that have faileddocket_tasks_succeededz"How many tasks that have succeededdocket_tasks_retriedz%How many tasks that have been retrieddocket_tasks_perpetuatedz.How many tasks that have been self-perpetuateddocket_task_durationzHow long tasks take to completesdocket_task_punctualityz*How close a task was to its scheduled timedocket_tasks_runningz)How many tasks that are currently runningdocket_redis_disruptionsz6How many times the Redis connection has been disrupteddocket_strikes_in_effectz(How many strikes are currently in effectdocket_queue_depthz)How many tasks are due to be executed nowdocket_schedule_depthz9How many tasks are scheduled to be executed in the futuredocket_cache_sizezSize of internal docket cachesc                   P    e Zd Zdededee         dz  fdZdedee         fdZdS )MessageGettercarrierkeyreturnNc                     |                     |                                d           }|d S |                                gS N)getencodedecode)selfr)   r*   vals       /Users/kimhansen/Desktop/03 Workspace/ceo-agents/chl-effectiveness/mcp-servers/whoop/.venv/lib/python3.11/site-packages/docket/instrumentation.pyr.   zMessageGetter.get   s7    kk#**,,--;4

~    c                 >    d |                                 D             S )Nc                 6    g | ]}|                                 S  )r0   ).0r*   s     r3   
<listcomp>z&MessageGetter.keys.<locals>.<listcomp>   s     777

777r4   )keys)r1   r)   s     r3   r:   zMessageGetter.keys   s    777777r4   )__name__
__module____qualname__Messagestrlistr.   r:   r7   r4   r3   r(   r(      sl        7  cT1A    8G 8S	 8 8 8 8 8 8r4   r(   c                   &    e Zd ZdedededdfdZdS )MessageSetterr)   r*   valuer+   Nc                 X    |                                 ||                                 <   d S r-   )r/   )r1   r)   r*   rC   s       r3   setzMessageSetter.set   s$     !&

r4   )r;   r<   r=   r>   r?   rE   r7   r4   r3   rB   rB      sN        // / 	/
 
/ / / / / /r4   rB   message_gettermessage_setter0.0.0.0Nhostportr+   )NNNc              #      K   |d V  d S ddl m}m}  G d d|          } || |f|          }|5  t          |j        d                                           d V  d d d            d S # 1 swxY w Y   d S )Nr   )BaseHTTPRequestHandler
HTTPServerc                   (    e Zd Zd ZdededdfdZdS ).healthcheck_server.<locals>.HealthcheckHandlerc                     |                      d           |                     dd           |                                  | j                            d           d S )N   zContent-typez
text/plains   OK)send_responsesend_headerend_headerswfilewrite)r1   s    r3   do_GETz5healthcheck_server.<locals>.HealthcheckHandler.do_GET   sZ    s###^\:::JU#####r4   formatargsr+   Nc                     d S r-   r7   )r1   rX   rY   s      r3   log_messagez:healthcheck_server.<locals>.HealthcheckHandler.log_message   s    Dr4   )r;   r<   r=   rW   r?   objectr[   r7   r4   r3   HealthcheckHandlerrO      sL        	$ 	$ 	$	c 	& 	T 	 	 	 	 	 	r4   r]   Ttargetdaemon)http.serverrL   rM   r   serve_foreverstart)rI   rJ   rL   rM   r]   servers         r3   healthcheck_serverre      s      |>>>>>>>>	 	 	 	 	3 	 	 	 Zt&899F	  f*4888>>@@@                 s   -A++A/2A/c           
   #     K   |d V  d S dd l }ddlm} |j        dk    rddlm} n|}ddlm} ddlm	}m
}m}m}	 t          t          t                      g                      || |t!          | |	|                    ||	          }
|
5  t#          |
j        d
                                           d V  d d d            d S # 1 swxY w Y   d S )Nr   )Any)      )WSGIApplication)REGISTRY)ThreadingWSGIServer_SilentHandlermake_servermake_wsgi_app)metric_readers)registry)handler_classTr^   )systypingrg   version_infowsgiref.typesrj   prometheus_clientrk   prometheus_client.expositionrl   rm   rn   ro   r	   r   r   r   r   rb   rc   )rI   rJ   rs   rg   rj   rk   rl   rm   rn   ro   rd   s              r3   metrics_serverry      s      |JJJ 7""1111111******            }5K5M5M4NOOOPPP[_mmX>>>??$  F 
  f*4888>>@@@                 s   -C		CC)rH   N)9
contextlibr   	threadingr   rt   r   r   opentelemetryr   !opentelemetry.exporter.prometheusr   opentelemetry.metricsr	   !opentelemetry.propagators.textmapr
   r   opentelemetry.sdk.metricsr   	get_meterr   Meter__annotations__create_counterTASKS_ADDEDTASKS_REPLACEDTASKS_SCHEDULEDTASKS_CANCELLEDTASKS_STARTEDTASKS_REDELIVEREDTASKS_STRICKENTASKS_COMPLETEDTASKS_FAILEDTASKS_SUCCEEDEDTASKS_RETRIEDTASKS_PERPETUATEDcreate_histogramTASK_DURATIONTASK_PUNCTUALITYcreate_up_down_counterTASKS_RUNNINGREDIS_DISRUPTIONSSTRIKES_IN_EFFECTcreate_gaugeQUEUE_DEPTHSCHEDULE_DEPTH
CACHE_SIZEdictbytesr>   r(   rB   rF   rG   r?   intre   ry   r7   r4   r3   <module>r      s   % % % % % % %       " " " " " " " " ! ! ! ! ! ! D D D D D D 4 4 4 4 4 4 < < < < < < < < 3 3 3 3 3 3(w(22w} 2 2 2""4	 #   %%7	 &   &&@	 '   &&:	 '   $$(	 %   ((R	 )    %%B	 &   &&A	 '   ##1	 $   &&4	 '   $$7	 %   ((@	 )    &&1	 '   ))<	 *    ,,;	 -   ((H	 )    00:	 1      ;	 !  
 ##K	 $   0	    
 ue|
8 8 8 8 8F7O 8 8 8/ / / / /F7O / / / !. / / / - / / / .2 
!$t    6 .2$ $
$!$t$ $ $ $ $ $ $r4   