7
7
ConsoleMetricHandler ,
8
8
JsonLogMetricHandler ,
9
9
Metric ,
10
+ NodestreamMetricRegistry ,
10
11
Metrics ,
11
12
NullMetricHandler ,
12
13
PrometheusMetricHandler ,
13
14
)
14
15
15
16
17
+ def test_metric_registry_contains_subclasses_in_all_metrics ():
18
+ for metric in NodestreamMetricRegistry .get_all_metrics ().values ():
19
+ assert metric in NodestreamMetricRegistry ._subclasses
20
+
21
+
22
+ def test_metric_increment_on_handler_increments_metric_on_handler (mocker ):
23
+ handler = mocker .Mock ()
24
+ metric = NodestreamMetricRegistry .RECORDS
25
+ metric .increment_on (handler , 1 )
26
+ handler .increment .assert_called_once_with (metric , 1 )
27
+
28
+
29
+ def test_metric_decrement_on_handler_decrements_metric_on_handler (mocker ):
30
+ handler = mocker .Mock ()
31
+ metric = NodestreamMetricRegistry .RECORDS
32
+ metric .decrement_on (handler , 1 )
33
+ handler .decrement .assert_called_once_with (metric , 1 )
34
+
35
+
36
+ def test_prometheus_metric_handler_registers_new_metrics (mocker ):
37
+ handler = PrometheusMetricHandler ()
38
+ metric = Metric ("new_metric" , "New metric" )
39
+ metric .register (handler )
40
+ assert metric in handler .instruments_by_metric .keys ()
41
+
42
+
16
43
def test_null_metric_handler ():
17
44
handler = NullMetricHandler ()
18
- handler .increment (Metric .RECORDS , 1 )
19
- handler .decrement (Metric .RECORDS , 1 )
45
+ handler .increment (NodestreamMetricRegistry .RECORDS , 1 )
46
+ handler .decrement (NodestreamMetricRegistry .RECORDS , 1 )
20
47
# No assertions needed as NullMetricHandler does nothing
21
48
22
49
@@ -26,25 +53,27 @@ def test_prometheus_metric_handler(mocker):
26
53
handler = PrometheusMetricHandler ()
27
54
handler .start ()
28
55
mock_start_http_server .assert_called_once ()
29
- handler .increment (Metric .RECORDS , 1 )
30
- handler .decrement (Metric .RECORDS , 1 )
56
+ handler .increment (NodestreamMetricRegistry .RECORDS , 1 )
57
+ handler .decrement (NodestreamMetricRegistry .RECORDS , 1 )
31
58
handler .stop ()
32
59
33
60
34
61
def test_console_metric_handler (mocker ):
35
62
mock_command = mocker .Mock ()
36
63
handler = ConsoleMetricHandler (mock_command )
37
- handler .increment (Metric .RECORDS , 1 )
38
- handler .decrement (Metric .RECORDS , 1 )
64
+ handler .increment (NodestreamMetricRegistry .RECORDS , 1 )
65
+ handler .decrement (NodestreamMetricRegistry .RECORDS , 1 )
66
+ handler .tick ()
39
67
handler .stop ()
40
68
mock_command .table .assert_called_once ()
41
69
42
70
43
71
def test_json_log_metric_handler (mocker ):
44
72
mock_logger = mocker .patch ("nodestream.metrics.getLogger" ).return_value
45
73
handler = JsonLogMetricHandler ()
46
- handler .increment (Metric .RECORDS , 1 )
47
- handler .decrement (Metric .RECORDS , 1 )
74
+ handler .increment (NodestreamMetricRegistry .RECORDS , 1 )
75
+ handler .decrement (NodestreamMetricRegistry .RECORDS , 1 )
76
+ handler .tick ()
48
77
handler .stop ()
49
78
mock_logger .info .assert_called_once ()
50
79
@@ -56,12 +85,12 @@ def test_aggregate_handler(mocker):
56
85
handler .start ()
57
86
mock_handler1 .start .assert_called_once ()
58
87
mock_handler2 .start .assert_called_once ()
59
- handler .increment (Metric .RECORDS , 1 )
60
- mock_handler1 .increment .assert_called_once_with (Metric .RECORDS , 1 )
61
- mock_handler2 .increment .assert_called_once_with (Metric .RECORDS , 1 )
62
- handler .decrement (Metric .RECORDS , 1 )
63
- mock_handler1 .decrement .assert_called_once_with (Metric .RECORDS , 1 )
64
- mock_handler2 .decrement .assert_called_once_with (Metric .RECORDS , 1 )
88
+ handler .increment (NodestreamMetricRegistry .RECORDS , 1 )
89
+ mock_handler1 .increment .assert_called_once_with (NodestreamMetricRegistry .RECORDS , 1 )
90
+ mock_handler2 .increment .assert_called_once_with (NodestreamMetricRegistry .RECORDS , 1 )
91
+ handler .decrement (NodestreamMetricRegistry .RECORDS , 1 )
92
+ mock_handler1 .decrement .assert_called_once_with (NodestreamMetricRegistry .RECORDS , 1 )
93
+ mock_handler2 .decrement .assert_called_once_with (NodestreamMetricRegistry .RECORDS , 1 )
65
94
handler .stop ()
66
95
mock_handler1 .stop .assert_called_once ()
67
96
mock_handler2 .stop .assert_called_once ()
@@ -70,8 +99,8 @@ def test_aggregate_handler(mocker):
70
99
def test_metrics_context (mocker ):
71
100
handler = mocker .Mock ()
72
101
with Metrics .capture (handler ) as metrics :
73
- metrics .increment (Metric .RECORDS , 1 )
74
- handler .increment .assert_called_once_with (Metric .RECORDS , 1 )
102
+ metrics .increment (NodestreamMetricRegistry .RECORDS , 1 )
103
+ handler .increment .assert_called_once_with (NodestreamMetricRegistry .RECORDS , 1 )
75
104
handler .stop .assert_called_once ()
76
105
77
106
0 commit comments