W<== =..00 !0 & :%1*" " "  ')#(*%%%c,d} tjd|js|r=|||n|dzdkr|d}|dz })NrT)timesleepr_is_server_overloaded_load_effective_normal_limits_get_current_bursting_lves_disable_bursting)r#cnts r%runz Service.run2s  JqMMM= ))++ 22444//111&&((((rQ22444 1HC r'c ttdd5}tj|}t |dkr||_dddn #1swxYwYnB#tttj f$r#t dtYnwxYwt dt |jdS)NrzUTF-8)encodingrz7Can`t load cached effective normal limits from file: %sz*Loaded effective normal limits for %s lves) openEFFECTIVE_NORMAL_LIMITS_PATHjsonloadsreadlenr"OSErrorIOErrorJSONDecodeErrorlogger exceptiondebug)r#floaded_effective_normal_limitss r%r.z%Service._load_effective_normal_limitsCs$ v2C'JJJ Sa15AFFHH1E1E.566::4RD1 S S S S S S S S S S S S S S S$"67 v v v   VXt u u u u u v A3tGdCeCefffffs5A2AA& A2&A**A2-A*.A22z6Service._get_current_bursting_lves..Ts/ggg4WT8#3#3#5#566gggr'T)without_limitsch|]j}|jjt|jidkK|jdkVt|jkS)cpur)rRr"getstrid)rLstatr#s r% z5Service._get_current_bursting_lves..Vsq' ' ' !x48<>ae>CfCfggg ' ' ' ' %.' ' ' #  0$2MNNNNNr'c|jD]8}|dkrtd#||9tddS)N0zSkipping lve_id=0zDisabled bursting server-wide)r!r?rA_disable_bursting_for_lve)r#_ids r%r0zService._disable_bursting\sc. 0 0Cczz 0111  * *3 / / / / 455555r'id_c td||j|i}|jdi} |j}t |d|dtd|_t |d|dtd|_ t |d|dtd|_ t |d|dtd|_ t |d|dtd|_ t |d|dtd|_ t |d |d td |_t |d |d td |_|jt ||d |d  dS#t"$r}t%j|Yd}~dSd}~wwxYw)NzDisabling bursting for LVE %sr[iorRncpumemeppmemnprociopszCan't setup lve with id z; error code {code})err_msg)r?rAr"rSrliblve_settingsintr ls_iols_cpuls_cpus ls_memory ls_enters ls_memory_phyls_nprocls_iops lve_setupRuntimeWarningloggingr@)r#r^ lve_limitsdefault_limits lve_settingsrws r%r\z!Service._disable_bursting_for_lvefs 4c:::266sB?? 6::3CC ";6688L!$Z^^D.:L:LTS^_cSd:e:e%f%f!g!gL "%jnnUNP>PQWYdekYl>m>m'n'n#o#oL %(~?Q?QRWYdejYk?l?l)m)m%n%nL "%(n>P>PQUWbcgWh>i>i)j)j%k%kL "),Z^^FNDVDVW]_jkq_rDsDs-t-t)u)uL &$' w@R@RSZ\gho\p@q@q(r(r$s$sL !#&z~~fn>P>PQWYdekYl>m>m'n'n#o#oL K ! !C,0e30e0e0e "      " " "  b ! ! ! ! ! ! ! ! ! "sI?K K=K88K=)rN) __name__ __module__ __qualname__r&r2r.boolr-r/r0rTr\rJr'r%rr"s + + + +"ggg,t,,,, OOO666"S""""""r'rc.eZdZUeed<eed<eed<dS) _RawConfigbursting_enabled bursting_critical_load_threshold"bursting_critical_load_samples_numN)ryrzr{r|__annotations__rTrJr'r%r~r~s6&))))(++++++r'r~F)totalcJeZdZUedefdZeed<eed<e ed<dS)rrc tjttt}n,#t $rtdi}YnwxYwdddd}i}i}dtdfd td fd td ffD][\}}} ||}n#t$rYwxYw ||} n)#t$r} t| ||<Yd} ~ Nd} ~ wwxYw| ||<\|rJtd d d|Dtdit!||} ||z x} rtd| | S)N)_loggerzConfig file not found!Fg?r*)rrrrrrrrrz%Failed to parse some config keys: %s c3,K|]\}}d|d|VdS)z* z: NrJ)rLkes r% z0_Config.read_from_config_file..s2MMDAq-q--A--MMMMMMr'zUsing default values for: %srJ)typingcastr~r r?FileNotFoundErrorwarningr floatriKeyError ValueErrorrTjoinitemsrrkeysinfo) cls raw_configdefault_paramsexternal_paramserror_by_raw_keyraw_key extractorparam raw_valuevaluerr# defaults_useds r%rz_Config.read_from_config_files Z1P1P1PQQJJ     NN3 4 4 4JJJ  #'    i 8 /8M N 13 F*  + + %GY  &w/      ! ),,   ,/FF ) &+OE " "   NN8 MM4D4J4J4L4LMMMMM    CC/>BBCC+0022_5I5I5K5KK KM G KK6 F F F s9-0&AA B B B $ B00 C:CCrrrN) ryrzr{ classmethodrrr|rrrirJr'r%rrs[,d,,,[,\MMMr'r)&rtr8r+rrrr collectionsrclcommon.clprocrlveapir lvectllibr lvestatr 'lvestats.plugins.generic.burster.configr r )lvestats.plugins.generic.burster.overloadr rr7 basicConfigINFO getLoggerr? FileHandlerhandler setFormatter FormattersetLevelDEBUG addHandlerrr~rrJr'r%rs .......... ######!!!!!!PPPPPPPP[[[[[[[[L',''''  > * * ' B C C&W&'NOOPPP'Z"Z"Z"Z"Z"Z"Z"Z"z,,,,,%,,,, 22222j22222r'