diff --git a/server/src/main/java/org/opensearch/node/Node.java b/server/src/main/java/org/opensearch/node/Node.java index 8fff73450ae0b..9c3ea46633094 100644 --- a/server/src/main/java/org/opensearch/node/Node.java +++ b/server/src/main/java/org/opensearch/node/Node.java @@ -1760,4 +1760,9 @@ private void initializeFileCache(Settings settings, CircuitBreaker circuitBreake public FileCache fileCache() { return this.fileCache; } + + //Visible for testing + TracerFactory getTracerFactory(){ + return this.tracerFactory; + } } diff --git a/server/src/test/java/org/opensearch/index/IndexModuleTests.java b/server/src/test/java/org/opensearch/index/IndexModuleTests.java index 21208e61c5c13..3ba4018a227af 100644 --- a/server/src/test/java/org/opensearch/index/IndexModuleTests.java +++ b/server/src/test/java/org/opensearch/index/IndexModuleTests.java @@ -268,7 +268,7 @@ public void testWrapperIsBound() throws IOException { () -> true, new IndexNameExpressionResolver(new ThreadContext(Settings.EMPTY)), Collections.emptyMap(), - tracerFactory); + getNoopTracerFactory()); module.setReaderWrapper(s -> new Wrapper()); IndexService indexService = newIndexService(module); @@ -294,7 +294,7 @@ public void testRegisterIndexStore() throws IOException { () -> true, new IndexNameExpressionResolver(new ThreadContext(Settings.EMPTY)), Collections.emptyMap(), - tracerFactory); + getNoopTracerFactory()); final IndexService indexService = newIndexService(module); assertThat(indexService.getDirectoryFactory(), instanceOf(FooFunction.class)); @@ -622,7 +622,7 @@ public void testRegisterCustomRecoveryStateFactory() throws IOException { () -> true, new IndexNameExpressionResolver(new ThreadContext(Settings.EMPTY)), recoveryStateFactories, - tracerFactory); + null); final IndexService indexService = newIndexService(module); @@ -654,7 +654,7 @@ private static IndexModule createIndexModule(IndexSettings indexSettings, Analys () -> true, new IndexNameExpressionResolver(new ThreadContext(Settings.EMPTY)), Collections.emptyMap(), - tracerFactory); + null); } class CustomQueryCache implements QueryCache { diff --git a/server/src/test/java/org/opensearch/search/DefaultSearchContextTests.java b/server/src/test/java/org/opensearch/search/DefaultSearchContextTests.java index bf8c5fb89c838..f72db2b256b62 100644 --- a/server/src/test/java/org/opensearch/search/DefaultSearchContextTests.java +++ b/server/src/test/java/org/opensearch/search/DefaultSearchContextTests.java @@ -215,7 +215,7 @@ protected Engine.Searcher acquireSearcherInternal(String source) { false, executor, null, - this.tracerFactory); + getNoopTracerFactory()); contextWithoutScroll.from(300); contextWithoutScroll.close(); @@ -258,7 +258,7 @@ protected Engine.Searcher acquireSearcherInternal(String source) { false, executor, null, - this.tracerFactory); + getNoopTracerFactory()); context1.from(300); exception = expectThrows(IllegalArgumentException.class, () -> context1.preProcess(false)); assertThat( @@ -329,7 +329,7 @@ protected Engine.Searcher acquireSearcherInternal(String source) { false, executor, null, - this.tracerFactory); + getNoopTracerFactory()); SliceBuilder sliceBuilder = mock(SliceBuilder.class); int numSlices = maxSlicesPerScroll + randomIntBetween(1, 100); @@ -369,7 +369,7 @@ protected Engine.Searcher acquireSearcherInternal(String source) { false, executor, null, - this.tracerFactory); + getNoopTracerFactory()); ParsedQuery parsedQuery = ParsedQuery.parsedMatchAllQuery(); context3.sliceBuilder(null).parsedQuery(parsedQuery).preProcess(false); assertEquals(context3.query(), context3.buildFilteredQuery(parsedQuery.query())); @@ -405,7 +405,7 @@ protected Engine.Searcher acquireSearcherInternal(String source) { false, executor, null, - this.tracerFactory); + getNoopTracerFactory()); context4.sliceBuilder(new SliceBuilder(1, 2)).parsedQuery(parsedQuery).preProcess(false); Query query1 = context4.query(); context4.sliceBuilder(new SliceBuilder(0, 2)).parsedQuery(parsedQuery).preProcess(false); @@ -436,7 +436,7 @@ protected Engine.Searcher acquireSearcherInternal(String source) { false, executor, null, - this.tracerFactory); + getNoopTracerFactory()); int numSlicesForPit = maxSlicesPerPit + randomIntBetween(1, 100); when(sliceBuilder.getMax()).thenReturn(numSlicesForPit); context5.sliceBuilder(sliceBuilder); @@ -534,7 +534,7 @@ protected Engine.Searcher acquireSearcherInternal(String source) { false, executor, null, - this.tracerFactory); + getNoopTracerFactory()); assertThat(context.searcher().hasCancellations(), is(false)); context.searcher().addQueryCancellation(() -> {}); assertThat(context.searcher().hasCancellations(), is(true)); diff --git a/server/src/test/java/org/opensearch/search/SearchCancellationTests.java b/server/src/test/java/org/opensearch/search/SearchCancellationTests.java index db807e31d0238..00d90494d5cb0 100644 --- a/server/src/test/java/org/opensearch/search/SearchCancellationTests.java +++ b/server/src/test/java/org/opensearch/search/SearchCancellationTests.java @@ -109,7 +109,8 @@ public void testAddingCancellationActions() throws IOException { IndexSearcher.getDefaultQueryCache(), IndexSearcher.getDefaultQueryCachingPolicy(), true, - null + null, + getNoopTracerFactory() ); NullPointerException npe = expectThrows(NullPointerException.class, () -> searcher.addQueryCancellation(null)); assertEquals("cancellation runnable should not be null", npe.getMessage()); @@ -129,7 +130,8 @@ public void testCancellableCollector() throws IOException { IndexSearcher.getDefaultQueryCache(), IndexSearcher.getDefaultQueryCachingPolicy(), true, - null + null, + getNoopTracerFactory() ); searcher.search(new MatchAllDocsQuery(), collector1); @@ -157,7 +159,8 @@ public void testExitableDirectoryReader() throws IOException { IndexSearcher.getDefaultQueryCache(), IndexSearcher.getDefaultQueryCachingPolicy(), true, - null + null, + getNoopTracerFactory() ); searcher.addQueryCancellation(cancellation); CompiledAutomaton automaton = new CompiledAutomaton(new RegExp("a.*").toAutomaton()); diff --git a/server/src/test/java/org/opensearch/search/internal/ContextIndexSearcherTests.java b/server/src/test/java/org/opensearch/search/internal/ContextIndexSearcherTests.java index 82dcbd6f69aa4..5121ef9650606 100644 --- a/server/src/test/java/org/opensearch/search/internal/ContextIndexSearcherTests.java +++ b/server/src/test/java/org/opensearch/search/internal/ContextIndexSearcherTests.java @@ -259,7 +259,8 @@ public void onRemoval(ShardId shardId, Accountable accountable) { IndexSearcher.getDefaultQueryCache(), IndexSearcher.getDefaultQueryCachingPolicy(), true, - null + null, + getNoopTracerFactory() ); for (LeafReaderContext context : searcher.getIndexReader().leaves()) { diff --git a/server/src/test/java/org/opensearch/search/profile/query/QueryProfilerTests.java b/server/src/test/java/org/opensearch/search/profile/query/QueryProfilerTests.java index 8a8700d853ad7..0a42e94d3c58f 100644 --- a/server/src/test/java/org/opensearch/search/profile/query/QueryProfilerTests.java +++ b/server/src/test/java/org/opensearch/search/profile/query/QueryProfilerTests.java @@ -118,7 +118,8 @@ public void setUp() throws Exception { IndexSearcher.getDefaultQueryCache(), ALWAYS_CACHE_POLICY, true, - executor + executor, + getNoopTracerFactory() ); } diff --git a/server/src/test/java/org/opensearch/search/query/QueryPhaseTests.java b/server/src/test/java/org/opensearch/search/query/QueryPhaseTests.java index dcec4842fc81e..20deca163512b 100644 --- a/server/src/test/java/org/opensearch/search/query/QueryPhaseTests.java +++ b/server/src/test/java/org/opensearch/search/query/QueryPhaseTests.java @@ -1210,7 +1210,8 @@ private static ContextIndexSearcher newContextSearcher(IndexReader reader, Execu IndexSearcher.getDefaultQueryCache(), IndexSearcher.getDefaultQueryCachingPolicy(), true, - executor + executor, + getNoopTracerFactory() ); } @@ -1222,7 +1223,8 @@ private static ContextIndexSearcher newEarlyTerminationContextSearcher(IndexRead IndexSearcher.getDefaultQueryCache(), IndexSearcher.getDefaultQueryCachingPolicy(), true, - executor + executor, + getNoopTracerFactory() ) { @Override diff --git a/server/src/test/java/org/opensearch/search/query/QueryProfilePhaseTests.java b/server/src/test/java/org/opensearch/search/query/QueryProfilePhaseTests.java index b1fc5f1354039..9b4ad36f3409c 100644 --- a/server/src/test/java/org/opensearch/search/query/QueryProfilePhaseTests.java +++ b/server/src/test/java/org/opensearch/search/query/QueryProfilePhaseTests.java @@ -1430,7 +1430,8 @@ private static ContextIndexSearcher newContextSearcher(IndexReader reader, Execu IndexSearcher.getDefaultQueryCache(), IndexSearcher.getDefaultQueryCachingPolicy(), true, - executor + executor, + getNoopTracerFactory() ); } @@ -1442,7 +1443,8 @@ private static ContextIndexSearcher newEarlyTerminationContextSearcher(IndexRead IndexSearcher.getDefaultQueryCache(), IndexSearcher.getDefaultQueryCachingPolicy(), true, - executor + executor, + getNoopTracerFactory() ) { @Override diff --git a/server/src/test/java/org/opensearch/snapshots/SnapshotResiliencyTests.java b/server/src/test/java/org/opensearch/snapshots/SnapshotResiliencyTests.java index 548a3d1928a0d..625f7df4a1ea9 100644 --- a/server/src/test/java/org/opensearch/snapshots/SnapshotResiliencyTests.java +++ b/server/src/test/java/org/opensearch/snapshots/SnapshotResiliencyTests.java @@ -1838,7 +1838,7 @@ public void onFailure(final Exception e) { new RemoteSegmentStoreDirectoryFactory(() -> repositoriesService), repositoriesServiceReference::get, fileCacheCleaner, - this.tracerFactory, tracerFactory1); + getNoopTracerFactory()); final RecoverySettings recoverySettings = new RecoverySettings(settings, clusterSettings); snapshotShardsService = new SnapshotShardsService( settings, @@ -2035,7 +2035,7 @@ public void onFailure(final Exception e) { responseCollectorService, new NoneCircuitBreakerService(), null, - tracerFactory); + getNoopTracerFactory()); SearchPhaseController searchPhaseController = new SearchPhaseController( writableRegistry(), searchService::aggReduceContextBuilder @@ -2065,9 +2065,9 @@ public void onFailure(final Exception e) { List.of(), client, false - ) - ) - ); + ), + getNoopTracerFactory() + ); actions.put( RestoreSnapshotAction.INSTANCE, new TransportRestoreSnapshotAction( diff --git a/test/framework/src/main/java/org/opensearch/node/MockNode.java b/test/framework/src/main/java/org/opensearch/node/MockNode.java index 1d8d2dd086418..4038ec0e6986e 100644 --- a/test/framework/src/main/java/org/opensearch/node/MockNode.java +++ b/test/framework/src/main/java/org/opensearch/node/MockNode.java @@ -60,6 +60,7 @@ import org.opensearch.search.SearchService; import org.opensearch.search.fetch.FetchPhase; import org.opensearch.search.query.QueryPhase; +import org.opensearch.telemetry.tracing.TracerFactory; import org.opensearch.test.MockHttpTransport; import org.opensearch.test.transport.MockTransportService; import org.opensearch.threadpool.ThreadPool; @@ -179,7 +180,8 @@ protected SearchService newSearchService( queryPhase, fetchPhase, circuitBreakerService, - indexSearcherExecutor + indexSearcherExecutor, + getTracerFactory() ); } diff --git a/test/framework/src/main/java/org/opensearch/search/MockSearchService.java b/test/framework/src/main/java/org/opensearch/search/MockSearchService.java index e3323d7165430..3de664f384db4 100644 --- a/test/framework/src/main/java/org/opensearch/search/MockSearchService.java +++ b/test/framework/src/main/java/org/opensearch/search/MockSearchService.java @@ -42,6 +42,7 @@ import org.opensearch.search.fetch.FetchPhase; import org.opensearch.search.internal.ReaderContext; import org.opensearch.search.query.QueryPhase; +import org.opensearch.telemetry.tracing.TracerFactory; import org.opensearch.threadpool.ThreadPool; import java.util.HashMap; @@ -96,7 +97,8 @@ public MockSearchService( QueryPhase queryPhase, FetchPhase fetchPhase, CircuitBreakerService circuitBreakerService, - Executor indexSearcherExecutor + Executor indexSearcherExecutor, + TracerFactory tracerFactory ) { super( clusterService, @@ -109,7 +111,7 @@ public MockSearchService( null, circuitBreakerService, indexSearcherExecutor, - tracerFactory); + tracerFactory); } @Override diff --git a/test/framework/src/main/java/org/opensearch/search/aggregations/AggregatorTestCase.java b/test/framework/src/main/java/org/opensearch/search/aggregations/AggregatorTestCase.java index 48eea430aca76..6c553b8cc8237 100644 --- a/test/framework/src/main/java/org/opensearch/search/aggregations/AggregatorTestCase.java +++ b/test/framework/src/main/java/org/opensearch/search/aggregations/AggregatorTestCase.java @@ -335,7 +335,8 @@ public boolean shouldCache(Query query) { queryCache, queryCachingPolicy, false, - null + null, + getNoopTracerFactory() ); SearchContext searchContext = mock(SearchContext.class); diff --git a/test/framework/src/main/java/org/opensearch/test/OpenSearchTestCase.java b/test/framework/src/main/java/org/opensearch/test/OpenSearchTestCase.java index 7e5b130f4410a..88a33d5898f8a 100644 --- a/test/framework/src/main/java/org/opensearch/test/OpenSearchTestCase.java +++ b/test/framework/src/main/java/org/opensearch/test/OpenSearchTestCase.java @@ -42,6 +42,7 @@ import com.carrotsearch.randomizedtesting.generators.RandomPicks; import com.carrotsearch.randomizedtesting.generators.RandomStrings; import com.carrotsearch.randomizedtesting.rules.TestRuleAdapter; +import java.util.Optional; import org.apache.logging.log4j.Level; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -85,6 +86,7 @@ import org.opensearch.common.logging.HeaderWarningAppender; import org.opensearch.common.logging.LogConfigurator; import org.opensearch.common.logging.Loggers; +import org.opensearch.common.settings.ClusterSettings; import org.opensearch.common.settings.Setting; import org.opensearch.common.settings.Settings; import org.opensearch.common.time.DateUtils; @@ -125,6 +127,9 @@ import org.opensearch.script.Script; import org.opensearch.script.ScriptType; import org.opensearch.search.MockSearchService; +import org.opensearch.telemetry.TelemetrySettings; +import org.opensearch.telemetry.tracing.NoopTracerFactory; +import org.opensearch.telemetry.tracing.TracerFactory; import org.opensearch.test.junit.listeners.LoggingListener; import org.opensearch.test.junit.listeners.ReproduceInfoPrinter; import org.opensearch.threadpool.ThreadPool; @@ -215,6 +220,8 @@ public abstract class OpenSearchTestCase extends LuceneTestCase { private static final Collection nettyLoggedLeaks = new ArrayList<>(); private HeaderWarningAppender headerWarningAppender; + private static TracerFactory noopTracerFactory = new NoopTracerFactory(); + @AfterClass public static void resetPortCounter() { portGenerator.set(0); @@ -504,6 +511,9 @@ protected final void assertSettingDeprecationsAndWarnings(final String[] setting ); } + public static TracerFactory getNoopTracerFactory(){ + return noopTracerFactory; + } /** * Convenience method to assert same warnings for settings deprecations and general deprecation warnings * are not logged again.