Viewing File: /opt/hc_python/lib/python3.12/site-packages/prometheus_client/__pycache__/values.cpython-312.pyc

�

_��g���v�ddlZddlmZddlZddlmZmZGd�d�Zejfd�Z	d�Z
e
�Zy)	�N��Lock�)�mmap_key�
MmapedDictc�:�eZdZdZdZd�Zd�Zd
d�Zd�Zd�Z	d	�Z
y)�
MutexValuezA float protected by a mutex.Fc�>�d|_d|_t�|_y�Ng)�_value�	_exemplarr�_lock)�self�typ�metric_name�name�
labelnames�labelvalues�	help_text�kwargss        �G/opt/hc_python/lib/python3.12/site-packages/prometheus_client/values.py�__init__zMutexValue.__init__
s���������V��
�c�p�|j5|xj|z
c_ddd�y#1swYyxYw�N�rr)r�amounts  r�inczMutexValue.incs!��
�Z�Z��K�K�6�!�K��Z�Z�s�,�5Nc�T�|j5||_ddd�y#1swYyxYwrr)r�value�	timestamps   r�setzMutexValue.sets��
�Z�Z��D�K��Z�Z����'c�T�|j5||_ddd�y#1swYyxYwr�rr
�r�exemplars  r�set_exemplarzMutexValue.set_exemplars��
�Z�Z�%�D�N��Z�Z�r#c�^�|j5|jcddd�S#1swYyxYwrr�rs r�getzMutexValue.gets��
�Z�Z��;�;��Z�Z���#�,c�^�|j5|jcddd�S#1swYyxYwrr%r*s r�get_exemplarzMutexValue.get_exemplar"s��
�Z�Z��>�>��Z�Z�r,r)�__name__�
__module__�__qualname__�__doc__�
_multiprocessrrr"r(r+r.�rrr	r	s(��'��M��
"� �&��"rr	c�^������i�g�d��i�t��G�����fd�d�}|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 c�l��eZdZdZdZd��fd�	Z��fd�Z����fd�Z�fd�Zd
�fd�	Z	d	�Z
�fd
�Zd�Zy)�&MultiProcessValue.<locals>.MmapedValuezAA float protected by a mutex backed by a per-process mmaped file.Tc�v��|||||||f|_dtjvrPdtjvr>tjdtjd<tjdt
��	5|j
�|j��
j|�ddd�y#1swYyxYw)N�prometheus_multiproc_dir�PROMETHEUS_MULTIPROC_DIRzpprometheus_multiproc_dir variable has been deprecated in favor of the upper case naming PROMETHEUS_MULTIPROC_DIR)	�_params�os�environ�warnings�warn�DeprecationWarning�"_MmapedValue__check_for_pid_change�_MmapedValue__reset�append)rrrrrrr�multiprocess_moder�lock�valuess         ��rrz/MultiProcessValue.<locals>.MmapedValue.__init__<s������T�:�{�I�Wh�h�D�L�)�R�Z�Z�7�<V�^`�^h�^h�<h�9;���D^�9_��
�
�5�6��
�
�Q�Se�f���+�+�-������
�
�d�#����s�42B/�/B8c���|j\}}}}}}}|dk(r	|dz|z}n|}|�
vr^tjjtjjd�dj
|�d��}	t|	��
|<�
||_t|||||�|_
|jj|j�\|_|_
y)N�gauge�_r:z{}_{}.dbr )r;r<�path�joinr=r+�formatr�_filer�_key�
read_valuer�
_timestamp)rrrrrrrrD�file_prefix�filename�files�pids          ��r�__resetz.MultiProcessValue.<locals>.MmapedValue.__resetGs����\`�\h�\h�Y�C��d�J��Y�HY��g�~�!�C�i�*;�;��!���%�'��7�7�<�<��J�J�N�N�#=�>��%�%�k�3�w�<�@�B��&0��%9��k�"��{�+�D�J� ��d�J��Y�W�D�I�+/�:�:�+@�+@����+K�(�D�K��rc������}�d|k7rR|�d<�j�D]}|j���j��D]}|j��yy)Nr )rF�close�clearrB)r�
actual_pid�fr rSrT�process_identifierrFs    ����r�__check_for_pid_changez=MultiProcessValue.<locals>.MmapedValue.__check_for_pid_changeWsZ���+�-�J��7�|�z�)�)��G������A��G�G�I�(����
�#�E��M�M�O�$�
*rc����5|j�|xj|z
c_d|_|jj	|j
|j|j�ddd�y#1swYyxYwr�rArrPrM�write_valuerN)rrrEs  �rrz*MultiProcessValue.<locals>.MmapedValue.incbsS�����+�+�-����v�%��"%����
�
�&�&�t�y�y�$�+�+�t���O�	���s�A(A5�5A>Nc�����5|j�||_|xsd|_|jj	|j
|j|j�ddd�y#1swYyxYwrr^)rr r!rEs   �rr"z*MultiProcessValue.<locals>.MmapedValue.setisQ�����+�+�-�#���"+�"2�s����
�
�&�&�t�y�y�$�+�+�t���O�	���s�AA+�+A4c��yrr4r&s  rr(z3MultiProcessValue.<locals>.MmapedValue.set_exemplarps��rc�l���5|j�|jcddd�S#1swYyxYwr)rAr)rrEs �rr+z*MultiProcessValue.<locals>.MmapedValue.getts#�����+�+�-��{�{����s�*�3c��yrr4r*s rr.z3MultiProcessValue.<locals>.MmapedValue.get_exemplarys��r)�r)
r/r0r1r2r3rrBrArr"r(r+r.)rSrErTr[rFs�����r�MmapedValuer77s6���O��
�		$�	L� 		$�	P�	P�	�	#�
	rrer)r[rerSrErTrFs` @@@@r�MultiProcessValuerf's;���
�E�
�F��&�(�
)�C��6�D�D�D�L�rc�j�dtjvsdtjvr
t�StS)Nr9r:)r<r=rfr	r4rr�get_value_classrh�s.��
"�R�Z�Z�/�3M�QS�Q[�Q[�3[� �"�"��r)r<�	threadingrr>�	mmap_dictrrr	�getpidrfrh�
ValueClassr4rr�<module>rms:��	���+�"�"�>*,���V�r��
�
r
Back to Directory File Manager