3<ddlZddlmZddlmZdZdZdZdZdezezezZ d Z ej d Z Gd d eZ Gd d eZdS)N)LVEStat)LveStatsPlugini) cpu_fault memphy_fault mem_faultio_fault iops_fault mep_fault nproc_fault)lcpulmemphylmemioliopsleplnproc) cpu_usagememphy mem_usageio_usageiopsmepnproc) lve_versiontimehas_changed_limitshas_changed_nprociseletskLVEUsageceZdZdZdZdZdS)LVEUsageAnalyzerzO Calculates lve usage and updates it in lve_data, in field 'lve_usage' c||_dSN)config)selfr$s /builddir/build/BUILDROOT/lve-stats-4.3.2-1.el9.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_statsold_nowNtotalHzprocs LVE_VERSION)rr lve_usages lve_usages_5slve_active_ids) getnowitemsrcalcrris_lve_data_changedappendlistkeys) r%lve_data new_statsr+r,total_hzr.result_idlve_statu lve_stat_oldr0s r&executezLVEUsageAnalyzer.execute sq W% [) [ !,,y$//"hI&!&__.. MCXm%<===A$==d33L FF<875\TX5G5GX\^c d d daxx~))|a''$0Q5J5Jz$LVEUsage.__repr__..}s3@@all3.?.?@!@@@@@@r(:z, >)dirgetattr isinstancestrintfloatbooltype)r%representationrYvs r&__repr__zLVEUsage.__repr__{s@@SYY@@@ / /Aa  A!c3tT$ZZ@AA /Q,,,,,.#r(ctjjjjfrdStfdt DrdSdS)NTc38K|]}t|VdSr#r^)rXrYr%s r&rZz2LVEUsage.has_interesting_values..s-11Qa  111111r(F)anyrrrrFAULTSr%s`r&has_interesting_valueszLVEUsage.has_interesting_valuessX  DM49E F F 4 1111&111 2 2 4ur(chtD])}t||dt||dkrdS*dS)O :type old: lvestat.LVEStat :type new: lvestat.LVEStat NTF)LIMITSr^)r%newoldattrs r&_has_changed_limitszLVEUsage._has_changed_limitssH   DsD$''73d+C+CCCttDur(c"|j|jkS)rp)r)r%rrrss r&_has_changed_nproczLVEUsage._has_changed_nprocs yCI%%r(c"|dkr|S||zdzS)z` New kernel format lcpu is 100 times bigger than previous. So that it's 0-10000 rNdrH)r%r lve_verr.s r&rOz*LVEUsage.convert_lcpu_to_new_kernel_formats# 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_changeds =CM ) )7cg%%=CM11=CM11=CM117cg%%6SV##<3<//4 J#* $ $(8Cnn;|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 rcrurrwrrraroundrr rr rrQrrrrrrrr rrr rrr)r%rsrrhzrr.s r&r6z LVEUsage.calcs6 ::37DDTV[\\ 99 I&*&>&>sC&H&HD #%)%<%}s},,!$!>#"222$'$4s7G$G!00#&?S_#D |cl** #E" s|0K*Lt*S$T$T U U 1$$8ch&& #E38ch+>$*F$G$G H HDI >A  DNN ^ty , , , ,1 , , , , ,!YDN NNa NNH >A  #(!>!>!>!>Q!>!>!>!>!> XDN> #cmsx&C&C&C&C!&C&C&C&C&C!"DN ]DN7 >A  CG!7!7!7!7a!7!7!7!7!7wDH> #cg&<&<&<&<1&<&<&<&<&#>#>#>Q#>#>#>#>#>DJ# % SZ(C(C(C(C!(C(C(C(C(C(C#$    % %(C(C !D DJJJr(cfdt|jzdzt|jzdzS)Nz (cpu_usage=z, mep=))r`rrrms r&__str__zLVEUsage.__str__s/s4>222X=DH MPSSSr(c"t||Sr#rj)r%keys r& __getitem__zLVEUsage.__getitem__"stS!!!r(N)rDrErF LVEUSAGESLOTS __slots__rKrrRrgrnrurwrOr7r6rrrHr(r&rrCsIB(&&&&&&:Z#Z#Z#xTTT"""""r()loggingrLrlvestats.core.pluginrrQrlrqSTATSr __author__ getLoggerlogr!objectrrHr(r&rs//////  i DPRUZZ]ccfll  g ##(,(,(,(,(,~(,(,(,V`"`"`"`"`"v`"`"`"`"`"r(