From 55069c0c793db14074457b77bb0febf3daef3a76 Mon Sep 17 00:00:00 2001 From: Andrew Noyes Date: Thu, 4 Sep 2025 15:49:54 -0400 Subject: [PATCH] Add counters for /v1/{commit,status,version} --- src/http_handler.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/http_handler.cpp b/src/http_handler.cpp index b62ac60..8b96724 100644 --- a/src/http_handler.cpp +++ b/src/http_handler.cpp @@ -18,6 +18,14 @@ auto requests_counter_family = metric::create_counter( thread_local auto metrics_counter = requests_counter_family.create({{"path", "/metrics"}}); +// API endpoint request counters +thread_local auto commit_counter = + requests_counter_family.create({{"path", "/v1/commit"}}); +thread_local auto status_counter = + requests_counter_family.create({{"path", "/v1/status"}}); +thread_local auto version_counter = + requests_counter_family.create({{"path", "/v1/version"}}); + // Metric for banned request IDs memory usage auto banned_request_ids_memory_gauge = metric::create_gauge("weaseldb_banned_request_ids_memory_bytes", @@ -221,6 +229,7 @@ HttpRoute HttpHandler::parseRoute(std::string_view method, // Route handlers (basic implementations) void HttpHandler::handleGetVersion(Connection &conn, const HttpConnectionState &state) { + version_counter.inc(); send_json_response( conn, 200, format(conn.get_arena(), R"({"version":%ld,"leader":""})", @@ -230,6 +239,7 @@ void HttpHandler::handleGetVersion(Connection &conn, void HttpHandler::handlePostCommit(Connection &conn, const HttpConnectionState &state) { + commit_counter.inc(); // Check if streaming parse was successful if (!state.commit_request || !state.parsing_commit) { const char *error = state.commit_parser @@ -298,6 +308,7 @@ void HttpHandler::handleGetSubscribe(Connection &conn, void HttpHandler::handleGetStatus(Connection &conn, HttpConnectionState &state) { + status_counter.inc(); // Status requests are processed through the pipeline // Response will be generated in the sequence stage // This handler extracts request_id from query parameters and prepares for