summaryrefslogtreecommitdiff
path: root/shared/tests/test_metrics.py
diff options
context:
space:
mode:
authorTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2026-04-01 16:09:06 +0900
committerTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2026-04-01 16:09:06 +0900
commitec792a3d379c911165038d8da5b339df6ca3fccd (patch)
tree324361089617b18110265efd10d174bbb0990b9f /shared/tests/test_metrics.py
parente1bf24b2a639ba21361ae408ee6c1eebe37801aa (diff)
feat(shared): add health checks and Prometheus metrics
Diffstat (limited to 'shared/tests/test_metrics.py')
-rw-r--r--shared/tests/test_metrics.py51
1 files changed, 51 insertions, 0 deletions
diff --git a/shared/tests/test_metrics.py b/shared/tests/test_metrics.py
new file mode 100644
index 0000000..079f01c
--- /dev/null
+++ b/shared/tests/test_metrics.py
@@ -0,0 +1,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