
    0Fie                    p    d dl mZ d dlmZ d dlZd dlmZ  G d d          Z G d de          Z	ddZ
dS )    )annotations)import_moduleN)RequestHandlerc                      e Zd Zd Zd ZdS )PrometheusCollectorc                j    || _         t          j                            d          | _        d | _        d S )Nz*distributed.dashboard.prometheus.namespace)serverdaskconfigget	namespace	subsystem)selfr	   s     ;lib/python3.11/site-packages/distributed/http/prometheus.py__init__zPrometheusCollector.__init__   s*    )UVV    c                    g }| j         r|                    | j                    | j        r|                    | j                   |                    |           d                    |          S )N_)r   appendr   join)r   name	full_names      r   
build_namezPrometheusCollector.build_name   sm    	> 	-T^,,,> 	-T^,,,xx	"""r   N)__name__
__module____qualname__r   r    r   r   r   r   
   s2          
# # # # #r   r   c                      e Zd Zd ZdS )PrometheusNotAvailableHandlerc                \    |                      d           |                     dd           d S )Nz# Prometheus metrics are not available, see: https://docs.dask.org/en/stable/how-to/setup-prometheus.html#setup-prometheus-monitoringzContent-Typeztext/plain; version=0.0.4)write
set_header)r   s    r   r   z!PrometheusNotAvailableHandler.get   s;    

g	
 	
 	
 	(CDDDDDr   N)r   r   r   r   r   r   r   r   r      s(        E E E E Er   r   module_namestrhandler_namereturntype[RequestHandler]c                    	 ddl }n# t          $ r
 t          cY S w xY wt          |           }t	          ||          }t          |t                    sJ |S )zImport ``handler_name`` from ``module_name`` if ``prometheus_client``
    is installed, import the ``PrometheusNotAvailableHandler`` otherwise.r   N)prometheus_clientModuleNotFoundErrorr   r   getattr
issubclassr   )r#   r%   r)   modulehandlers        r   import_metrics_handlerr/   #   st    -      - - -,,,,-;''Ffl++Gg~.....Ns    )r#   r$   r%   r$   r&   r'   )
__future__r   	importlibr   dask.configr
   distributed.http.utilsr   r   r   r/   r   r   r   <module>r4      s    " " " " " " # # # # # #     1 1 1 1 1 1# # # # # # # # E E E E EN E E E
 
 
 
 
 
r   