aboutsummaryrefslogtreecommitdiffstats
path: root/container-search
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2022-06-29 16:36:02 +0200
committerGitHub <noreply@github.com>2022-06-29 16:36:02 +0200
commit5e2925ee24acfddbe14a8797917d18bcd7d9be26 (patch)
tree146d6b029f96f8090e2c9ba6f8d789805fdb895e /container-search
parentbba53b4a9456a77fdce9dc38e05d34d94fda1e96 (diff)
parentd3b90a80b09394dab9b30a6cc314eae9c0ba4cea (diff)
Merge pull request #23273 from vespa-engine/bjorncs/application-status-handler
Bjorncs/application status handler
Diffstat (limited to 'container-search')
-rw-r--r--container-search/pom.xml6
-rw-r--r--container-search/src/main/java/com/yahoo/search/handler/observability/SearchStatusExtension.java32
-rw-r--r--container-search/src/main/java/com/yahoo/search/handler/observability/package-info.java8
3 files changed, 46 insertions, 0 deletions
diff --git a/container-search/pom.xml b/container-search/pom.xml
index ccec1330d68..031d25c7d02 100644
--- a/container-search/pom.xml
+++ b/container-search/pom.xml
@@ -73,6 +73,12 @@
<scope>provided</scope>
</dependency>
<dependency>
+ <groupId>com.yahoo.vespa</groupId>
+ <artifactId>container-disc</artifactId>
+ <version>${project.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<exclusions>
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