U
    ?eAi                     @   s   d dl Z d dlT d dlmZ eddddddd	d
 Zedddddddd Zedddddddd Zedddddd Zedddddddd Z	edddddd Z
edd ddd!d"d# Zeddddd$d% ZdS )&    N)*)uwsgi_restartsTzH/5 * * * * H      )
system_job	only_oncescheduleZsoft_time_limitpriorityc                   C   s   t jdgddd d S )Nz/opt/eva-app/bin/mail2lead.shTd   checktimeout
subprocessrun r   r   ./common/deploy_jobs.py	mail2lead   s    r   zH(30-40) 22 * * * Hi`	     c                   C   s   t jddgddd d S )N/opt/bin/pg_backupZbackupTi  r   r   r   r   r   r   	backup_bd   s    r   zH(10-15) 22 * * * H,  c                   C   s   t jddgddd d S )Nr   ZcleanupTx   r   r   r   r   r   r   backup_bd_clean   s    r   z@daily)r   r   r   c                   C   s   t jdgddd d S )Nz/opt/bin/debug_manager.shTr   r   r   r   r   r   r   debug_disabler   s    r   zH 2 */10 * * Hi     c                   C   s   t jddgddd d S )Nz/opt/bin/_nginx_configurez--certbot-renewTr   r   r   r   r   r   r   certbot_renew%   s    r   z@hourlyc            
      C   s  ddl m }  z(tjjjjd tjjjjd W n2 tk
rf } zt	d|  W 5 d }~X Y nX tjjjjd}tjjjjd |rt	dt
| d	 t|d
d ddD ]:^}}}}}t	d|d  d| | d| d|  qzXtjdddtjd d dtjd d dddg	ddddd}|j }	t	d|	  W n6 tk
r } zt	d | d! W 5 d }~X Y nX d S )"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                 S   s   | d S )Nr   r   )ir   r   r   <lambda>@       zredis_slowlog.<locals>.<lambda>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   Z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redisZexecute_command	ExceptiongdebuglensortedZfromtimestampr   r   ZconfigZcache_settingsstdoutstrip)
r   eres_tsZtmqueryZclientZlt_resZ	lt_stdoutr   r   r   redis_slowlog,   s>    " .       
r;   uS   Мониторинг частых рестартов uwsgi eva-app воркеров)r   descriptionr   r   c                  C   s   ddl m}  ddl}ddl}tjjj}|  }|	 }t
j||d}|j|}t|pXd}t|j}	|	d }
||
krzdS d| d| d}t| |j| dS )	u  
    Мониторинг частых рестартов uwsgi eva-app воркеров.

    Раз в час проверяем счётчик рестартов за сутки по ключу
    uwsgi-restart-count-YYYY-MM-DD-<hostname> и, если он больше чем
    uwsgi.numproc * 4, отправляем алерт администраторам и сбрасываем счётчик.
    r   )dateN)Zcurrent_datehostname   uS   Обнаружены частые рестарты uwsgi eva-app воркеров (u"   ) за сутки на хосте u   . Если не было ручных перезапусков, возможно не оптимальная конфигурация воркеров, обратитесь в СТП.)r   r=   socketuwsgir*   r+   r,   r-   todayZgethostnamer   Z_get_redis_keyr.   getintZnumprocZcmfutilZadmin_alertdelete)r=   r@   rA   Zredis_dbrB   r>   r!   Z	raw_valueZcounterZprocess_countlimitmessager   r   r   uwsgi_restarts_monitorP   s"    	


rH   c                   C   s   t jdgdd d S )Nz/etc/cron.daily/logrotateT)r   r   r   r   r   r   	logrotatex   s    rI   )r   Zcmf.includecommonr   Zcmf_deferred_jobr   r   r   r   r   r;   rH   rI   r   r   r   r   <module>   s$   





#
'