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) {