
    0FieQ                    n    d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 erd dl
mZ  G d de          Zd	S )
    )annotations)Iterator)TYPE_CHECKING)PrometheusCollector)WorkStealingCounterMetricFamilyc                  &     e Zd Z fdZddZ xZS )WorkStealingMetricCollectorc                X    t                                          |           d| _        d S )Nstealing)super__init__	subsystem)selfserver	__class__s     Nlib/python3.11/site-packages/distributed/http/scheduler/prometheus/stealing.pyr   z$WorkStealingMetricCollector.__init__   s&       #    returnIterator[CounterMetricFamily]c              #     K   ddl m} 	 | j        j        d         }n# t          $ r Y d S w xY w ||                     d          ddg          } ||                     d          d	dg          }t          |j                  D ]o\  }}|                    t          |          g|j
        d         |                    |                    t          |          g|j
        d         |                    p|V  |V  d S )
Nr   r   r   request_count_totalz6Total number of stealing requests per cost multiplier.cost_multiplier)labelsrequest_cost_totalz4Total cost of stealing requests per cost multiplier.)prometheus_client.corer	   r   
extensionsKeyError
build_name	enumeratecost_multipliers
add_metricstrmetrics)r   r	   r   stealing_request_count_totalstealing_request_cost_totallevel
multipliers          r   collectz#WorkStealingMetricCollector.collect   sf     >>>>>>	%)[%;J%GHH 	 	 	FF	 (;':OO122D%&(
 (
 (
$ ':&9OO011B%&'
 '
 '
# "+8+D!E!E 	 	E:(33Z!8#34I#J5#Q   (22Z!8#34H#I%#P    +***))))))s    
++)r   r   )__name__
__module____qualname__r   r*   __classcell__)r   s   @r   r   r      sL        $ $ $ $ $* * * * * * * *r   r   N)
__future__r   collections.abcr   typingr   distributed.http.prometheusr   distributed.stealingr   r   r	   r    r   r   <module>r5      s    " " " " " " $ $ $ $ $ $             ; ; ; ; ; ; - - - - - - ;::::::#* #* #* #* #*"5 #* #* #* #* #*r   