6#ifndef METRICS_REGISTRY_H
7#define METRICS_REGISTRY_H
45 static constexpr const char *
KindNames[
NumKinds] = {
"session",
"room",
"game",
"moderator",
"admin",
"developer"};
51 static_assert(
KindStride > 1206,
"KindStride must exceed the highest command extension number in use");
53 static int typeIdFor(
int kindIndex,
int extensionNumber)
55 return kindIndex *
KindStride + extensionNumber;
111 TypeStats &
slotFor(
int typeId);
112 const TypeStats &
slotFor(
int typeId)
const;
Lock-free accumulation of command processing statistics.
Definition metrics_registry.h:30
qint64 totalTimeMs() const
Cumulative processing milliseconds across all types.
Definition metrics_registry.h:74
static int typeIdFor(int kindIndex, int extensionNumber)
Guard against typeIdFor() overflowing into the neighbouring kind's slots.
Definition metrics_registry.h:53
std::atomic< qint64 > totalTimeCounter
Definition metrics_registry.h:117
void observeGameStartDurationMs(qint64 elapsedMs)
Definition metrics_registry.cpp:22
static constexpr const char * KindNames[NumKinds]
Definition metrics_registry.h:45
int activeTypeCount() const
Number of distinct type slots that have seen at least one sample.
Definition metrics_registry.cpp:42
GameStartSnapshot getGameStartSnapshot() const
Definition metrics_registry.cpp:67
void observeCommand(int typeId, qint64 elapsedMs)
Definition metrics_registry.cpp:6
std::array< TypeStats, MaxTypes > typeSlots
Definition metrics_registry.h:114
std::atomic< qint64 > totalCommandsCounter
Definition metrics_registry.h:116
static constexpr int MaxTypes
Upper bound on distinct command type ids (see typeIdFor).
Definition metrics_registry.h:48
TypeStats & slotFor(int typeId)
Definition metrics_registry.cpp:32
static constexpr int KindStride
Definition metrics_registry.h:41
QList< ActiveTypeStats > collectActiveStats() const
Definition metrics_registry.cpp:53
qint64 totalCommands() const
Total number of observed commands across all types.
Definition metrics_registry.h:68
TypeStats gameStartStats
Definition metrics_registry.h:115
static constexpr int NumKinds
Definition metrics_registry.h:43
Definition remote_connection_controller.h:20
Definition metrics_registry.h:83
qint64 count
Definition metrics_registry.h:85
qint64 totalMs
Definition metrics_registry.h:86
int typeId
Definition metrics_registry.h:84
Definition metrics_registry.h:97
qint64 totalMs
Definition metrics_registry.h:99
qint64 count
Definition metrics_registry.h:98
Definition metrics_registry.h:106
std::atomic< qint64 > count
Definition metrics_registry.h:107
std::atomic< qint64 > totalMs
Definition metrics_registry.h:108