Skip to content

Commit

Permalink
Adding only if
Browse files Browse the repository at this point in the history
  • Loading branch information
dmvieira committed Jun 9, 2020
1 parent 97310c8 commit fc3533b
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 15 deletions.
19 changes: 10 additions & 9 deletions barterdude/hooks/metrics/prometheus/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
from barterdude.hooks import HttpHook
from barterdude.hooks.metrics.prometheus.definitions import Definitions
from barterdude.hooks.metrics.prometheus.metrics import Metrics
from barterdude.conf import BARTERDUDE_DEFAULT_APP_NAME
try:
from prometheus_client import (
CollectorRegistry,
Expand All @@ -25,12 +24,12 @@ class Prometheus(HttpHook):
def __init__(
self,
barterdude: BarterDude,
labels: Optional[dict] = None,
labels: dict = {},
path: str = "/metrics",
registry: CollectorRegistry = None
):
self.__registry = registry or CollectorRegistry()
self.__labels = labels or {"application": BARTERDUDE_DEFAULT_APP_NAME}
self.__labels = labels
self.__metrics = Metrics(self.__registry)
self.__definitions = Definitions(
self.__registry, self.__metrics, list(self.__labels.keys())
Expand All @@ -45,10 +44,11 @@ def metrics(self):

async def before_consume(self, message: RabbitMQMessage):
hash_message = id(message)
self.metrics[self.__definitions.BEFORE_CONSUME].labels(
**self.__labels
).inc()
self._msg_start[hash_message] = time.time()
metric = self.metrics[self.__definitions.BEFORE_CONSUME]
if self.__labels:
metric = metric.labels(**self.__labels)
metric.inc()

async def _on_complete(self,
message: RabbitMQMessage,
Expand All @@ -72,9 +72,10 @@ async def on_fail(self, message: RabbitMQMessage, error: Exception):
await self._on_complete(message, self.__definitions.FAIL, error)

async def on_connection_fail(self, error: Exception, retries: int):
self.metrics[self.__definitions.CONNECTION_FAIL].labels(
**self.__labels
).inc()
metric = self.metrics[self.__definitions.CONNECTION_FAIL]
if self.__labels:
metric = metric.labels(**self.__labels)
metric.inc()

async def __call__(self, req: web.Request):
return web.Response(
Expand Down
9 changes: 3 additions & 6 deletions tests_integration/test_barterdude.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
from barterdude.hooks.healthcheck import Healthcheck
from barterdude.hooks import logging as hook_logging
from barterdude.hooks.metrics.prometheus import Prometheus
from barterdude.conf import BARTERDUDE_DEFAULT_APP_NAME
from tests_unit.helpers import load_fixture
from tests_integration.helpers import ErrorHook
from asyncworker.connections import AMQPConnection
Expand Down Expand Up @@ -183,18 +182,16 @@ async def handler(message):
text = await response.text()

self.assertEqual(status_code, 200)
name = BARTERDUDE_DEFAULT_APP_NAME
self.assertNotEqual(-1, text.find(
'barterdude_received_number_before_consume_messages_total'
'{application="%s"} 1.0' % name
'barterdude_received_number_before_consume_messages_total 1.0'
))
self.assertNotEqual(-1, text.find(
'barterdude_processing_message_seconds_bucket'
'{application="%s",error="",le="0.025",state="success"} 1.0' % name
'{error="",le="0.025",state="success"} 1.0'
))
self.assertNotEqual(-1, text.find(
'barterdude_processing_message_seconds_count'
'{application="%s",error="",state="success"} 1.0' % name
'{error="",state="success"} 1.0'
))

async def test_register_multiple_prometheus_hooks(self):
Expand Down

0 comments on commit fc3533b

Please sign in to comment.