diff options
author | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2022-06-29 16:36:02 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-06-29 16:36:02 +0200 |
commit | 5e2925ee24acfddbe14a8797917d18bcd7d9be26 (patch) | |
tree | 146d6b029f96f8090e2c9ba6f8d789805fdb895e /container-search/src/main/java/com/yahoo/search/handler/observability/SearchStatusExtension.java | |
parent | bba53b4a9456a77fdce9dc38e05d34d94fda1e96 (diff) | |
parent | d3b90a80b09394dab9b30a6cc314eae9c0ba4cea (diff) |
Merge pull request #23273 from vespa-engine/bjorncs/application-status-handler
Bjorncs/application status handler
Diffstat (limited to 'container-search/src/main/java/com/yahoo/search/handler/observability/SearchStatusExtension.java')
-rw-r--r-- | container-search/src/main/java/com/yahoo/search/handler/observability/SearchStatusExtension.java | 32 |
1 files changed, 32 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(); + } + +} |