Skip to content

Commit f0768e7

Browse files
committed
Move stats under a single module, hook up more stats
1 parent 696e1bb commit f0768e7

6 files changed

Lines changed: 18 additions & 9 deletions

File tree

receptor/config.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55
import os
66
import ssl
77

8-
from prometheus_client import Counter, Gauge
9-
108
from .entrypoints import run_as_node, run_as_controller, run_as_ping, run_as_send
119
from .exceptions import ReceptorRuntimeError, ReceptorConfigError
1210

@@ -32,12 +30,6 @@
3230
},
3331
}
3432

35-
messages_received_counter = Counter("incoming_messages", "Messages received from Receptor Peers")
36-
connected_peers_guage = Gauge("connected_peers", "Number of active peer connections")
37-
work_counter = Counter("work_events", "A count of the number of work events that have been received")
38-
active_work_gauge = Gauge("active_work", "Amount of work currently being performed")
39-
route_counter = Counter("route_events", "A count of the number of messages that have been routed elsewhere in the mesh")
40-
4133

4234
def py_class(class_spec):
4335
if class_spec not in SINGLETONS:

receptor/protocol.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
from .messages import envelope
1212
from .exceptions import ReceptorBufferError
13-
from .config import connected_peers_guage
13+
from .stats import connected_peers_guage
1414

1515
logger = logging.getLogger(__name__)
1616

receptor/receptor.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from .router import MeshRouter
1010
from .work import WorkManager
1111
from .messages import envelope, directive
12+
from .stats import messages_received_counter
1213
from . import exceptions
1314

1415
RECEPTOR_DIRECTIVE_NAMESPACE = 'receptor'
@@ -203,6 +204,7 @@ async def handle_message(self, msg):
203204
directive=self.handle_directive,
204205
response=self.handle_response,
205206
)
207+
messages_received_counter.inc()
206208
outer_env = envelope.OuterEnvelope(**msg)
207209
next_hop = self.router.next_hop(outer_env.recipient)
208210
if next_hop:

receptor/router.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from dateutil import parser
1010
from .messages import envelope
1111
from .exceptions import UnrouteableError, ReceptorBufferError
12+
from .stats import route_counter
1213

1314
logger = logging.getLogger(__name__)
1415

@@ -145,6 +146,7 @@ async def forward(self, outer_envelope, next_hop):
145146
outer_envelope.route_list.append(self.node_id)
146147
logger.debug(f'Forwarding frame {outer_envelope.frame_id} to {next_hop}')
147148
try:
149+
route_counter.inc()
148150
buffer_obj.push(outer_envelope.serialize().encode("utf-8"))
149151
except ReceptorBufferError as e:
150152
logger.exception("Receptor Buffer Write Error forwarding message to {}: {}".format(next_hop, e))

receptor/stats.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
from prometheus_client import Counter, Gauge
2+
3+
messages_received_counter = Counter("incoming_messages", "Messages received from Receptor Peers")
4+
connected_peers_guage = Gauge("connected_peers", "Number of active peer connections")
5+
work_counter = Counter("work_events", "A count of the number of work events that have been received")
6+
active_work_gauge = Gauge("active_work", "Amount of work currently being performed")
7+
route_counter = Counter("route_events", "A count of the number of messages that have been routed elsewhere in the mesh")

receptor/work.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44

55
from . import exceptions
66
from .messages import envelope
7+
from .stats import work_counter, active_work_gauge
8+
9+
710
logger = logging.getLogger(__name__)
811

912

@@ -27,13 +30,16 @@ def get_work(self):
2730
return self.active_work
2831

2932
def add_work(self, env):
33+
work_counter.inc()
34+
active_work_gauge.inc()
3035
self.active_work.append(dict(id=env.message_id,
3136
directive=env.directive,
3237
sender=env.sender))
3338

3439
def remove_work(self, env):
3540
for work in self.active_work:
3641
if env.message_id == work["id"]:
42+
active_work_gauge.dec()
3743
self.active_work.remove(work)
3844

3945
async def handle(self, inner_env):

0 commit comments

Comments
 (0)