diff --git a/trustgraph/base/consumer.py b/trustgraph/base/consumer.py index 0c975cf5..eeaf83a1 100644 --- a/trustgraph/base/consumer.py +++ b/trustgraph/base/consumer.py @@ -1,6 +1,6 @@ from pulsar.schema import JsonSchema -from prometheus_client import start_http_server, Histogram, Info, Counter +from prometheus_client import Histogram, Info, Counter, Enum import time from . base_processor import BaseProcessor @@ -10,6 +10,15 @@ class Consumer(BaseProcessor): def __init__(self, **params): + if not hasattr(__class__, "state_metric"): + __class__.state_metric = Enum( + 'processor_state', 'Processor state', + states=['starting', 'running', 'stopped'] + ) + __class__.state_metric.state('starting') + + __class__.state_metric.state('starting') + super(Consumer, self).__init__(**params) input_queue = params.get("input_queue") @@ -47,6 +56,8 @@ class Consumer(BaseProcessor): def run(self): + __class__.state_metric.state('running') + while True: msg = self.consumer.receive() diff --git a/trustgraph/base/consumer_producer.py b/trustgraph/base/consumer_producer.py index 3f9d0f4f..08ae1880 100644 --- a/trustgraph/base/consumer_producer.py +++ b/trustgraph/base/consumer_producer.py @@ -1,6 +1,6 @@ from pulsar.schema import JsonSchema -from prometheus_client import Histogram, Info, Counter +from prometheus_client import Histogram, Info, Counter, Enum import time from . base_processor import BaseProcessor @@ -12,6 +12,15 @@ class ConsumerProducer(BaseProcessor): def __init__(self, **params): + if not hasattr(__class__, "state_metric"): + __class__.state_metric = Enum( + 'processor_state', 'Processor state', + states=['starting', 'running', 'stopped'] + ) + __class__.state_metric.state('starting') + + __class__.state_metric.state('starting') + input_queue = params.get("input_queue") output_queue = params.get("output_queue") subscriber = params.get("subscriber") @@ -66,6 +75,8 @@ class ConsumerProducer(BaseProcessor): def run(self): + __class__.state_metric.state('running') + while True: msg = self.consumer.receive()