
    ji                     x   d dl  d dlmZmZmZmZ  eddddg      Z edd	ddg      Z ed
dddg      Z eddddg      Z	 edddddg      Z
 eddddgd      Z eddddgd      Z eddddg      Z eddddg      Z eddddgd      Z eddddg      Z eddd      Z G d  d!e      Zy")#    )*)CmfMetricCounterCmfMetricGaugeCmfMetricSummaryCmfMetricRealtimeCollectorrequestsuN   Количество запросов (с момента запуска uwsgi)uwsgi	worker_id)namehelpmodule_namecustom_tagsdelta_requestsuW   Количество запросов (с момента запуска воркера)signalsu   Количество signals
exceptionsu   Количество exceptionsstatusesu   Статусыstatusrssbytes)r   r   r   r   unitvszrespawn_countu<   Количество перезапусков воркераtxzTransmitted sizeavg_rtzAverage response timemicrosecondsapp_startup_timeworkersu%   Количество воркеров)r   r   r   c                   (    e Zd ZdZdZdZed        Zy)CmfUwsgiStatCollector      c                  n   dd l } 	 | j                         }i }|D ];  }|d   }t        j	                  |d   |       t
        j	                  |d   |       t        j	                  |d   |       t        j	                  |d   |       t        j	                  |d   |       t        j	                  |d	   |       t        j	                  |d
   |       t        j	                  |d   |       t        j	                  |d   |       t        j	                  |d   d   d   |       |d   j                         }||vrd||<   ||xx   dz  cc<   > |j                         D ]  \  }}t         j	                  ||        t        j	                  t#        |             y # t        $ r Y y w xY w)Nr   idr   )r
   r   r   r   r   r   r   r   r   appsstartup_timer   r!   )r
   r   )r	   r   	NameErrorr   writer   r   r   r   r   r   r   r   r   decodeitemsr   len)r	   worker_statsstatuses_dictworker_statr
   r   status_counts          ./cmf/metrics/uwsgi_metrics.pyrunzCmfUwsgiStatCollector.runb   s   	 ==?L ' 	'K#D)INN;z2iNH  -=!>) TMM+i0IMF[6)LIIk%(II>IIk%(II>O <	RHH[&)H<LLX.)LD"";v#6q#9.#IU^"_ *113F]*()f%&!Q&!!	'$ %2$7$7$9 	M FLNN<9VNL	M 	c,'(3  		s   F( (	F43F4N)__name__
__module____qualname__interval_minstart_delay_hard_minutesstart_delay_soft_minutesstaticmethodr0        r/   r   r   ]   s%    L  ) )r9   r   N)cmf.includecmf.util.metricsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r8   r9   r/   <module>r<      s[    k k 		Y	 "		b	 		'	 		*	
 		h'	 			 			 !		G	 			 
		 	
 "			  		0#)6 #)r9   