1+ /*
2+ * SPDX-License-Identifier: Apache-2.0
3+ *
4+ * The OpenSearch Contributors require contributions made to
5+ * this file be licensed under the Apache-2.0 license or a
6+ * compatible open source license.
7+ */
8+
9+ package org .opensearch .index .merge ;
10+
11+ import org .opensearch .core .index .shard .ShardId ;
12+ import org .opensearch .index .IndexSettings ;
13+ import org .opensearch .test .OpenSearchTestCase ;
14+
15+ import static org .opensearch .common .settings .Settings .builder ;
16+
17+ public class MergedSegmentReplicationTrackerTests extends OpenSearchTestCase {
18+
19+ private MergedSegmentReplicationTracker tracker ;
20+
21+ @ Override
22+ public void setUp () throws Exception {
23+ super .setUp ();
24+ ShardId shardId = new ShardId ("test" , "uuid" , 0 );
25+ IndexSettings indexSettings = new IndexSettings (
26+ newIndexMeta ("test" , builder ().build ()),
27+ builder ().build ()
28+ );
29+ tracker = new MergedSegmentReplicationTracker (shardId , indexSettings );
30+ }
31+
32+ public void testInitialStats () {
33+ MergedSegmentWarmerStats stats = tracker .stats ();
34+ assertEquals (0 , stats .getTotalWarmInvocationsCount ());
35+ assertEquals (0 , stats .getTotalWarmTimeMillis ());
36+ assertEquals (0 , stats .getTotalWarmFailureCount ());
37+ assertEquals (0 , stats .getTotalBytesUploaded ());
38+ assertEquals (0 , stats .getTotalBytesDownloaded ());
39+ assertEquals (0 , stats .getTotalUploadTimeMillis ());
40+ assertEquals (0 , stats .getTotalDownloadTimeMillis ());
41+ assertEquals (0 , stats .getOngoingWarms ());
42+ }
43+
44+ public void testIncrementCounters () {
45+ tracker .incrementTotalWarmInvocationsCount ();
46+ tracker .incrementTotalWarmFailureCount ();
47+ tracker .incrementTotalRejectedWarms ();
48+
49+ MergedSegmentWarmerStats stats = tracker .stats ();
50+ assertEquals (1 , stats .getTotalWarmInvocationsCount ());
51+ assertEquals (1 , stats .getTotalWarmFailureCount ());
52+ }
53+
54+ public void testOngoingWarms () {
55+ tracker .incrementOngoingWarms ();
56+ tracker .incrementOngoingWarms ();
57+ assertEquals (2 , tracker .stats ().getOngoingWarms ());
58+
59+ tracker .decrementOngoingWarms ();
60+ assertEquals (1 , tracker .stats ().getOngoingWarms ());
61+ }
62+
63+ public void testAddTimeAndBytes () {
64+ tracker .addTotalWarmTimeMillis (100 );
65+ tracker .addTotalUploadTimeMillis (200 );
66+ tracker .addTotalDownloadTimeMillis (300 );
67+ tracker .addTotalBytesUploaded (1024 );
68+ tracker .addTotalBytesDownloaded (2048 );
69+
70+ MergedSegmentWarmerStats stats = tracker .stats ();
71+ assertEquals (100 , stats .getTotalWarmTimeMillis ());
72+ assertEquals (200 , stats .getTotalUploadTimeMillis ());
73+ assertEquals (300 , stats .getTotalDownloadTimeMillis ());
74+ assertEquals (1024 , stats .getTotalBytesUploaded ());
75+ assertEquals (2048 , stats .getTotalBytesDownloaded ());
76+ }
77+
78+ public void testAccumulativeStats () {
79+ tracker .addTotalWarmTimeMillis (100 );
80+ tracker .addTotalWarmTimeMillis (50 );
81+ assertEquals (150 , tracker .stats ().getTotalWarmTimeMillis ());
82+
83+ tracker .addTotalBytesUploaded (1000 );
84+ tracker .addTotalBytesUploaded (500 );
85+ assertEquals (1500 , tracker .stats ().getTotalBytesUploaded ());
86+ }
87+ }
0 commit comments