diff --git a/tracing/trace_state.cc b/tracing/trace_state.cc index 8d7894010e..09d8b3a092 100644 --- a/tracing/trace_state.cc +++ b/tracing/trace_state.cc @@ -135,6 +135,10 @@ void trace_state::add_query(sstring_view val) { _params_ptr->queries.emplace_back(std::move(val)); } +void trace_state::add_session_param(sstring_view key, sstring_view val) { + _records->session_rec.parameters.emplace(std::move(key), std::move(val)); +} + void trace_state::set_user_timestamp(api::timestamp_type val) { _params_ptr->user_timestamp.emplace(val); } diff --git a/tracing/trace_state.hh b/tracing/trace_state.hh index c6af17414a..8ac9cf589f 100644 --- a/tracing/trace_state.hh +++ b/tracing/trace_state.hh @@ -357,6 +357,16 @@ private: */ void add_query(sstring_view val); + /** + * Store a custom session parameter. + * + * Thus value will be stored in the params map of a tracing session + * + * @param key the parameter key + * @param val the parameter value + */ + void add_session_param(sstring_view key, sstring_view val); + /** * Store a user provided timestamp. * @@ -475,6 +485,7 @@ private: friend void set_consistency_level(const trace_state_ptr& p, db::consistency_level val); friend void set_optional_serial_consistency_level(const trace_state_ptr& p, const std::optional&val); friend void add_query(const trace_state_ptr& p, sstring_view val); + friend void add_session_param(const trace_state_ptr& p, sstring_view key, sstring_view val); friend void set_user_timestamp(const trace_state_ptr& p, api::timestamp_type val); friend void add_prepared_statement(const trace_state_ptr& p, prepared_checked_weak_ptr& prepared); friend void set_username(const trace_state_ptr& p, const std::optional& user); @@ -616,6 +627,12 @@ inline void add_query(const trace_state_ptr& p, sstring_view val) { } } +inline void add_session_param(const trace_state_ptr& p, sstring_view key, sstring_view val) { + if (p) { + p->add_session_param(std::move(key), std::move(val)); + } +} + inline void set_user_timestamp(const trace_state_ptr& p, api::timestamp_type val) { if (p) { p->set_user_timestamp(val);