o
    `j                     @   sf   d Z ddlZddlmZ ddlmZmZmZmZ ddl	m
Z
 eeZG dd dZG dd	 d	ZdS )
z:Metrics for kafka.net connection manager and connections.
    N)AnonMeasurable)AvgCountMaxRate)TimeUnitc                   @      e Zd ZdZdd ZdS )KafkaManagerMetricszMetrics for KafkaConnectionManager (equivalent to KafkaClientMetrics).
    Note that kafka.net does not track select_time or io_time.
    c                    s   || _ |d }|d| _| j|d|dt  |d| _| j|d|dt  ||d|d	t fd
d d S )N-metricszconnections-closedzconnection-close-ratez,Connections closed per second in the window.zconnections-createdzconnection-creation-ratez5New connections established per second in the window.zconnection-countz)The current number of active connections.c                    s   t  S )N)len)confignowconns O/home/djax/ivt_ai_plugin/venv/lib/python3.10/site-packages/kafka/net/metrics.py<lambda>!   s    z.KafkaManagerMetrics.__init__.<locals>.<lambda>)	metricssensorconnection_closedaddmetric_namer   connection_created
add_metricr   )selfr   metric_group_prefixr   metric_group_namer   r   r   __init__   s0   


zKafkaManagerMetrics.__init__N__name__
__module____qualname____doc__r   r   r   r   r   r	      s    r	   c                   @   r   )KafkaConnectionMetricszMMetrics for a single KafkaConnection (equivalent to BrokerConnectionMetrics).c                 C   sZ  || _ |ds|d }|d}||d|dtt d |jd|gd}||d|d	t  ||d
|dtt d ||d|dt  ||d|dt  |jd|gd}||d|dt  ||d|dtt d |d}||d|dt  ||d|dt  |d}	|	|d|dt  |	|d|dt  |d| d s| d!| }|jd| d |dgd}||d|d"t  ||d
|dtt d ||d|dt  ||d|dt  |jd| d#|dgd}||d|d$t  ||d|d%tt d |jd| d&|dgd}
|
|d|dt  |
|d|dt  |jd| d'|dgd}	|	|d|dt  |	|d|dt  |d| d | _	|d| d#| _
|d| d&| _|d| d'| _d S )(Nzbytes-sent-receivedr
   znetwork-io-ratezYThe average number of network operations (reads or writes) on all connections per second.)sampled_statz
bytes-sent)parentszoutgoing-byte-ratezDThe average number of outgoing bytes sent per second to all servers.zrequest-ratez/The average number of requests sent per second.zrequest-size-avgz/The average size of all requests in the window.zrequest-size-maxz3The maximum size of any request sent in the window.zbytes-receivedzincoming-byte-ratez!Bytes/second read off all socketszresponse-ratez#Responses received sent per second.zrequest-latencyzrequest-latency-avgz"The average request latency in ms.zrequest-latency-maxz"The maximum request latency in ms.zthrottle-timezthrottle-time-avgz The average throttle time in ms.zthrottle-time-maxz The maximum throttle time in ms.znode-z.bytes-sentz-node-metrics.node-z5The average number of outgoing bytes sent per second.z.bytes-receivedz,Bytes/second read off node-connection socketz4The average number of responses received per second.z.latencyz	.throttle)r   
get_sensorr   r   r   r   r   r   r   
bytes_sentbytes_receivedrequest_timethrottle_time)r   r   r   node_idr   bytes_transferredr'   r(   request_latencyr*   r)   r   r   r   r   &   s@  
















zKafkaConnectionMetrics.__init__Nr   r   r   r   r   r#   $   s    r#   )r"   loggingkafka.metrics.measurabler   kafka.metrics.statsr   r   r   r   kafka.metrics.stats.rater   	getLoggerr   logr	   r#   r   r   r   r   <module>   s    
