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:
@@ -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;
|
||||
});
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user