blob: 079f01c8d77aa2bfcaf71a3bf84659b73d0d5dd1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
"""Tests for Prometheus metrics utilities."""
import pytest
from prometheus_client import CollectorRegistry
def make_metrics(service_name="test-service", registry=None):
from shared.metrics import ServiceMetrics
return ServiceMetrics(service_name, registry=registry)
def test_metrics_creates_with_prefix():
"""ServiceMetrics stores sanitized service name prefix."""
registry = CollectorRegistry()
m = make_metrics("my-service", registry=registry)
assert m.service_name == "my_service"
def test_errors_total_increment():
"""errors_total counter can be incremented with labels."""
registry = CollectorRegistry()
m = make_metrics("test-svc", registry=registry)
m.errors_total.labels(service="test_svc", error_type="timeout").inc()
assert m.errors_total.labels(service="test_svc", error_type="timeout")._value.get() == 1.0
def test_events_processed_increment():
"""events_processed counter can be incremented with labels."""
registry = CollectorRegistry()
m = make_metrics("test-svc", registry=registry)
m.events_processed.labels(service="test_svc", event_type="candle").inc(5)
assert m.events_processed.labels(service="test_svc", event_type="candle")._value.get() == 5.0
def test_processing_seconds_observe():
"""processing_seconds histogram can observe values."""
registry = CollectorRegistry()
m = make_metrics("test-svc", registry=registry)
m.processing_seconds.labels(service="test_svc").observe(0.5)
m.processing_seconds.labels(service="test_svc").observe(1.5)
# Sum should be 2.0
assert m.processing_seconds.labels(service="test_svc")._sum.get() == 2.0
def test_service_up_gauge():
"""service_up gauge can be set."""
registry = CollectorRegistry()
m = make_metrics("test-svc", registry=registry)
m.service_up.labels(service="test_svc").set(1)
assert m.service_up.labels(service="test_svc")._value.get() == 1.0
m.service_up.labels(service="test_svc").set(0)
assert m.service_up.labels(service="test_svc")._value.get() == 0.0
|