§ Ù@ªjC-ãó¨—ddlZddlmZddlmZdZdZdZdZdezezezZ d Z ej d ¦«Z Gd „d e¦«Z Gd „d e¦«ZdS)éN)ÚLVEStat)ÚLveStatsPlugini)Ú cpu_faultÚ memphy_faultÚ mem_faultÚio_faultÚ iops_faultÚ mep_faultÚ nproc_fault)ÚlcpuÚlmemphyÚlmemÚioÚliopsÚlepÚlnproc)Ú cpu_usageÚmemphyÚ mem_usageÚio_usageÚiopsÚmepÚnproc)Ú lve_versionÚtimeÚhas_changed_limitsÚhas_changed_nprocÚiseletskÚLVEUsagecó—eZdZdZd„Zd„ZdS)ÚLVEUsageAnalyzerzO Calculates lve usage and updates it in lve_data, in field 'lve_usage' có—||_dS©N)Úconfig)Úselfr$s ú�/builddir/build/BUILDROOT/lve-stats-5.0.5-1.el8.x86_64/opt/cloudlinux/venv/lib/python3.11/site-packages/lvestats/plugins/generic/analyzers.pyÚ set_configzLVEUsageAnalyzer.set_configs €ØˆŒ ˆ ˆ ócóŒ—|d}|d}|d=| dd¦«}|j|d<|d}|d}i}| ¦«D]�\}} t|d¬¦«} | |d¦«} |  | | ||r |j|z nd|¦«|d ks.| jd ks#| jd ks| �|  | | ¦«r| ||<Œ�| d g¦«} |  |¦«|g|d <t|  ¦«¦«|d <| |d <dS) z' :param dict lve_data: ÚstatsÚ old_statsÚold_nowNÚtotalHzÚprocsÚ LVE_VERSION)rrÚ lve_usagesÚ lve_usages_5sÚlve_active_ids) ÚgetÚnowÚitemsrÚcalcrrÚis_lve_data_changedÚappendÚlistÚkeys) r%Úlve_dataÚ new_statsr+r,Útotal_hzr.ÚresultÚ_idÚlve_statÚuÚ lve_stat_oldr0s r&ÚexecutezLVEUsageAnalyzer.execute ss€ð ˜WÔ%ˆ ؘ[Ô)ˆ à �[Ð !à—,’,˜y¨$Ñ/Ô/ˆØ"œhˆ�Ñà˜IÔ&ˆØ˜Ô!ˆàˆà&Ÿ_š_Ñ.Ô.ð ð ‰MˆC�Ý X¨mÔ%<Ð=Ñ=Ô=ˆAØ$Ÿ=š=¨¨dÑ3Ô3ˆLØ �FŠF�< ¨8È7Ð5\°T´XÀÑ5GÐ5GÐX\Ð^cÑ dÔ dÐ dð�q’�Ø”> AÒ%Ð%Ø”< !Ò#Ð#Ø Ð,°×1FÒ1FÀ|ÐU]Ñ1^Ô1^Ð,à��s‘ øØ—\’\ ,°Ñ3Ô3ˆ Ø×Ò˜&Ñ!Ô!Ð!Ø%+ Hˆ�Ñ!Ý%)¨&¯+ª+©-¬-Ñ%8Ô%8ˆÐ!Ñ"Ø!+ˆ�ÑÐÐr(N)Ú__name__Ú __module__Ú __qualname__Ú__doc__r'rC©r(r&r!r!s<€€€€€ðððððð",ð",ð",ð",ð",r(r!cóZ—eZdZeZd„Zdefd„Zd„Zd„Z d„Z d„Z d„Z d „Z d „Zd „Zd „Zd S)rcód—||_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_dS)NFr)rrrrrrrrr rrr rrrrr rrrrr rrr )r%rs r&Ú__init__zLVEUsage.__init__HsÀ€Ø&ˆÔ؈Œ Ø"'ˆÔØ!&ˆÔðˆŒØˆŒØˆŒØˆŒØˆŒØˆŒØˆŒØˆŒ ؈Œ ðˆŒØˆŒ ؈Œ ؈Œ ؈Œ ØˆÔØˆŒ ؈Œ ؈ÔðˆŒ ØˆŒ ؈Œˆˆr(Úlvestatcóð—|j|_| |j|j|¦«|_|jt z|_|j|_|j|_|jdkr |j |_ |S)zB Prepares LVEUsage obj taking limits from LVEStat é) rÚ!convert_lcpu_to_new_kernel_formatÚcpurr rÚKBr rr)r%rLr.s r&Úinit_limits_from_lvestatz!LVEUsage.init_limits_from_lvestatisi€ð”;ˆŒØ×:Ò:¸7¼;ÈÔHXÐZ_Ñ`Ô`ˆŒ ð ”*�r‘/ˆŒØ”ˆŒ Ø”nˆŒ à Ô ˜qÒ Ð Ø œˆDŒJ؈ r(c óî—d}d„t|¦«D¦«D]S}t||¦«}t|ttt t td¦«f¦«r ||›d|›d�z }ŒT|dz }|S)Núz$LVEUsage.__repr__..}s3èè€Ð@Ð@˜¨a¯lªl¸3Ñ.?Ô.?Ð@�!Ð@Ð@Ð@Ð@Ð@Ð@r(ú:z, ú>)ÚdirÚgetattrÚ isinstanceÚstrÚintÚfloatÚboolÚtype)r%ÚrepresentationrYÚvs r&Ú__repr__zLVEUsage.__repr__{sƒ€ØˆØ@Ð@�S ™YœYÐ@Ñ@Ô@ð /ð /ˆAݘ˜aÑ Ô ˆAݘ!�c¥3­­tµT¸$±Z´ZÐ@ÑAÔAð /Ø Q , ,¨ , , ,Ñ.�øØ˜#шØÐr(c󞇗t‰j‰j‰j‰jf¦«rdStˆfd„t D¦«¦«rdSdS)NTc3ó8•K—|]}t‰|¦«V—ŒdSr#©r^)rXrYr%s €r&rZz2LVEUsage.has_interesting_values..‡s-øèè€Ð1Ð1 Q•˜˜aÑ Ô Ð1Ð1Ð1Ð1Ð1Ð1r(F)ÚanyrrrrÚFAULTS©r%s`r&Úhas_interesting_valueszLVEUsage.has_interesting_values„sXø€Ý �” ¤ ¨D¬M¸4¼9ÐEÑ FÔ Fð Ø�4Ý Ð1Ð1Ð1Ð1­&Ð1Ñ1Ô1Ñ 2Ô 2ð Ø�4؈ur(cóh—tD])}t||d¦«t||d¦«krdSŒ*dS)úO :type old: lvestat.LVEStat :type new: lvestat.LVEStat NTF)ÚLIMITSr^)r%ÚnewÚoldÚattrs r&Ú_has_changed_limitszLVEUsage._has_changed_limits‹sH€õ ð ð ˆDÝ�s˜D $Ñ'Ô'­7°3¸¸dÑ+CÔ+CÒCÐCØ�t�tðDàˆur(có"—|j|jkS)rp)r)r%rrrss r&Ú_has_changed_nproczLVEUsage._has_changed_nproc•s€ð Œy˜CœIÒ%Ð%r(có"—|dkr|S||zdzS)z` New kernel format lcpu is 100 times bigger than previous. So that it's 0-10000 rNédrH)r%r Úlve_verr.s r&rOz*LVEUsage.convert_lcpu_to_new_kernel_formatœs#€ð �aŠ<ˆ<؈Kð˜%‘< #Ñ%Ð %r(cóÈ—|j|jksp|j|jks`|j|jksP|j|jks@|j|jks0|j|jks |j|jks|j|jkrdS|j|jks0|j |j ks |j |j ks|j |j krdS|j dkr|j |j krdSdS)zž Check if LVE data is changed :param old: Previous data :param new: Current data :return: True - changes, false - not TrNF)rrrr rrrrrrrr rr)r%rsrrs r&r7zLVEUsage.is_lve_data_changed¦sî€ð ŒM˜Sœ]Ò *Ð *ØŒw˜#œ'Ò!Ð!ØŒ} ¤ Ò-Ð-ØŒ} ¤ Ò-Ð-ØŒ} ¤ Ò-Ð-ØŒw˜#œ'Ò!Ð!ØŒv˜œÒÐØŒ|˜sœ|Ò+Ð+à�4ð ŒJ˜#œ*Ò $Ð $ØÔ 3Ô#3Ò3Ð3ØŒy˜CœIÒ%Ð%ØŒ #¤/Ò1Ð1à�4ð Ô ˜qÒ Ð  S¤X°´Ò%9Ð%9Ø�4àˆur(có† —||_| |j|j|¦«|_t |¦«�rÁ| ||¦«|_| ||¦«|_ |€ Jd¦«‚|dks Jd¦«‚|j |j kr:ttd|j |j z z|z||zz ¦«¦«|_ |j |j kr|j |j z |_ |j|jkr|j|jz |_|j|jkr|j|jz |_|j|jkr|j|jz |_|j|jkr9ttt$|j|jz z|z ¦«¦«|_|jdkrA|j|jkr1tt|j|jz |z ¦«¦«|_|j dkrd|_ n-|j |jcxkrdkrnn|j|_ d|_|j|_|j dks|j|jcxkrdkr8nn5|j|_|j s!|j|jcxkrdkr nnd|_ nd|_ |j|_|j|_|jdks|j|jcxkrdkr8nn5|j|_|js!|j|jcxkrdkr nnd|_nd|_|j|_|jdkr9|j|_|j|jcxkrdkrnn|j|_d|_t$|jz|_|jdkrd|_n-|j|jcxkrdkrnn|j|_d|_|j|_|j|_|jdks|j|jcxkrdkr8nn5|j|_|js!|j|jcxkrdkr nnd|_nd|_|j|_|jdks|j |jcxkrdkr>nn;|j|_ |js$|j |jcxkrdkrndSd|_dSdSdSd|_|j |_ dS)Nz)oldstats is not None, but time is unknownrz#oldstats is not None, but time is 0i'rNé)!rrOrPrr rcrurrwrrraÚroundrr rr rrQrrrrrrrr rrr rrr)r%rsrrÚhzrr.s r&r6z LVEUsage.calcÉs!€ØˆŒ ð×:Ò:¸3¼7ÀDÔDTÐV[Ñ\Ô\ˆŒ å �‰9Œ9ñ Ià&*×&>Ò&>¸sÀCÑ&HÔ&HˆDÔ #Ø%)×%<Ò%<¸SÀ#Ñ%FÔ%FˆDÔ "ð Ð#Ð#Ð%PÑ#Ô#Ð#ؘ1’9�9�9ÐC‘9”9�9ØŒ}˜sœ}Ò,Ð,Ý!$¥U¨5°C´MÀCÄMÑ4QÑ+RÐUZÑ+ZÐ^`ÐcgÑ^gÑ+hÑ%iÔ%iÑ!jÔ!j�”àŒ}˜sœ}Ò,Ð,Ø!$¤°´Ñ!>�”ØŒ}˜sœ}Ò,Ð,Ø!$¤°´Ñ!>�”ØÔ #Ô"2Ò2Ð2Ø$'Ô$4°sÔ7GÑ$G�Ô!ØŒ ¤Ò0Ð0Ø#&¤?°S´_Ñ#D�Ô ØŒ|˜cœlÒ*Ð*å #¥E­"°´ ¸s¼|Ñ0KÑ*LÈtÑ*SÑ$TÔ$TÑ UÔ U�” àÔ 1Ò$Ð$Ø”8˜cœhÒ&Ð&Ý #¥E¨3¬8°c´hÑ+>À$Ñ*FÑ$GÔ$GÑ HÔ H�D”Ið Œ>˜AÒ Ð ØˆDŒNˆNØ Œ^˜tœyÐ ,Ð ,Ò ,Ð ,¨1Ò ,Ð ,Ð ,Ð ,Ð ,Ø!œYˆDŒN؈DŒNð”HˆŒ Ø Œ>˜AÒ Ð  ¤°#´(Ð!>Ð!>Ò!>Ð!>¸QÒ!>Ð!>Ð!>Ð!>Ð!>Ø œXˆDŒNØ”>ð # c¤m°s´xÐ&CÐ&CÒ&CÐ&CÀ!Ò&CÐ&CÐ&CÐ&CÐ&CØ!"�”øàˆDŒNØ œ]ˆDŒNà”7ˆŒØ Œ>˜AÒ Ð  ¤¨C¬GÐ!7Ð!7Ò!7Ð!7°aÒ!7Ð!7Ð!7Ð!7Ð!7Ø”wˆDŒHØ”>ð # c¤g°´Ð&<Ð&<Ò&<Ð&<¸1Ò&<Ð&<Ð&<Ð&<Ð&<Ø!"�”øàˆDŒNØ”wˆDŒHà Ô ˜qÒ Ð ØœˆDŒJØŒy˜DœJÐ*Ð*Ò*Ð*¨Ò*Ð*Ð*Ð*Ð*Ø œJ�” Ø"#�”å�s”v‘+ˆŒØ Œ=˜1Ò Ð ØˆDŒMˆMØ Œ]˜dœgÐ )Ð )Ò )Ð )¨Ò )Ð )Ð )Ð )Ð )Ø œGˆDŒM؈DŒMà”{ˆŒ Ø”jˆŒ ð Ô ˜qÒ Ð  C¤J°#´+Ð$AÐ$AÒ$AÐ$AÀÒ$AÐ$AÐ$AÐ$AÐ$AØœ+ˆDŒKØÔ$ð &¨¬°s´{Ð)FÐ)FÒ)FÐ)FÀQÒ)FÐ)FÐ)FÐ)FÐ)FØ$%�Ô!øà !ˆDÔ Øœ*ˆDŒKà Ô ˜aÒ Ð  3¤9°´ Ð#>Ð#>Ò#>Ð#>¸QÒ#>Ð#>Ð#>Ð#>Ð#>ØœˆDŒJØÔ#ð %¨¬ °S´ZÐ(CÐ(CÒ(CÐ(CÀ!Ò(CÐ(CÐ(CÐ(CÐ(CÐ(CØ#$�Ô Ð Ð ð %ð %Ð(CÐ(Cð !ˆDÔ ØœˆDŒJˆJˆJr(cóf—dt|j¦«zdzt|j¦«zdzS)Nz (cpu_usage=z, mep=ú))r`rrrms r&Ú__str__zLVEUsage.__str__<s/€Ø�s 4¤>Ñ2Ô2Ñ2°XÑ=ÅÀDÄHÁ Ä ÑMÐPSÑSÐSr(có"—t||¦«Sr#rj)r%Úkeys r&Ú __getitem__zLVEUsage.__getitem__?s€Ý�t˜SÑ!Ô!Ð!r(N)rDrErFÚ LVEUSAGESLOTSÚ __slots__rKrrRrgrnrurwrOr7r6r‚r…rHr(r&rrEsÓ€€€€€Ø€IððððB°ððððð$ððððððððð&ð&ð&ð&ð&ð&ð!ð!ð!ðFq#ðq#ðq#ðfTðTðTð"ð"ð"ð"ð"r()ÚloggingrLrÚlvestats.core.pluginrrQrlrqÚSTATSr†Ú __author__Ú getLoggerÚlogr!ÚobjectrrHr(r&úr�sßðð€€€àÐÐÐÐÐØ/Ð/Ð/Ð/Ð/Ð/à €Ø i€Ø D€ØP€ØRÐUZÑZÐ]cÑcÐflÑl€ à € à€gÔ˜ Ñ#Ô#€ð*,ð*,ð*,ð*,ð*,�~ñ*,ô*,ð*,ðZ{"ð{"ð{"ð{"ð{"ˆvñ{"ô{"ð{"ð{"ð{"r(