Rearrange metrics
This commit is contained in:
parent
1ca0e78ca1
commit
3f213d908d
|
@ -83,9 +83,6 @@ class CounterMetric(BaseMetric):
|
||||||
def render(self):
|
def render(self):
|
||||||
return map_concat(self.render_item, sorted(self.counts.keys()))
|
return map_concat(self.render_item, sorted(self.counts.keys()))
|
||||||
|
|
||||||
def unregister_counter(self, *values):
|
|
||||||
self.counts.pop(values, None)
|
|
||||||
|
|
||||||
|
|
||||||
class CallbackMetric(BaseMetric):
|
class CallbackMetric(BaseMetric):
|
||||||
"""A metric that returns the numeric value returned by a callback whenever
|
"""A metric that returns the numeric value returned by a callback whenever
|
||||||
|
|
|
@ -61,6 +61,7 @@ from commands import (
|
||||||
from streams import STREAMS_MAP
|
from streams import STREAMS_MAP
|
||||||
|
|
||||||
from synapse.util.stringutils import random_string
|
from synapse.util.stringutils import random_string
|
||||||
|
from synapse.metrics.metric import CounterMetric
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
import synapse.metrics
|
import synapse.metrics
|
||||||
|
@ -70,12 +71,6 @@ import fcntl
|
||||||
|
|
||||||
metrics = synapse.metrics.get_metrics_for(__name__)
|
metrics = synapse.metrics.get_metrics_for(__name__)
|
||||||
|
|
||||||
inbound_commands_counter = metrics.register_counter(
|
|
||||||
"inbound_commands", labels=["command", "name", "conn_id"],
|
|
||||||
)
|
|
||||||
outbound_commands_counter = metrics.register_counter(
|
|
||||||
"outbound_commands", labels=["command", "name", "conn_id"],
|
|
||||||
)
|
|
||||||
connection_close_counter = metrics.register_counter(
|
connection_close_counter = metrics.register_counter(
|
||||||
"close_reason", labels=["reason_type"],
|
"close_reason", labels=["reason_type"],
|
||||||
)
|
)
|
||||||
|
@ -139,6 +134,13 @@ class BaseReplicationStreamProtocol(LineOnlyReceiver):
|
||||||
# The LoopingCall for sending pings.
|
# The LoopingCall for sending pings.
|
||||||
self._send_ping_loop = None
|
self._send_ping_loop = None
|
||||||
|
|
||||||
|
self.inbound_commands_counter = CounterMetric(
|
||||||
|
"inbound_commands", labels=["command"],
|
||||||
|
)
|
||||||
|
self.outbound_commands_counter = CounterMetric(
|
||||||
|
"outbound_commands", labels=["command"],
|
||||||
|
)
|
||||||
|
|
||||||
def connectionMade(self):
|
def connectionMade(self):
|
||||||
logger.info("[%s] Connection established", self.id())
|
logger.info("[%s] Connection established", self.id())
|
||||||
|
|
||||||
|
@ -197,7 +199,7 @@ class BaseReplicationStreamProtocol(LineOnlyReceiver):
|
||||||
|
|
||||||
self.last_received_command = self.clock.time_msec()
|
self.last_received_command = self.clock.time_msec()
|
||||||
|
|
||||||
inbound_commands_counter.inc(cmd_name, self.name, self.conn_id)
|
self.inbound_commands_counter.inc(cmd_name)
|
||||||
|
|
||||||
cmd_cls = COMMAND_MAP[cmd_name]
|
cmd_cls = COMMAND_MAP[cmd_name]
|
||||||
try:
|
try:
|
||||||
|
@ -246,7 +248,7 @@ class BaseReplicationStreamProtocol(LineOnlyReceiver):
|
||||||
self._queue_command(cmd)
|
self._queue_command(cmd)
|
||||||
return
|
return
|
||||||
|
|
||||||
outbound_commands_counter.inc(cmd.NAME, self.name, self.conn_id)
|
self.outbound_commands_counter.inc(cmd.NAME)
|
||||||
|
|
||||||
string = "%s %s" % (cmd.NAME, cmd.to_line(),)
|
string = "%s %s" % (cmd.NAME, cmd.to_line(),)
|
||||||
if "\n" in string:
|
if "\n" in string:
|
||||||
|
@ -334,14 +336,6 @@ class BaseReplicationStreamProtocol(LineOnlyReceiver):
|
||||||
self.state = ConnectionStates.CLOSED
|
self.state = ConnectionStates.CLOSED
|
||||||
self.pending_commands = []
|
self.pending_commands = []
|
||||||
|
|
||||||
for cmd in COMMAND_MAP:
|
|
||||||
outbound_commands_counter.unregister_counter(
|
|
||||||
cmd, self.name, self.conn_id
|
|
||||||
)
|
|
||||||
inbound_commands_counter.unregister_counter(
|
|
||||||
cmd, self.name, self.conn_id
|
|
||||||
)
|
|
||||||
|
|
||||||
if self.transport:
|
if self.transport:
|
||||||
self.transport.unregisterProducer()
|
self.transport.unregisterProducer()
|
||||||
|
|
||||||
|
@ -620,3 +614,24 @@ metrics.register_callback(
|
||||||
},
|
},
|
||||||
labels=["name", "conn_id"],
|
labels=["name", "conn_id"],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
metrics.register_callback(
|
||||||
|
"inbound_commands",
|
||||||
|
lambda: {
|
||||||
|
(k[0], p.name, p.conn_id): count
|
||||||
|
for p in connected_connections
|
||||||
|
for k, count in p.inbound_commands_counter.counts.iteritems()
|
||||||
|
},
|
||||||
|
labels=["command", "name", "conn_id"],
|
||||||
|
)
|
||||||
|
|
||||||
|
metrics.register_callback(
|
||||||
|
"outbound_commands",
|
||||||
|
lambda: {
|
||||||
|
(k[0], p.name, p.conn_id): count
|
||||||
|
for p in connected_connections
|
||||||
|
for k, count in p.outbound_commands_counter.counts.iteritems()
|
||||||
|
},
|
||||||
|
labels=["command", "name", "conn_id"],
|
||||||
|
)
|
||||||
|
|
Loading…
Reference in New Issue