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

�

_��g4���ddlmZmZddlZddlmZddlmZmZm	Z	m
Z
ddlmZGd�de�Z
Gd	�d
e
�ZGd�de
�ZGd
�d�Zed��Zy)�)�ABC�abstractmethodN)�Lock)�Dict�Iterable�List�Optional�)�Metricc�(�eZdZedeefd��Zy)�	Collector�returnc��y�N���selfs �I/opt/hc_python/lib/python3.12/site-packages/prometheus_client/registry.py�collectzCollector.collects���N)�__name__�
__module__�__qualname__rrrrrrrr
r

s ���
��&�)�
��
rr
c��eZdZdeefd�Zy)�_EmptyCollectorrc��gSrrrs rrz_EmptyCollector.collects���	rN)rrrrrrrrrrrs����&�)�rrc���eZdZdZddedeeeeffd�Zde	ddfd�Z
de	ddfd	�Zd
�Zde
efd�Zde
edd
fd�Zdeeeefddfd�Zdeeeeffd�Zd�Zddedeeeefdeefd�Zy)�CollectorRegistryz�Metric collector registry.

    Collectors must have a no-argument method 'collect' that returns a list of
    Metric objects. The returned metrics should be consistent with the Prometheus
    exposition formats.
    N�
auto_describe�target_infoc�|�i|_i|_||_t�|_i|_|j
|�yr)�_collector_to_names�_names_to_collectors�_auto_describer�_lock�_target_info�set_target_info)rrr s   r�__init__zCollectorRegistry.__init__s9��?A�� �:<��!�+����V��
�68������[�)r�	collectorrc�2�|j5|j|�}t|j�j	|�}|rtdj
|���|D]}||j|<�||j|<ddd�y#1swYyxYw)z Add a collector to the registry.z.Duplicated timeseries in CollectorRegistry: {}N)r%�
_get_names�setr#�intersection�
ValueError�formatr")rr)�names�
duplicates�names     r�registerzCollectorRegistry.register%s���
�Z�Z��O�O�I�.�E��T�6�6�7�D�D�U�K�J�� �D�K�K�"�$�%�%���2;��)�)�$�/��27�D�$�$�Y�/��Z�Z�s�A7B
�
Bc��|j5|j|D]}|j|=�|j|=ddd�y#1swYyxYw)z%Remove a collector from the registry.N)r%r"r#)rr)r2s   r�
unregisterzCollectorRegistry.unregister2sD��
�Z�Z��0�0��;���-�-�d�3�<��(�(��3��Z�Z�s�/A�Ac�p�d}	|j}|s|jr|j}|sgSg}ddggd�gd�gd�dgd�}|�D]\}|j	|j
�|j
|jg�D] }|j	|j
|z��"�^|S#t$rY��wxYw)	z@Get names of timeseries the collector produces and clashes with.N�_total�_created)�_sum�_countr8)�_bucketr9r:r8)r;�_gsum�_gcount�_info)�counter�summary�	histogram�gaugehistogram�info)�describe�AttributeErrorr$r�appendr2�get�type)rr)�	desc_func�result�
type_suffixes�metric�suffixs       rr+zCollectorRegistry._get_names9s����	�	�!�*�*�I��T�0�0�!�)�)�I���I��� �*�-�5�B�=��I�
�
� �k�F��M�M�&�+�+�&�'�+�+�F�K�K��<���
�
�f�k�k�F�2�3�=�"��
��+�	��	�s�B)�)	B5�4B5c#�K�d}d}|j5tj|j�}|jr|j	�}ddd�|r|��|D]}|j�Ed{����y#1swY�/xYw7��w)z3Yields metrics from the collectors in the registry.N)r%�copyr"r&�_target_info_metricr)r�
collectors�tir)s    rrzCollectorRegistry.collectVsz�����
�
��
�Z�Z����4�#;�#;�<�J�� � ��-�-�/�����H�#�I� �(�(�*�*�*�$�
�Z��
+�s(�B�<A=�&B�5B	�6B�=B�Br0�RestrictedRegistryc�0�t|�}t||�S)aReturns object that only collects some metrics.

        Returns an object which upon collect() will return
        only samples with the given names.

        Intended usage is:
            generate_latest(REGISTRY.restricted_registry(['a_timeseries']))

        Experimental.)r,rS)rr0s  r�restricted_registryz%CollectorRegistry.restricted_registrycs���E�
