9
9
import static org .mockito .Mockito .verify ;
10
10
import static org .mockito .Mockito .when ;
11
11
12
+ import io .airbyte .db .instance .configs .jooq .generated .enums .GeographyType ;
12
13
import io .airbyte .db .instance .jobs .jooq .generated .enums .JobStatus ;
13
14
import io .airbyte .metrics .lib .MetricAttribute ;
14
15
import io .airbyte .metrics .lib .MetricClient ;
@@ -25,6 +26,12 @@ class EmitterTest {
25
26
private MetricClient client ;
26
27
private MetricRepository repo ;
27
28
29
+ private static final String SYNC_QUEUE = "SYNC" ;
30
+ private static final String AWS_QUEUE = "AWS" ;
31
+
32
+ private static final String EU_REGION = "EU" ;
33
+ private static final String AUTO_REGION = "AUTO" ;
34
+
28
35
@ BeforeEach
29
36
void setUp () {
30
37
client = mock (MetricClient .class );
@@ -33,29 +40,35 @@ void setUp() {
33
40
34
41
@ Test
35
42
void TestNumPendingJobs () {
36
- final var value = 101 ;
37
- when (repo .numberOfPendingJobs ()).thenReturn (value );
43
+ final var value = Map . of ( "AUTO" , 101 , "EU" , 20 ) ;
44
+ when (repo .numberOfPendingJobsByGeography ()).thenReturn (value );
38
45
39
46
final var emitter = new NumPendingJobs (client , repo );
40
47
emitter .Emit ();
41
48
42
49
assertEquals (Duration .ofSeconds (15 ), emitter .getDuration ());
43
- verify (repo ).numberOfPendingJobs ();
44
- verify (client ).gauge (OssMetricsRegistry .NUM_PENDING_JOBS , value );
50
+ verify (repo ).numberOfPendingJobsByGeography ();
51
+ verify (client ).gauge (OssMetricsRegistry .NUM_PENDING_JOBS , 101 ,
52
+ new MetricAttribute (MetricTags .GEOGRAPHY , "AUTO" ));
53
+ verify (client ).gauge (OssMetricsRegistry .NUM_PENDING_JOBS , 20 ,
54
+ new MetricAttribute (MetricTags .GEOGRAPHY , "EU" ));
45
55
verify (client ).count (OssMetricsRegistry .EST_NUM_METRICS_EMITTED_BY_REPORTER , 1 );
46
56
}
47
57
48
58
@ Test
49
59
void TestNumRunningJobs () {
50
- final var value = 101 ;
51
- when (repo .numberOfRunningJobs ()).thenReturn (value );
60
+ final var value = Map . of ( SYNC_QUEUE , 101 , AWS_QUEUE , 20 ) ;
61
+ when (repo .numberOfRunningJobsByTaskQueue ()).thenReturn (value );
52
62
53
63
final var emitter = new NumRunningJobs (client , repo );
54
64
emitter .Emit ();
55
65
56
66
assertEquals (Duration .ofSeconds (15 ), emitter .getDuration ());
57
- verify (repo ).numberOfRunningJobs ();
58
- verify (client ).gauge (OssMetricsRegistry .NUM_RUNNING_JOBS , value );
67
+ verify (repo ).numberOfRunningJobsByTaskQueue ();
68
+ verify (client ).gauge (OssMetricsRegistry .NUM_RUNNING_JOBS , 101 ,
69
+ new MetricAttribute (MetricTags .ATTEMPT_QUEUE , SYNC_QUEUE ));
70
+ verify (client ).gauge (OssMetricsRegistry .NUM_RUNNING_JOBS , 20 ,
71
+ new MetricAttribute (MetricTags .ATTEMPT_QUEUE , AWS_QUEUE ));
59
72
verify (client ).count (OssMetricsRegistry .EST_NUM_METRICS_EMITTED_BY_REPORTER , 1 );
60
73
}
61
74
@@ -75,29 +88,36 @@ void TestNumOrphanRunningJobs() {
75
88
76
89
@ Test
77
90
void TestOldestRunningJob () {
78
- final var value = 101 ;
79
- when (repo .oldestRunningJobAgeSecs ()).thenReturn (( long ) value );
91
+ final var value = Map . of ( SYNC_QUEUE , 101.0 , AWS_QUEUE , 20.0 ) ;
92
+ when (repo .oldestRunningJobAgeSecsByTaskQueue ()).thenReturn (value );
80
93
81
94
final var emitter = new OldestRunningJob (client , repo );
82
95
emitter .Emit ();
83
96
84
97
assertEquals (Duration .ofSeconds (15 ), emitter .getDuration ());
85
- verify (repo ).oldestRunningJobAgeSecs ();
86
- verify (client ).gauge (OssMetricsRegistry .OLDEST_RUNNING_JOB_AGE_SECS , value );
98
+ verify (repo ).oldestRunningJobAgeSecsByTaskQueue ();
99
+ verify (client ).gauge (OssMetricsRegistry .OLDEST_RUNNING_JOB_AGE_SECS , 101 ,
100
+ new MetricAttribute (MetricTags .ATTEMPT_QUEUE , SYNC_QUEUE ));
101
+ verify (client ).gauge (OssMetricsRegistry .OLDEST_RUNNING_JOB_AGE_SECS , 20 ,
102
+ new MetricAttribute (MetricTags .ATTEMPT_QUEUE , AWS_QUEUE ));
87
103
verify (client ).count (OssMetricsRegistry .EST_NUM_METRICS_EMITTED_BY_REPORTER , 1 );
88
104
}
89
105
90
106
@ Test
91
107
void TestOldestPendingJob () {
92
- final var value = 101 ;
93
- when (repo .oldestPendingJobAgeSecs ()).thenReturn (( long ) value );
108
+ final var value = Map . of ( GeographyType . AUTO , 101.0 , GeographyType . EU , 20.0 ) ;
109
+ when (repo .oldestPendingJobAgeSecsByGeography ()).thenReturn (value );
94
110
95
111
final var emitter = new OldestPendingJob (client , repo );
96
112
emitter .Emit ();
97
113
98
114
assertEquals (Duration .ofSeconds (15 ), emitter .getDuration ());
99
- verify (repo ).oldestPendingJobAgeSecs ();
100
- verify (client ).gauge (OssMetricsRegistry .OLDEST_PENDING_JOB_AGE_SECS , value );
115
+ verify (repo ).oldestPendingJobAgeSecsByGeography ();
116
+ verify (client ).gauge (OssMetricsRegistry .OLDEST_PENDING_JOB_AGE_SECS , 101 ,
117
+ new MetricAttribute (MetricTags .GEOGRAPHY , AUTO_REGION ));
118
+ verify (client ).gauge (OssMetricsRegistry .OLDEST_PENDING_JOB_AGE_SECS , 20 ,
119
+ new MetricAttribute (MetricTags .GEOGRAPHY , EU_REGION ));
120
+
101
121
verify (client ).count (OssMetricsRegistry .EST_NUM_METRICS_EMITTED_BY_REPORTER , 1 );
102
122
}
103
123
0 commit comments