userver
C++ Async Framework
Loading...
Searching...
No Matches
sensor.hpp
Go to the documentation of this file.
1
#
pragma
once
2
3
/// @file userver/server/congestion_control/sensor.hpp
4
/// @brief @copybrief server::congestion_control::Sensor
5
6
#
include
<
cstdint
>
7
8
#
include
<
userver
/
congestion_control
/
sensor
.
hpp
>
9
#
include
<
userver
/
engine
/
task
/
task_processor_fwd
.
hpp
>
10
#
include
<
userver
/
rcu
/
rcu
.
hpp
>
11
#
include
<
userver
/
utils
/
statistics
/
recentperiod
.
hpp
>
12
13
USERVER_NAMESPACE_BEGIN
14
15
namespace
server::congestion_control {
16
17
class
RequestsSource
{
18
public
:
19
virtual
~RequestsSource() =
default
;
20
21
virtual
std::uint64_t GetTotalRequests()
const
= 0;
22
};
23
24
/// @brief HTTP server congestion control sensor
25
class
Sensor
final
:
public
USERVER_NAMESPACE::
congestion_control
::
Sensor
{
26
public
:
27
explicit
Sensor(engine::TaskProcessor& tp);
28
29
Data
FetchCurrent
()
override
;
30
31
void
RegisterRequestsSource(
RequestsSource
& source);
32
33
private
:
34
engine::TaskProcessor& tp_;
35
rcu
::Variable<std::vector<
RequestsSource
*>> requests_sources_;
36
37
std::chrono::steady_clock::time_point last_fetch_tp_;
38
std::uint64_t last_overloads_{0};
39
std::uint64_t last_no_overloads_{0};
40
std::uint64_t last_requests_{0};
41
};
42
43
}
// namespace server::congestion_control
44
45
USERVER_NAMESPACE_END
userver
server
congestion_control
sensor.hpp
Generated on Thu May 21 2026 16:16:15 for userver by
Doxygen
1.13.2