This is an automated email from the ASF dual-hosted git repository.

alexey pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kudu.git


The following commit(s) were added to refs/heads/master by this push:
     new b4da33b  KUDU-3308: Add health check endpoint to webserver
b4da33b is described below

commit b4da33b6c4df8eb8137cbf7663982822260ee301
Author: Zoltan Chovan <[email protected]>
AuthorDate: Thu Oct 21 20:20:48 2021 +0200

    KUDU-3308: Add health check endpoint to webserver
    
    [server] This change adds a '/healthz' endpoint to the kudu-master and
    tablet-server webinterfaces.
    This endpoint only returns the HTTPStatus 200 and an 'OK' message, for
    liveliness probe usage. As the Webserver only starts after the RPC
    Server has been started there is no need to add an initial wait time for
    the first check.
    
    Change-Id: Ic735e210d95aeec1dfd1335ee972318f12d52475
    Reviewed-on: http://gerrit.cloudera.org:8080/17962
    Tested-by: Kudu Jenkins
    Reviewed-by: Alexey Serbin <[email protected]>
    Reviewed-by: Bankim Bhavsar <[email protected]>
---
 src/kudu/server/default_path_handlers.cc | 9 +++++++++
 src/kudu/server/webserver-test.cc        | 4 ++++
 2 files changed, 13 insertions(+)

diff --git a/src/kudu/server/default_path_handlers.cc 
b/src/kudu/server/default_path_handlers.cc
index 16c6a45..682db40 100644
--- a/src/kudu/server/default_path_handlers.cc
+++ b/src/kudu/server/default_path_handlers.cc
@@ -309,6 +309,12 @@ static void MemTrackersHandler(const 
Webserver::WebRequest& /*req*/,
   *output << "</tbody></table>\n";
 }
 
+static void HealthHandler(const Webserver::WebRequest& /*req*/,
+                          Webserver::PrerenderedWebResponse* resp) {
+  resp->output << "OK";
+  resp->status_code = HttpStatusCode::Ok;
+}
+
 static const char* const kName = "name";
 static const char* const kValue = "value";
 static const char* const kId = "id";
@@ -445,6 +451,9 @@ void AddPostInitializedDefaultPathHandlers(Webserver* 
webserver) {
   webserver->RegisterPrerenderedPathHandler("/version", "VersionInfo", 
VersionInfoHandler,
                                             /*is_styled=*/false,
                                             /*is_on_nav_bar*/false);
+  webserver->RegisterPrerenderedPathHandler("/healthz", "Health", 
HealthHandler,
+                                            /*is_styled=*/false,
+                                            /*is_on_nav_bar=*/true);
   AddPprofPathHandlers(webserver);
 }
 
diff --git a/src/kudu/server/webserver-test.cc 
b/src/kudu/server/webserver-test.cc
index 9cddc5c..58cf31d 100644
--- a/src/kudu/server/webserver-test.cc
+++ b/src/kudu/server/webserver-test.cc
@@ -435,6 +435,10 @@ TEST_F(WebserverTest, TestDefaultPaths) {
   // Test version -- check for version information
   ASSERT_OK(curl_.FetchURL(Substitute("$0/version", url_), &buf_));
   ASSERT_STR_CONTAINS(buf_.ToString(), "version_info");
+
+  // Test healthz -- check for OK
+  ASSERT_OK(curl_.FetchURL(Substitute("$0/healthz", url_), &buf_));
+  ASSERT_STR_CONTAINS(buf_.ToString(), "OK");
 }
 
 TEST_F(WebserverTest, TestRedactFlagsDump) {

Reply via email to