Metrics

namespace HTTPServer
class Metrics : public HTTPServer::IObserver

Public Functions

virtual void onEvent(const Event &event) override
void incrementActiveConnection()
void decrementActiveConnection()
void incrementTotalRequests()
void recordResponseStatus(StatusCode code)
void recordBytesReceived(uint64_t bytes)
void recordBytesSent(uint64_t bytes)
void recordRequestProcessingTime(std::chrono::milliseconds duration)
MetricsSnapshot snapshot() const

Public Static Functions

static Metrics &instance()

Private Functions

Metrics()
~Metrics() = default
Metrics(const Metrics&) = delete
Metrics &operator=(const Metrics&) = delete
Metrics(Metrics&&) = delete
Metrics &operator=(Metrics&&) = delete

Private Members

std::atomic<uint64_t> d_activeConnections
std::atomic<uint64_t> d_totalRequests
std::atomic<uint64_t> d_responses2xx
std::atomic<uint64_t> d_responses3xx
std::atomic<uint64_t> d_responses4xx
std::atomic<uint64_t> d_responses5xx
std::atomic<uint64_t> d_totalBytesReceived
std::atomic<uint64_t> d_totalBytesSent
std::atomic<uint64_t> d_totalRequestProcessingTimeMs
struct MetricsSnapshot

Public Members

uint64_t d_activeConnections
uint64_t d_totalRequests
uint64_t d_responses2xx
uint64_t d_responses3xx
uint64_t d_responses4xx
uint64_t d_responses5xx
uint64_t d_totalBytesReceived
uint64_t d_totalBytesSent
uint64_t d_totalRequestProcessingTimeMs