Files
assist/src/analytics/__pycache__/monitor_service.cpython-311.pyc

74 lines
13 KiB
Plaintext
Raw Normal View History

2025-09-06 21:06:18 +08:00
<EFBFBD>
x$<24>h<EFBFBD>#<00><00><><00>dZddlZddlZddlZddlmZmZmZddlmZm Z ddl
m Z m Z m Z mZeje<10><00>ZGd<07>d<08><00>ZdS) uE
TSP助手监控服务
实时监控系统状态,执行预警检查
<EFBFBD>N)<03>Dict<63>Any<6E>List)<02>datetime<6D> timedelta<74>)<04> AlertSystem<65> AlertRule<6C>
AlertLevel<EFBFBD> AlertTypec<00><><00>eZdZdZd<02>Zd<03>Zd<04>Zd<05>Zdee e
ffd<07>Z dee e
ffd<08>Z dee e
ffd <09>Z dee e
ffd
<EFBFBD>Zdee e
ffd <0B>Zdee e
fd e fd <0A>Zdee e
ffd<0E>Zd<0F>Zd<10>Zd<11>Zdee e
ffd<13>Zdeee e
fdee e
fdefd<16>Zdede fd<18>Zdedefd<1A>Zde defd<1C>Zde defd<1D>Zdee e
ffd<1E>ZdS) <20>MonitorServiceu 监控服务c<00>V<00>t<00><00>|_d|_d|_d|_dS)NF<4E><)r <00> alert_system<65>
is_running<EFBFBD>monitor_thread<61>check_interval<61><01>selfs <20>GC:\Users\jiezhao\Desktop\TSP_assistant\src\analytics\monitor_service.py<70>__init__zMonitorService.__init__s+<00><00>'<27>M<EFBFBD>M<EFBFBD><04><19><1F><04><0F>"<22><04><1B> <20><04><1B><1B><1B>c<00><00>|jrt<00>d<01><00>dSd|_tj|jd<03><04><00>|_|j<00><00><00>t<00>d<05><00>dS)u启动监控服务u监控服务已在运行NT)<02>target<65>daemonu监控服务已启动) r<00>logger<65>warning<6E> threading<6E>Thread<61> _monitor_loopr<00>start<72>infors rr"zMonitorService.startsu<00><00> <0F>?<3F> <13> <12>N<EFBFBD>N<EFBFBD>5<> 6<> 6<> 6<> <12>F<EFBFBD><1E><04><0F>'<27>.<2E>d<EFBFBD>6H<36>QU<51>V<>V<>V<><04><1B> <0C><1B>!<21>!<21>#<23>#<23>#<23><0E> <0B> <0B>+<2B>,<2C>,<2C>,<2C>,<2C>,rc<00><><00>d|_|jr|j<00>d<02><03><00>t<00>d<04><00>dS)u停止监控服务F<E58AA1>)<01>timeoutu监控服务已停止N)rr<00>joinrr#rs r<00>stopzMonitorService.stop&sG<00><00><1F><04><0F> <0F> <1E> 0<> <10> <1F> $<24> $<24>Q<EFBFBD> $<24> /<2F> /<2F> /<2F><0E> <0B> <0B>+<2B>,<2C>,<2C>,<2C>,<2C>,rc<00><><00>|jr<> |j<00><00><00>}|rEt<00>dt |<01><00><00>d<02><03><00>|D]}|<00>|<02><00><00>tj|j <00><00>nH#t$r;}t<00> d|<03><00><02><00>tjd<04><00>Yd}~nd}~wwxYw|j<00><>dSdS)u 监控循环u触发 u
个预警u监控循环异常: <20>
N) rr<00>check_all_rulesrr#<00>len<65> _handle_alert<72>time<6D>sleepr<00> Exception<6F>error)r<00>triggered_alerts<74>alert<72>es rr!zMonitorService._monitor_loop-s<00><00><12>o<EFBFBD> <1F> <1F>#'<27>#4<>#D<>#D<>#F<>#F<> <20>#<23>2<><1A>K<EFBFBD>K<EFBFBD> K<>#<23>.><3E>*?<3F>*?<3F> K<> K<> K<>L<>L<>L<>!1<>2<>2<><05><1C>*<2A>*<2A>5<EFBFBD>1<>1<>1<>1<><15>
<EFBFBD>4<EFBFBD>.<2E>/<2F>/<2F>/<2F>/<2F><><1C> <1F> <1F> <1F><16> <0C> <0C>7<>A<EFBFBD>7<>7<>8<>8<>8<><14>
<EFBFBD>2<EFBFBD><0E><0E><0E><0E><0E><0E><0E><0E><><EFBFBD><EFBFBD><EFBFBD> <1F><><EFBFBD><EFBFBD><13>o<EFBFBD> <1F> <1F> <1F> <1F> s<00>A9B<00>
C<03> 1C<03>Cr3c<00><><00> t<00>d|d<00><00><02><00>|ddkr|<00>|<01><00>dS|ddkr|<00>|<01><00>dS|ddkr|<00>|<01><00>dS|<00>|<01><00>dS#t $r(}t<00>d|<02><00><02><00>Yd}~dSd}~wwxYw) u 处理预警u预警触发: <20>message<67>level<65>criticalr1ru处理预警失败: N)rr<00>_handle_critical_alert<72>_handle_error_alert<72>_handle_warning_alert<72>_handle_info_alertr0r1)rr3r4s rr-zMonitorService._handle_alert@s
<00><00> 5<> <12>N<EFBFBD>N<EFBFBD>><3E>E<EFBFBD>)<29>,<<3C>><3E>><3E> ?<3F> ?<3F> ?<3F><15>W<EFBFBD>~<7E><1A>+<2B>+<2B><14>+<2B>+<2B>E<EFBFBD>2<>2<>2<>2<>2<><16>w<EFBFBD><1E>7<EFBFBD>*<2A>*<2A><14>(<28>(<28><15>/<2F>/<2F>/<2F>/<2F>/<2F><16>w<EFBFBD><1E>9<EFBFBD>,<2C>,<2C><14>*<2A>*<2A>5<EFBFBD>1<>1<>1<>1<>1<><14>'<27>'<27><05>.<2E>.<2E>.<2E>.<2E>.<2E><><18> 5<> 5<> 5<> <12>L<EFBFBD>L<EFBFBD>3<><01>3<>3<> 4<> 4<> 4<> 4<> 4<> 4<> 4<> 4<> 4<><34><EFBFBD><EFBFBD><EFBFBD> 5<><35><EFBFBD>s*<00>AB%<00>!B%<00>+!B%<00>B%<00>%
C<03>/C<03>Cc<00><><00>|<00>|d<01><00>t<00>d|d<00><00><02><00>|<00>|<01><00>dS)u处理严重预警u紧急u严重预警: r6N)<04>_send_notificationrr8<00>_attempt_auto_recovery<72>rr3s rr9z%MonitorService._handle_critical_alertSsX<00><00> <0A><1F><1F><05>x<EFBFBD>0<>0<>0<> <0F><0F><0F>;<3B><15>y<EFBFBD>)9<>;<3B>;<3B><<3C><<3C><<3C> <0A>#<23>#<23>E<EFBFBD>*<2A>*<2A>*<2A>*<2A>*rc<00>x<00>|<00>|d<01><00>t<00>d|d<00><00><02><00>dS)u处理错误预警u错误u错误预警: r6N)r>rr1r@s rr:z"MonitorService._handle_error_alert^sB<00><00> <0A><1F><1F><05>x<EFBFBD>0<>0<>0<> <0F> <0C> <0C>8<>e<EFBFBD>I<EFBFBD>&6<>8<>8<>9<>9<>9<>9<>9rc<00>x<00>|<00>|d<01><00>t<00>d|d<00><00><02><00>dS)u处理警告预警u警告u警告预警: r6N)r>rrr@s rr;z$MonitorService._handle_warning_alertfsB<00><00> <0A><1F><1F><05>x<EFBFBD>0<>0<>0<> <0F><0E><0E>:<3A><05>i<EFBFBD>(8<>:<3A>:<3A>;<3B>;<3B>;<3B>;<3B>;rc<00>L<00>t<00>d|d<00><00><02><00>dS)u处理信息预警u信息预警: r6N<>rr#r@s rr<z!MonitorService._handle_info_alertns*<00><00> <0F> <0B> <0B>7<>U<EFBFBD>9<EFBFBD>%5<>7<>7<>8<>8<>8<>8<>8rr7c<00>r<00>||d|d|dd<04>}t<00>d|<03><00><02><00>dS)u 发送通知r6<00> timestamp<6D> rule_name)r7r6rFrGu发送通知: NrD)rr3r7<00> notifications rr>z!MonitorService._send_notificationssN<00><00><1B><1C>Y<EFBFBD>'<27><1E>{<7B>+<2B><1E>{<7B>+<2B> 
<EFBFBD>
<EFBFBD> <0C> <0F> <0B> <0B>3<>\<5C>3<>3<>4<>4<>4<>4<>4rc<00>*<00> |d}|dkr|<00><00><00>dS|dkr|<00><00><00>dS|dkr|<00><00><00>dSdS#t$r(}t<00>d|<03><00><02><00>Yd}~dSd}~wwxYw)u尝试自动恢复rGu内存使用预警u错误率预警u响应时间预警u自动恢复失败: N)<06>_cleanup_memory<72>_restart_services<65>_optimize_performancer0rr1)rr3rGr4s rr?z%MonitorService._attempt_auto_recovery<72>s<><00><00> 5<><1D>k<EFBFBD>*<2A>I<EFBFBD><18>0<>0<>0<><14>$<24>$<24>&<26>&<26>&<26>&<26>&<26><1A>/<2F>/<2F>/<2F><14>&<26>&<26>(<28>(<28>(<28>(<28>(<28><1A>2<>2<>2<><14>*<2A>*<2A>,<2C>,<2C>,<2C>,<2C>,<2C>3<>2<><32><19> 5<> 5<> 5<> <12>L<EFBFBD>L<EFBFBD>3<><01>3<>3<> 4<> 4<> 4<> 4<> 4<> 4<> 4<> 4<> 4<><34><EFBFBD><EFBFBD><EFBFBD> 5<><35><EFBFBD>s"<00>"A <00>A <00>A <00>
B<03>*B <03> Bc<00><><00> ddl}|<01><00><00>t<00>d<03><00>dS#t$r(}t<00>d|<02><00><02><00>Yd}~dSd}~wwxYw)u 清理内存rNu执行内存清理u内存清理失败: )<06>gc<67>collectrr#r0r1)rrNr4s rrJzMonitorService._cleanup_memory<72>s<><00><00> 5<> <15>I<EFBFBD>I<EFBFBD>I<EFBFBD> <0E>J<EFBFBD>J<EFBFBD>L<EFBFBD>L<EFBFBD>L<EFBFBD> <12>K<EFBFBD>K<EFBFBD>,<2C> -<2D> -<2D> -<2D> -<2D> -<2D><><18> 5<> 5<> 5<> <12>L<EFBFBD>L<EFBFBD>3<><01>3<>3<> 4<> 4<> 4<> 4<> 4<> 4<> 4<> 4<> 4<><34><EFBFBD><EFBFBD><EFBFBD> 5<><35><EFBFBD>s<00>26<00>
A(<03>A#<03>#A(c<00><><00> t<00>d<01><00>dS#t$r(}t<00>d|<01><00><02><00>Yd}~dSd}~wwxYw)u 重启服务u尝试重启服务u重启服务失败: N<>rr#r0r1<00>rr4s rrKz MonitorService._restart_services<65><00>l<00><00> 5<> <12>K<EFBFBD>K<EFBFBD>,<2C> -<2D> -<2D> -<2D> -<2D> -<2D><><18> 5<> 5<> 5<> <12>L<EFBFBD>L<EFBFBD>3<><01>3<>3<> 4<> 4<> 4<> 4<> 4<> 4<> 4<> 4<> 4<><34><EFBFBD><EFBFBD><EFBFBD> 5<><35><EFBFBD><EFBFBD><00><00>
A<03>A <03> Ac<00><><00> t<00>d<01><00>dS#t$r(}t<00>d|<01><00><02><00>Yd}~dSd}~wwxYw)u 优化性能u尝试优化性能u性能优化失败: NrQrRs rrLz$MonitorService._optimize_performance<63>rSrT<00>returnc<00><><00> |j<00><00><00>}|j<00><00><00>}|<00>||<02><00>}||<00>|<03><00>t |<01><00>||jrdndtj<00><00><00> <00><00>d<03>S#t$r8}t<00> d|<04><00><02><00>dt|<04><00>icYd}~Sd}~wwxYw)u获取系统健康状态<E78AB6>running<6E>stopped)<06> health_score<72>status<75> active_alerts<74>alert_statistics<63>monitor_status<75>
last_checku 获取系统健康状态失败: r1N)r<00>get_active_alerts<74>get_alert_statistics<63>_calculate_health_score<72>_get_health_statusr,rr<00>now<6F> isoformatr0rr1<00>str)rr\<00> alert_statsrZr4s r<00>get_system_healthz MonitorService.get_system_health<74>s<><00><00> %<25> <20>-<2D>?<3F>?<3F>A<>A<>M<EFBFBD><1F>+<2B>@<40>@<40>B<>B<>K<EFBFBD> <20>7<>7<> <0A>{<7B>S<>S<>L<EFBFBD>!-<2D><1E>1<>1<>,<2C>?<3F>?<3F>!$<24>]<5D>!3<>!3<>$/<2F>/3<><EFBFBD>"M<>)<29>)<29>I<EFBFBD>&<26>l<EFBFBD>n<EFBFBD>n<EFBFBD>6<>6<>8<>8<> <0E><0E> <0E><><19> %<25> %<25> %<25> <12>L<EFBFBD>L<EFBFBD>?<3F>A<EFBFBD>?<3F>?<3F> @<40> @<40> @<40><1B>S<EFBFBD><11>V<EFBFBD>V<EFBFBD>$<24> $<24> $<24> $<24> $<24> $<24> $<24><><EFBFBD><EFBFBD><EFBFBD> %<25><><EFBFBD>s<00>BB<00>
C!<03>)-C<03>C!<03>C!r\rgc<00>.<00> d}|D]=}|ddkr|dz}<03>|ddkr|dz}<03>&|ddkr|dz}<03>8|d z}<03>>td
td |<03><00><00><00>S#t$r(}t<00>d |<05><00><02><00>Yd }~dSd }~wwxYw)u计算健康分数gY@r7r8<00>r1r*rr%rr<00>du计算健康分数失败: NgI@)<05>max<61>minr0rr1)rr\rg<00>
base_scorer3r4s rrbz&MonitorService._calculate_health_score<72>s<><00><00> <18><1E>J<EFBFBD>'<27> $<24> $<24><05><18><17>><3E>Z<EFBFBD>/<2F>/<2F><1E>"<22>$<24>J<EFBFBD>J<EFBFBD><1A>7<EFBFBD>^<5E>w<EFBFBD>.<2E>.<2E><1E>"<22>$<24>J<EFBFBD>J<EFBFBD><1A>7<EFBFBD>^<5E>y<EFBFBD>0<>0<><1E>!<21>O<EFBFBD>J<EFBFBD>J<EFBFBD><1E>!<21>O<EFBFBD>J<EFBFBD>J<EFBFBD><17>q<EFBFBD>#<23>c<EFBFBD>:<3A>.<2E>.<2E>/<2F>/<2F> /<2F><><18> <18> <18> <18> <12>L<EFBFBD>L<EFBFBD>9<>a<EFBFBD>9<>9<> :<3A> :<3A> :<3A><17>4<EFBFBD>4<EFBFBD>4<EFBFBD>4<EFBFBD>4<EFBFBD><34><EFBFBD><EFBFBD><EFBFBD> <18><><EFBFBD>s<00>AA"<00>"
B<03>,B<03>BrZc<00>F<00>|dkrdS|dkrdS|dkrdS|dkrdSd S)
u获取健康状态<E78AB6>Z<00> excellent<6E>F<00>good<6F>2<00>fair<69><00>poorr8<00>)rrZs rrcz!MonitorService._get_health_status<75>sG<00><00> <17>2<EFBFBD> <1D> <1D><1E>;<3B> <19>R<EFBFBD> <1F> <1F><19>6<EFBFBD> <19>R<EFBFBD> <1F> <1F><19>6<EFBFBD> <19>R<EFBFBD> <1F> <1F><19>6<EFBFBD><1D>:r<00>rulec<00>6<00>|j<00>|<01><00>S)u添加自定义规则)r<00>add_custom_rule)rrys rr{zMonitorService.add_custom_rule<6C>s<00><00><13> <20>0<>0<><14>6<>6<>6rrGc <00>(<00>|jj|fi|<02><01>S)u 更新规则)r<00> update_rule)rrG<00>kwargss rr}zMonitorService.update_rule<6C>s <00><00>,<2C>t<EFBFBD> <20>,<2C>Y<EFBFBD>A<>A<>&<26>A<>A<>Arc<00>6<00>|j<00>|<01><00>S)u 删除规则)r<00> delete_rule)rrGs rr<>zMonitorService.delete_rule<6C>s<00><00><13> <20>,<2C>,<2C>Y<EFBFBD>7<>7<>7rc<00>R<00>d<01>|jj<00><00><00>D<00><00>S)u获取所有规则c <00><><00>i|]C\}}||j|j|jj|jj|j|j|j|jd<00><08><02>DS))<08>name<6D> description<6F>
alert_typer7<00> threshold<6C>enabledr<00>cooldown) r<>r<>r<><00>valuer7r<>r<>rr<>)<03>.0r<EFBFBD>rys r<00>
<dictcomp>z,MonitorService.get_rules.<locals>.<dictcomp><3E>sh<00><00> 
<EFBFBD> 
<EFBFBD> 
<EFBFBD><1B><04>d<EFBFBD> <11><1C> <09>#<23>/<2F>"<22>o<EFBFBD>3<><1D><1A>)<29>!<21>^<5E><1F><<3C>"&<26>"5<> <20>M<EFBFBD> <0E> <0E> 
<EFBFBD> 
<EFBFBD> 
r)r<00>rules<65>itemsrs r<00> get_ruleszMonitorService.get_rules<65>s7<00><00> 
<EFBFBD> 
<EFBFBD>#<23>/<2F>5<>;<3B>;<3B>=<3D>=<3D> 
<EFBFBD> 
<EFBFBD> 
<EFBFBD>
rN) <20>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__doc__rr"r(r!rrfrr-r9r:r;r<r>r?rJrKrLrhr<00>floatrbrcr
<00>boolr{r}r<>r<>rxrrrrs<><00><00><00><00><00><00><16><16>!<21>!<21>!<21> -<2D> -<2D> -<2D>-<2D>-<2D>-<2D><1F><1F><1F>&5<>4<EFBFBD><03>S<EFBFBD><08>><3E>5<>5<>5<>5<>& +<2B>D<EFBFBD><13>c<EFBFBD><18>N<EFBFBD> +<2B> +<2B> +<2B> +<2B>:<3A><14>c<EFBFBD>3<EFBFBD>h<EFBFBD><1E>:<3A>:<3A>:<3A>:<3A><<3C>4<EFBFBD><03>S<EFBFBD><08>><3E><<3C><<3C><<3C><<3C>9<><04>S<EFBFBD>#<23>X<EFBFBD><0E>9<>9<>9<>9<>
5<><04>S<EFBFBD>#<23>X<EFBFBD><0E> 5<>s<EFBFBD> 5<> 5<> 5<> 5<> 5<>D<EFBFBD><13>c<EFBFBD><18>N<EFBFBD>5<>5<>5<>5<>$5<>5<>5<>5<>5<>5<>5<>5<>5<>%<25>4<EFBFBD><03>S<EFBFBD><08>><3E>%<25>%<25>%<25>%<25>2<18>T<EFBFBD>$<24>s<EFBFBD>C<EFBFBD>x<EFBFBD>.<2E>5I<35><18>X\<5C>]`<60>be<62>]e<>Xf<58><18>kp<6B><18><18><18><18>. <1E>u<EFBFBD> <1E><13> <1E> <1E> <1E> <1E>7<>I<EFBFBD>7<>$<24>7<>7<>7<>7<>B<01>S<EFBFBD>B<01>t<EFBFBD>B<01>B<01>B<01>B<01>8<>S<EFBFBD>8<>T<EFBFBD>8<>8<>8<>8<>
<EFBFBD>4<EFBFBD><03>S<EFBFBD><08>><3E>
<EFBFBD>
<EFBFBD>
<EFBFBD>
<EFBFBD>
<EFBFBD>
rr)r<><00>loggingrr.<00>typingrrrrrrr r
r r <00> getLoggerr<72>rrrxrr<00><module>r<>s<><00><01><04><04>
<0F><0E><0E><0E><10><10><10><10> <0B> <0B> <0B> <0B>"<22>"<22>"<22>"<22>"<22>"<22>"<22>"<22>"<22>"<22>(<28>(<28>(<28>(<28>(<28>(<28>(<28>(<28>G<>G<>G<>G<>G<>G<>G<>G<>G<>G<>G<>G<> <1A><17> <1A>8<EFBFBD> $<24> $<24><06>s
<EFBFBD>s
<EFBFBD>s
<EFBFBD>s
<EFBFBD>s
<EFBFBD>s
<EFBFBD>s
<EFBFBD>s
<EFBFBD>s
<EFBFBD>s
r