
    ?eAi                     D   d dl Z d dl 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y)    N)*)uwsgi_restartsTzH/5 * * * * H      )
system_job	only_onceschedulesoft_time_limitpriorityc                  6    t        j                  dgdd       y )Nz/opt/eva-app/bin/mail2lead.shTd   checktimeout
subprocessrun     ./common/deploy_jobs.py	mail2leadr      s     NN34D#Nr   zH(30-40) 22 * * * Hi`	     c                  8    t        j                  ddgdd       y )N/opt/bin/pg_backupbackupTi  r   r   r   r   r   	backup_bdr      s     NN((34Nr   zH(10-15) 22 * * * H,  c                  8    t        j                  ddgdd       y )Nr   cleanupTx   r   r   r   r   r   backup_bd_cleanr!      s     NN()4D#Nr   z@daily)r   r   r	   c                  6    t        j                  dgdd       y )Nz/opt/bin/debug_manager.shTr    r   r   r   r   r   debug_disablerr#      s    
 NN/0cJr   zH 2 */10 * * Hi     c                  8    t        j                  ddgdd       y )Nz/opt/bin/_nginx_configurez--certbot-renewTr   r   r   r   r   r   certbot_renewr&   %   s     NN/1BC4Y\]r   z@hourlyc                     ddl m }  	 t        j                  j                  j                  j
                  j                  d       t        j                  j                  j                  j
                  j                  d       t        j                  j                  j                  j
                  j                  d      }t        j                  j                  j                  j
                  j                  d       |rnt        j                  dt        |       d	       t        |d
 d      D ]:  ^}}}}}t        j                  d|dz   d| j                  |       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"                  j%                         }	t        j                  d|	        y # t        $ r#}t        j                  d|        Y d }~d }~ww xY w# t        $ r#}t        j                  d| d        Y d }~y 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""223]^ ''++


$
$
4
45E
FCGGKK..?
	-c#hZw?@)/QU)V 	r%Ar2uvGG*2d7)6(:P:PQS:T9UU^_e^ffhinhopq	r
Kk(,f.C.CI.Nv.V(,f.C.CI.Nv.V(,c7!< /3BtZ^	`
 MM'')		>ykJK#  e	  `  ab  `c  d  	e  	ee$  K	DQCqIJJKs1   A:G+ -A=H +	H4HH	I#IIuS   Мониторинг частых рестартов uwsgi eva-app воркеров)r   descriptionr   r	   c                     ddl m}  ddl}ddl}t        j
                  j                  j                  }| j                         }|j                         }t        j                  ||      }|j                  j                  |      }t        |xs d      }t        |j                        }	|	dz  }
||
k  ryd| d| d}t         j#                  |       |j                  j%                  |       y)	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     ww{{##H JJLE!!#H

'
'UX
NC""3'I).q!G &MAE% ^^e]f  gI  JR  IS S@ 	A 
  NN#r   c                  4    t        j                  dgd       y )Nz/etc/cron.daily/logrotateT)r   r   r   r   r   	logrotateri   x   s    NN/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O nO TT<QcgrstO uO TT<QcfqrsO tO TTHEK FK TT<L^almn^ o^ TTIF K G KF T  0E  QU  `i  j# j#N TTHE> F>r   