
    hMAi                        d dl Z d dlT d dlmZ  eddddd          d	             Z eddd
dd          d             Z eddddd          d             Z eddd          d             Z eddddd          d             Z	 eddd          d             Z
 edddd          d             Z eddd          d             ZdS )    N)*)uwsgi_restartsTzH/5 * * * * H      )
system_job	only_onceschedulesoft_time_limitpriorityc                  6    t          j        dgdd           d S )Nz/opt/eva-app/bin/mail2lead.shTd   checktimeout
subprocessrun     ./common/deploy_jobs.py	mail2leadr      s%     N34D#NNNNNNr   zH(30-40) 22 * * * Hi`	     c                  8    t          j        ddgdd           d S )N/opt/bin/pg_backupbackupTi  r   r   r   r   r   	backup_bdr      s'     N((34NNNNNNr   zH(10-15) 22 * * * H,  c                  8    t          j        ddgdd           d S )Nr   cleanupTx   r   r   r   r   r   backup_bd_cleanr!      s'     N()4D#NNNNNNr   z@daily)r   r   r	   c                  6    t          j        dgdd           d S )Nz/opt/bin/debug_manager.shTr    r   r   r   r   r   debug_disablerr#      s%    
 N/0cJJJJJJr   zH 2 */10 * * Hi     c                  8    t          j        ddgdd           d S )Nz/opt/bin/_nginx_configurez--certbot-renewTr   r   r   r   r   r   certbot_renewr&   %   s)     N/1BC4Y\]]]]]]r   z@hourlyc                  l   ddl m }  	 t          j        j        j        j                            d           t          j        j        j        j                            d           n4# t          $ r'}t          	                    d|            Y d }~nd }~ww xY wt          j        j        j        j                            d          }t          j        j        j        j                            d           |rt          	                    dt          |           d	           t          |d
 d          D ]C^}}}}}t          	                    d|dz   d|                     |           d| d|            D	 t          j        dddt          j        d         d         dt          j        d         d         dddg	dddd          }|j                                        }	t          	                    d|	            d S # t          $ r)}t          	                    d| d            Y d }~d S d }~ww xY w)!Nr   )datetimezCONFIG SET slowlog-max-len 1208z(CONFIG SET slowlog-log-slower-than 10000u   WARNING redis_slowlog: не смогли установить настройки slowlog, могут не собираться данные: zSLOWLOG GET -1zSLOWLOG RESETz===== PROF: redis_slowlog (z) =====c                     | d         S )Nr   r   )is    r   <lambda>zredis_slowlog.<locals>.<lambda>@   s
    1Q4 r   T)keyreversezPROF: redis_slowlog i  zms at z	 (client z) z	redis-cliz	--latencyz-hdefaulthostz-pportz-i5z--raw   )r   r   capture_outputtextu,   PROF:  Latency до Redis (min, max, avg)ms u2   PROF:  Latency до Redis (min, max, avg)ms Skip ())r(   cmfappAPPREDIS_DBredisexecute_command	Exceptiongdebuglensortedfromtimestampr   r   configcache_settingsstdoutstrip)
r(   eres_tstmqueryclientlt_res	lt_stdouts
             r   redis_slowlogrO   ,   s    "!!!!!e 	"223TUUU"223]^^^^ e e e	  d  ab  d  d  	e  	e  	e  	e  	e  	e  	e  	ee '+

$
4
45E
F
FCGK..???
 r	?c#hh???@@@)/QU)V)V)V 	r 	r%Ar2uvGGp2d7pp(:P:PQS:T:Tpp_eppinppqqqq
Kk(,f.CI.Nv.V(,f.CI.Nv.V(,c7!< /3BtZ^	` ` `
 M''))		JyJJKKKKK K K K	IQIIIJJJJJJJJJKs1   AA% %
B/BB:BH   
H3
H..H3uS   Мониторинг частых рестартов uwsgi eva-app воркеров)r   descriptionr   r	   c                     ddl m}  ddl}ddl}t          j        j        j        }|                                 }|	                                }t          j        ||          }|j                            |          }t          |pd          }t          |j                  }	|	dz  }
||
k    rdS d| d| d}t                               |           |j                            |           dS )	u  
    Мониторинг частых рестартов uwsgi eva-app воркеров.

    Раз в час проверяем счётчик рестартов за сутки по ключу
    uwsgi-restart-count-YYYY-MM-DD-<hostname> и, если он больше чем
    uwsgi.numproc * 4, отправляем алерт администраторам и сбрасываем счётчик.
    r   )dateN)current_datehostname   uS   Обнаружены частые рестарты uwsgi eva-app воркеров (u"   ) за сутки на хосте u   . Если не было ручных перезапусков, возможно не оптимальная конфигурация воркеров, обратитесь в СТП.)r(   rR   socketuwsgir6   r7   r8   r9   todaygethostnamer   _get_redis_keyr:   getintnumproccmfutiladmin_alertdelete)rR   rV   rW   redis_dbrX   rT   r,   	raw_valuecounterprocess_countlimitmessages               r   uwsgi_restarts_monitorrg   P   s    MMMLLLw{#H JJLLE!!##H

'UX
N
N
NC""3''I).q!!G &&MAE%	A^e 	A 	A  JR 	A 	A 	A 
    N#r   c                  4    t          j        dgd           d S )Nz/etc/cron.daily/logrotateT)r   r   r   r   r   	logrotateri   x   s!    N/0======r   )r   cmf.includecommonr   cmf_deferred_jobr   r   r!   r#   r&   rO   rg   ri   r   r   r   <module>rm      s           ! ! ! ! ! ! TTO]`klmmmO O nmO TT<QcgrstttO O utO TT<QcfqrsssO O tsO TTHEEEK K FEK TT<L^almnnn^ ^ on^ TTIFFF K  K GF KF T  0E  QU  `i  j  j  j# # j  j#N TTHEEE> > FE> > >r   