Add counters for /v1/{commit,status,version}

This commit is contained in:
2025-09-04 15:49:54 -04:00
parent 96aae52853
commit 55069c0c79

View File

@@ -18,6 +18,14 @@ auto requests_counter_family = metric::create_counter(
thread_local auto metrics_counter = thread_local auto metrics_counter =
requests_counter_family.create({{"path", "/metrics"}}); 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 // Metric for banned request IDs memory usage
auto banned_request_ids_memory_gauge = auto banned_request_ids_memory_gauge =
metric::create_gauge("weaseldb_banned_request_ids_memory_bytes", metric::create_gauge("weaseldb_banned_request_ids_memory_bytes",
@@ -221,6 +229,7 @@ HttpRoute HttpHandler::parseRoute(std::string_view method,
// Route handlers (basic implementations) // Route handlers (basic implementations)
void HttpHandler::handleGetVersion(Connection &conn, void HttpHandler::handleGetVersion(Connection &conn,
const HttpConnectionState &state) { const HttpConnectionState &state) {
version_counter.inc();
send_json_response( send_json_response(
conn, 200, conn, 200,
format(conn.get_arena(), R"({"version":%ld,"leader":""})", format(conn.get_arena(), R"({"version":%ld,"leader":""})",
@@ -230,6 +239,7 @@ void HttpHandler::handleGetVersion(Connection &conn,
void HttpHandler::handlePostCommit(Connection &conn, void HttpHandler::handlePostCommit(Connection &conn,
const HttpConnectionState &state) { const HttpConnectionState &state) {
commit_counter.inc();
// Check if streaming parse was successful // Check if streaming parse was successful
if (!state.commit_request || !state.parsing_commit) { if (!state.commit_request || !state.parsing_commit) {
const char *error = state.commit_parser const char *error = state.commit_parser
@@ -298,6 +308,7 @@ void HttpHandler::handleGetSubscribe(Connection &conn,
void HttpHandler::handleGetStatus(Connection &conn, void HttpHandler::handleGetStatus(Connection &conn,
HttpConnectionState &state) { HttpConnectionState &state) {
status_counter.inc();
// Status requests are processed through the pipeline // Status requests are processed through the pipeline
// Response will be generated in the sequence stage // Response will be generated in the sequence stage
// This handler extracts request_id from query parameters and prepares for // This handler extracts request_id from query parameters and prepares for