��!�%��.�.r�labelsc�"�|j5|r=|jsd|jvrtd��t	�|jd<n(|jr|jjdd�||_ddd�y#1swYyxYw)Nr z7CollectorRegistry already contains a target_info metric)r%r&r#r.r�pop)rrVs  rr'z!CollectorRegistry.set_target_infopsr��
�Z�Z���(�(�]�d�>W�>W�-W�$�%^�_�_�;J�;L��)�)�-�8��"�"��)�)�-�-�m�T�B� &�D���Z�Z�s�A/B�Bc�^�|j5|jcddd�S#1swYyxYwr)r%r&rs r�get_target_infoz!CollectorRegistry.get_target_infozs��
�Z�Z��$�$��Z�Z�s�#�,c�Z�tddd�}|jd|jd�|S)N�targetzTarget metadatarCr r
)r�
add_sampler&)r�ms  rrPz%CollectorRegistry._target_info_metric~s,���8�.��7��	���]�D�$5�$5�q�9��rr2c��|�i}|j�D]B}|jD]1}|j|k(s�|j|k(s�#|jccS�Dy)z~Returns the sample value, or None if not found.

        This is inefficient, and intended only for use in unittests.
        N)r�samplesr2rV�value)rr2rVrL�ss     r�get_sample_valuez"CollectorRegistry.get_sample_value�sP��
�>��F��l�l�n�F��^�^���6�6�T�>�a�h�h�&�&8��7�7�N�$�%�r)FNr)rrr�__doc__�boolr	r�strr(r
r3r5r+rrrrUr'rZrP�floatrcrrrrrs����*�d�*��$�s�TW�x�.�AY�*�8�)�8��8�4�I�4�$�4��:+��&�)�+�/��#��/�;O�/�'�h�t�C��H�~�&>�'�4�'�%��$�s�C�x�.�!9�%��
�S��(�4��S��>�2J��V^�_d�Ve�rrc�4�eZdZdeedefd�Zdeefd�Zy)rSr0�registryc�2�t|�|_||_yr)r,�	_name_set�	_registry)rr0ris   rr(zRestrictedRegistry.__init__�s���U����!��rrc#�0K�t�}d}|jj5d|jvr0|jjr|jj�}|jD]I}|dk7s�	||jjvs�"|j|jj|��K	ddd�|r|��|D]9}|j�D]$}|j|j�}|s�!|���&�;y#1swY�NxYw�w)Nr )
r,rlr%rkr&rPr#�addr�_restricted_metric)rrQ�target_info_metricr2r)rLr^s       rrzRestrictedRegistry.collect�s������U�
�!��
�^�^�
!�
!�����.�4�>�>�3N�3N�%)�^�^�%G�%G�%I�"������=�(�T�T�^�^�5X�5X�-X��N�N�4�>�>�#F�#F�t�#L�M�'�"��$�$�#�I�#�+�+�-���-�-�d�n�n�=����G�.�$�"�
!�s0�#D�AD
�9D
�*D
�=AD�	D�
D�DN)	rrrrrfrr(rrrrrrSrS�s+��"�h�s�m�"�7H�"���&�)�rrST)r)�abcrrrO�	threadingr�typingrrrr	�metrics_corerr
rrrS�REGISTRYrrr�<module>rvsT��#���1�1� �
��
��i��
y�	�y�x��.�4�0�r
Back to Directory File Manager