1
1
package com .netflix .hollow .api .consumer .metrics ;
2
2
3
3
import static com .netflix .hollow .core .HollowConstants .VERSION_NONE ;
4
+ import static com .netflix .hollow .core .HollowStateEngine .HEADER_TAG_DELTA_CHAIN_VERSION_COUNTER ;
4
5
import static com .netflix .hollow .core .HollowStateEngine .HEADER_TAG_METRIC_ANNOUNCEMENT ;
5
6
import static com .netflix .hollow .core .HollowStateEngine .HEADER_TAG_METRIC_CYCLE_START ;
6
7
import static org .junit .Assert .assertEquals ;
11
12
import com .netflix .hollow .api .producer .HollowProducer ;
12
13
import com .netflix .hollow .api .producer .fs .HollowInMemoryBlobStager ;
13
14
import com .netflix .hollow .core .read .engine .HollowReadStateEngine ;
15
+ import com .netflix .hollow .test .InMemoryBlobStore ;
14
16
import java .util .ArrayList ;
15
17
import java .util .HashMap ;
16
18
import java .util .List ;
17
19
import java .util .Map ;
18
20
import java .util .Optional ;
19
-
20
- import com .netflix .hollow .test .InMemoryBlobStore ;
21
21
import org .junit .Assert ;
22
22
import org .junit .Before ;
23
23
import org .junit .Test ;
@@ -129,13 +129,15 @@ public void refreshEndMetricsReporting(ConsumerRefreshMetrics refreshMetrics) {
129
129
Assert .assertNotEquals (0l , refreshMetrics .getRefreshEndTimeNano ());
130
130
assertEquals (TEST_CYCLE_START_TIMESTAMP , refreshMetrics .getCycleStartTimestamp ().getAsLong ());
131
131
assertEquals (TEST_ANNOUNCEMENT_TIMESTAMP , refreshMetrics .getAnnouncementTimestamp ().getAsLong ());
132
+ assertEquals (1l , refreshMetrics .getDeltaChainVersionCounter ().getAsLong ());
132
133
}
133
134
}
134
135
SuccessTestRefreshMetricsListener successTestRefreshMetricsListener = new SuccessTestRefreshMetricsListener ();
135
136
successTestRefreshMetricsListener .refreshStarted (TEST_VERSION_LOW , TEST_VERSION_HIGH );
136
137
137
138
testHeaderTags .put (HEADER_TAG_METRIC_CYCLE_START , String .valueOf (TEST_CYCLE_START_TIMESTAMP ));
138
139
testHeaderTags .put (HEADER_TAG_METRIC_ANNOUNCEMENT , String .valueOf (TEST_ANNOUNCEMENT_TIMESTAMP ));
140
+ testHeaderTags .put (HEADER_TAG_DELTA_CHAIN_VERSION_COUNTER , String .valueOf (1l ));
139
141
successTestRefreshMetricsListener .snapshotUpdateOccurred (null , mockStateEngine , TEST_VERSION_HIGH );
140
142
141
143
successTestRefreshMetricsListener .refreshSuccessful (TEST_VERSION_LOW , TEST_VERSION_HIGH , TEST_VERSION_HIGH );
@@ -152,6 +154,7 @@ public void refreshEndMetricsReporting(ConsumerRefreshMetrics refreshMetrics) {
152
154
Assert .assertNotEquals (0l , refreshMetrics .getRefreshEndTimeNano ());
153
155
Assert .assertFalse (refreshMetrics .getCycleStartTimestamp ().isPresent ());
154
156
Assert .assertFalse (refreshMetrics .getAnnouncementTimestamp ().isPresent ());
157
+ Assert .assertFalse (refreshMetrics .getDeltaChainVersionCounter ().isPresent ());
155
158
}
156
159
}
157
160
FailureTestRefreshMetricsListener failTestRefreshMetricsListener = new FailureTestRefreshMetricsListener ();
@@ -168,6 +171,7 @@ public void refreshEndMetricsReporting(ConsumerRefreshMetrics refreshMetrics) {
168
171
assertEquals (3 , refreshMetrics .getUpdatePlanDetails ().getNumSuccessfulTransitions ());
169
172
assertEquals (TEST_CYCLE_START_TIMESTAMP , refreshMetrics .getCycleStartTimestamp ().getAsLong ());
170
173
assertEquals (TEST_ANNOUNCEMENT_TIMESTAMP , refreshMetrics .getAnnouncementTimestamp ().getAsLong ());
174
+ assertEquals (3l , refreshMetrics .getDeltaChainVersionCounter ().getAsLong ());
171
175
}
172
176
}
173
177
List <HollowConsumer .Blob .BlobType > testTransitionSequence = new ArrayList <HollowConsumer .Blob .BlobType >() {{
@@ -183,16 +187,19 @@ public void refreshEndMetricsReporting(ConsumerRefreshMetrics refreshMetrics) {
183
187
successTestRefreshMetricsListener .blobLoaded (null );
184
188
testHeaderTags .put (HEADER_TAG_METRIC_CYCLE_START , String .valueOf (TEST_CYCLE_START_TIMESTAMP -2 ));
185
189
testHeaderTags .put (HEADER_TAG_METRIC_ANNOUNCEMENT , String .valueOf (TEST_ANNOUNCEMENT_TIMESTAMP -2 ));
190
+ testHeaderTags .put (HEADER_TAG_DELTA_CHAIN_VERSION_COUNTER , String .valueOf (1l ));
186
191
successTestRefreshMetricsListener .deltaUpdateOccurred (null , mockStateEngine , TEST_VERSION_HIGH -2 );
187
192
188
193
successTestRefreshMetricsListener .blobLoaded (null );
189
194
testHeaderTags .put (HEADER_TAG_METRIC_CYCLE_START , String .valueOf (TEST_CYCLE_START_TIMESTAMP -1 ));
190
195
testHeaderTags .put (HEADER_TAG_METRIC_ANNOUNCEMENT , String .valueOf (TEST_ANNOUNCEMENT_TIMESTAMP -1 ));
196
+ testHeaderTags .put (HEADER_TAG_DELTA_CHAIN_VERSION_COUNTER , String .valueOf (2l ));
191
197
successTestRefreshMetricsListener .deltaUpdateOccurred (null , mockStateEngine , TEST_VERSION_HIGH -1 );
192
198
193
199
successTestRefreshMetricsListener .blobLoaded (null );
194
200
testHeaderTags .put (HEADER_TAG_METRIC_CYCLE_START , String .valueOf (TEST_CYCLE_START_TIMESTAMP ));
195
201
testHeaderTags .put (HEADER_TAG_METRIC_ANNOUNCEMENT , String .valueOf (TEST_ANNOUNCEMENT_TIMESTAMP ));
202
+ testHeaderTags .put (HEADER_TAG_DELTA_CHAIN_VERSION_COUNTER , String .valueOf (3l ));
196
203
successTestRefreshMetricsListener .deltaUpdateOccurred (null , mockStateEngine , TEST_VERSION_HIGH );
197
204
198
205
successTestRefreshMetricsListener .refreshSuccessful (TEST_VERSION_LOW , TEST_VERSION_HIGH , TEST_VERSION_HIGH );
@@ -205,6 +212,7 @@ class FailureTestRefreshMetricsListener extends AbstractRefreshMetricsListener {
205
212
public void refreshEndMetricsReporting (ConsumerRefreshMetrics refreshMetrics ) {
206
213
assertEquals (1 , refreshMetrics .getUpdatePlanDetails ().getNumSuccessfulTransitions ());
207
214
assertEquals (TEST_CYCLE_START_TIMESTAMP , refreshMetrics .getCycleStartTimestamp ().getAsLong ());
215
+ assertEquals (1l , refreshMetrics .getDeltaChainVersionCounter ().getAsLong ());
208
216
}
209
217
}
210
218
List <HollowConsumer .Blob .BlobType > testTransitionSequence = new ArrayList <HollowConsumer .Blob .BlobType >() {{
@@ -219,14 +227,15 @@ public void refreshEndMetricsReporting(ConsumerRefreshMetrics refreshMetrics) {
219
227
220
228
failureTestRefreshMetricsListener .blobLoaded (null );
221
229
testHeaderTags .put (HEADER_TAG_METRIC_CYCLE_START , String .valueOf (TEST_CYCLE_START_TIMESTAMP ));
230
+ testHeaderTags .put (HEADER_TAG_DELTA_CHAIN_VERSION_COUNTER , String .valueOf (1l ));
222
231
failureTestRefreshMetricsListener .snapshotUpdateOccurred (null , mockStateEngine , TEST_VERSION_LOW );
223
232
224
233
failureTestRefreshMetricsListener .refreshFailed (TEST_VERSION_LOW -1 , TEST_VERSION_LOW , TEST_VERSION_HIGH , null );
225
234
226
235
}
227
236
228
237
@ Test
229
- public void testCycleStart () { // also exercises reverse delta transition
238
+ public void testCycles () { // also exercises reverse delta transition
230
239
InMemoryBlobStore blobStore = new InMemoryBlobStore ();
231
240
HollowInMemoryBlobStager blobStager = new HollowInMemoryBlobStager ();
232
241
HollowProducer p = HollowProducer
@@ -252,16 +261,20 @@ public void refreshEndMetricsReporting(ConsumerRefreshMetrics refreshMetrics) {
252
261
switch (run ) {
253
262
case 1 :
254
263
assertEquals (1L , refreshMetrics .getCycleStartTimestamp ().getAsLong ());
264
+ assertEquals (1L , refreshMetrics .getDeltaChainVersionCounter ().getAsLong ());
255
265
break ;
256
266
case 2 :
257
267
case 5 :
258
268
assertEquals (2L , refreshMetrics .getCycleStartTimestamp ().getAsLong ());
269
+ assertEquals (2L , refreshMetrics .getDeltaChainVersionCounter ().getAsLong ());
259
270
break ;
260
271
case 3 :
261
272
assertEquals (1L , refreshMetrics .getCycleStartTimestamp ().getAsLong ());
273
+ assertEquals (1L , refreshMetrics .getDeltaChainVersionCounter ().getAsLong ());
262
274
break ;
263
275
case 4 :
264
276
assertEquals (3L , refreshMetrics .getCycleStartTimestamp ().getAsLong ());
277
+ assertEquals (3L , refreshMetrics .getDeltaChainVersionCounter ().getAsLong ());
265
278
break ;
266
279
}
267
280
}
0 commit comments