summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDana Powers <dana.powers@gmail.com>2016-08-04 12:01:48 -0700
committerDana Powers <dana.powers@gmail.com>2016-08-04 13:05:22 -0700
commita6b9b135077f7b578f05470afb814d5df5b93ba7 (patch)
tree931a50d7da2b3b64ad5bab0afcd545f4a2829e10
parent3c9b1b6fc498f95806ee12f67f84ea548ac1378f (diff)
downloadkafka-python-a6b9b135077f7b578f05470afb814d5df5b93ba7.tar.gz
Add connection-creation-rate / connection-close-rate to KafkaClientMetrics
-rw-r--r--kafka/client_async.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/kafka/client_async.py b/kafka/client_async.py
index 8af4acc..708d03d 100644
--- a/kafka/client_async.py
+++ b/kafka/client_async.py
@@ -273,6 +273,8 @@ class KafkaClient(object):
except KeyError:
pass
self._selector.register(conn._sock, selectors.EVENT_READ, conn)
+ if self._sensors:
+ self._sensors.connection_created.record()
if 'bootstrap' in self._conns and node_id != 'bootstrap':
bootstrap = self._conns.pop('bootstrap')
@@ -289,6 +291,8 @@ class KafkaClient(object):
self._selector.unregister(conn._sock)
except KeyError:
pass
+ if self._sensors:
+ self._sensors.connection_closed.record()
if self._refresh_on_disconnects and not self._closed:
log.warning("Node %s connection failed -- refreshing metadata", node_id)
self.cluster.request_update()
@@ -892,6 +896,15 @@ class KafkaClientMetrics(object):
self.metrics = metrics
self.metric_group_name = metric_group_prefix + '-metrics'
+ self.connection_closed = metrics.sensor('connections-closed')
+ self.connection_closed.add(metrics.metric_name(
+ 'connection-close-rate', self.metric_group_name,
+ 'Connections closed per second in the window.'), Rate())
+ self.connection_created = metrics.sensor('connections-created')
+ self.connection_created.add(metrics.metric_name(
+ 'connection-creation-rate', self.metric_group_name,
+ 'New connections established per second in the window.'), Rate())
+
self.select_time = metrics.sensor('select-time')
self.select_time.add(metrics.metric_name(
'select-rate', self.metric_group_name,