diff options
author | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2022-06-30 11:35:01 +0200 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2022-06-30 11:35:01 +0200 |
commit | 1171ecf2630f31e22f8f837095abc6f14ce669c8 (patch) | |
tree | e7d7b33866b1dd105da75e8ed77d7b813326130d /container-search/src/main/java | |
parent | dc1b5d78ca36f10d959cc19469e96c3f719030cf (diff) |
Reapply "Bjorncs/application status handler""
Diffstat (limited to 'container-search/src/main/java')
2 files changed, 40 insertions, 0 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/handler/observability/SearchStatusExtension.java b/container-search/src/main/java/com/yahoo/search/handler/observability/SearchStatusExtension.java new file mode 100644 index 00000000000..836bb1b8354 --- /dev/null +++ b/container-search/src/main/java/com/yahoo/search/handler/observability/SearchStatusExtension.java @@ -0,0 +1,32 @@ +// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.search.handler.observability; + +import com.fasterxml.jackson.databind.JsonNode; +import com.yahoo.container.handler.observability.ApplicationStatusHandler; +import com.yahoo.jdisc.handler.RequestHandler; +import com.yahoo.search.handler.SearchHandler; +import com.yahoo.search.searchchain.SearchChainRegistry; + +import java.util.Map; + +/** + * @author bjorncs + */ +public class SearchStatusExtension implements ApplicationStatusHandler.Extension { + + @Override + public Map<String, ? extends JsonNode> produceExtraFields(ApplicationStatusHandler statusHandler) { + return Map.of("searchChains", renderSearchChains(statusHandler)); + } + + private static JsonNode renderSearchChains(ApplicationStatusHandler statusHandler) { + for (RequestHandler h : statusHandler.requestHandlers()) { + if (h instanceof SearchHandler) { + SearchChainRegistry scReg = ((SearchHandler) h).getSearchChainRegistry(); + return ApplicationStatusHandler.renderChains(scReg); + } + } + return statusHandler.jsonMapper().createObjectNode(); + } + +} diff --git a/container-search/src/main/java/com/yahoo/search/handler/observability/package-info.java b/container-search/src/main/java/com/yahoo/search/handler/observability/package-info.java new file mode 100644 index 00000000000..baf24b4a94d --- /dev/null +++ b/container-search/src/main/java/com/yahoo/search/handler/observability/package-info.java @@ -0,0 +1,8 @@ +// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +/** + * @author bjorncs + */ +@ExportPackage +package com.yahoo.search.handler.observability; + +import com.yahoo.osgi.annotation.ExportPackage;
\ No newline at end of file |