gvddlZddlmZddlZddlmZmZGddZejfdZ dZ e Z y) NLock)mmap_key MmapedDictc:eZdZdZdZdZdZd dZdZdZ d Z y) MutexValuezA float protected by a mutex.Fc >d|_d|_t|_yNg)_value _exemplarr_lock)selftyp metric_namename labelnames labelvalues help_textkwargss G/opt/hc_python/lib/python3.12/site-packages/prometheus_client/values.py__init__zMutexValue.__init__ s V cp|j5|xj|z c_dddy#1swYyxYwNrr )ramounts rinczMutexValue.incs! ZZ KK6 !KZZs,5NcT|j5||_dddy#1swYyxYwrr)rvalue timestamps rsetzMutexValue.sets ZZDKZZ'cT|j5||_dddy#1swYyxYwrrr rexemplars r set_exemplarzMutexValue.set_exemplars ZZ%DNZZr#c^|j5|jcdddS#1swYyxYwrrrs rgetzMutexValue.gets ZZ;;ZZ #,c^|j5|jcdddS#1swYyxYwrr%r*s r get_exemplarzMutexValue.get_exemplar"s ZZ>>ZZr,r) __name__ __module__ __qualname____doc__ _multiprocessrrr"r(r+r.rrr r s('M " &"rr c^igditGfdd}|S)a8Returns a MmapedValue class based on a process_identifier function. The 'process_identifier' function MUST comply with this simple rule: when called in simultaneously running processes it MUST return distinct values. Using a different function than the default 'os.getpid' is at your own risk. r cleZdZdZdZd fd ZfdZfdZfdZd fd Z d Z fd Z d Z y)&MultiProcessValue..MmapedValuezAA float protected by a mutex backed by a per-process mmaped file.Tcv|||||||f|_dtjvrPdtjvr>tjdtjd<tjdt  5|j |j j|dddy#1swYyxYw)Nprometheus_multiproc_dirPROMETHEUS_MULTIPROC_DIRzpprometheus_multiproc_dir variable has been deprecated in favor of the upper case naming PROMETHEUS_MULTIPROC_DIR) _paramsosenvironwarningswarnDeprecationWarning"_MmapedValue__check_for_pid_change_MmapedValue__resetappend) rrrrrrrmultiprocess_moderlockvaluess rrz/MultiProcessValue..MmapedValue.__init__<s T:{IWhhDL)RZZ7.MmapedValue.__resetGs\`\h\h YCdJ YHYg~!Ci*;; ! %'77<<JJNN#=>%%k3w<@B&0%9k"{+DJ dJ YWDI+/::+@+@+K (DKrc}d|k7rR|d<jD]}|jjD]}|jyy)Nr )rFcloseclearrB)r actual_pidfr rSrTprocess_identifierrFs r__check_for_pid_changez=MultiProcessValue..MmapedValue.__check_for_pid_changeWsZ+-J7|z))G AGGI( #EMMO$ *rc5|j|xj|z c_d|_|jj |j |j|jdddy#1swYyxYwr rAr rPrM write_valuerN)rrrEs rrz*MultiProcessValue..MmapedValue.incbsS++- v% "% &&tyy$++tO s A(A55A>Nc5|j||_|xsd|_|jj |j |j|jdddy#1swYyxYwr r^)rr r!rEs rr"z*MultiProcessValue..MmapedValue.setisQ++-# "+"2s &&tyy$++tO s AA++A4cyrr4r&s rr(z3MultiProcessValue..MmapedValue.set_exemplarps rcl5|j|jcdddS#1swYyxYwr)rAr )rrEs rr+z*MultiProcessValue..MmapedValue.getts#++-{{s*3cyrr4r*s rr.z3MultiProcessValue..MmapedValue.get_exemplarysr)r) r/r0r1r2r3rrBrArr"r(r+r.)rSrErTr[rFsr MmapedValuer77s6O  $ L $ P P  #  rrer)r[rerSrErTrFs` @@@@rMultiProcessValuerf's; E F &( )C 6DDDL rcjdtjvsdtjvr tStS)Nr9r:)r<r=rfr r4rrget_value_classrhs. "RZZ/3MQSQ[Q[3[ ""r) r< threadingrr> mmap_dictrrr getpidrfrh ValueClassr4rrrms: +"">*,Vr  r