api/cql_server_test: add information about scheduling group

Now, information about connections' scheduling group is included in the
HTTP API for querying information about connections' parameters.
This commit is contained in:
Piotr Dulikowski
2024-12-13 09:58:46 +01:00
parent 9319d65971
commit a65c0c3735
3 changed files with 10 additions and 4 deletions

View File

@@ -26,21 +26,24 @@ struct connection_sl_params : public json::json_base {
json::json_element<sstring> _role_name;
json::json_element<sstring> _workload_type;
json::json_element<sstring> _timeout;
json::json_element<sstring> _scheduling_group;
connection_sl_params(const sstring& role_name, const sstring& workload_type, const sstring& timeout) {
connection_sl_params(const sstring& role_name, const sstring& workload_type, const sstring& timeout, const sstring& scheduling_group) {
_role_name = role_name;
_workload_type = workload_type;
_timeout = timeout;
_scheduling_group = scheduling_group;
register_params();
}
connection_sl_params(const connection_sl_params& params)
: connection_sl_params(params._role_name(), params._workload_type(), params._timeout()) {}
: connection_sl_params(params._role_name(), params._workload_type(), params._timeout(), params._scheduling_group()) {}
void register_params() {
add(&_role_name, "role_name");
add(&_workload_type, "workload_type");
add(&_timeout, "timeout");
add(&_scheduling_group, "scheduling_group");
}
};
@@ -54,7 +57,8 @@ void set_cql_server_test(http_context& ctx, seastar::httpd::routes& r, cql_trans
return connection_sl_params(
std::move(params.role_name),
sstring(qos::service_level_options::to_string(params.workload_type)),
to_string(cql_duration(months_counter{0}, days_counter{0}, nanoseconds_counter{nanos})));
to_string(cql_duration(months_counter{0}, days_counter{0}, nanoseconds_counter{nanos})),
std::move(params.scheduling_group_name));
});
co_return result;
});

View File

@@ -2115,7 +2115,7 @@ future<std::vector<connection_service_level_params>> cql_server::get_connections
? (user->name ? *(user->name) : "ANONYMOUS")
: "UNAUTHENTICATED";
sl_params.emplace_back(std::move(role_name), client_state.get_timeout_config(), client_state.get_workload_type());
sl_params.emplace_back(std::move(role_name), client_state.get_timeout_config(), client_state.get_workload_type(), cql_conn.get_scheduling_group().name());
});
co_return sl_params;
}

View File

@@ -142,6 +142,7 @@ struct connection_service_level_params {
sstring role_name;
timeout_config timeout_config;
qos::service_level_options::workload_type workload_type;
sstring scheduling_group_name;
};
class cql_server : public seastar::peering_sharded_service<cql_server>, public generic_server::server {
@@ -252,6 +253,7 @@ private:
const service::client_state& get_client_state() const { return _client_state; }
void update_scheduling_group();
service::client_state& get_client_state() { return _client_state; }
scheduling_group get_scheduling_group() const { return _current_scheduling_group; }
private:
friend class process_request_executor;
future<foreign_ptr<std::unique_ptr<cql_server::response>>> process_request_one(fragmented_temporary_buffer::istream buf, uint8_t op, uint16_t stream, service::client_state& client_state, tracing_request_type tracing_request, service_permit permit);