Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
RuntimeMetrics.h
Go to the documentation of this file.
1
/*
2
* This file is part of Project SkyFire https://www.projectskyfire.org.
3
* See LICENSE.md file for Copyright information
4
*/
5
6
#ifndef SKYFIRE_RUNTIME_METRICS_H
7
#define SKYFIRE_RUNTIME_METRICS_H
8
9
#include "
Define.h
"
10
11
#include <atomic>
12
#include <string>
13
#include <vector>
14
15
namespace
Skyfire
16
{
17
namespace
Diagnostics
18
{
19
struct
RuntimeSampleSnapshot
20
{
21
RuntimeSampleSnapshot
();
22
23
uint64
SampleCount
;
24
uint64
SlowSamples
;
25
uint32
Last
;
26
uint32
Average
;
27
uint32
Maximum
;
28
};
29
30
struct
MapUpdaterMetricsSnapshot
31
{
32
MapUpdaterMetricsSnapshot
();
33
34
uint64
Scheduled
;
35
uint64
Completed
;
36
uint64
ScheduleFailures
;
37
uint32
Pending
;
38
uint32
PendingHighWater
;
39
RuntimeSampleSnapshot
Wait
;
40
};
41
42
struct
WorldSessionMetricsSnapshot
43
{
44
WorldSessionMetricsSnapshot
();
45
46
uint64
PacketsQueued
;
47
uint64
PacketsProcessed
;
48
uint32
QueueDepth
;
49
uint32
QueueDepthHighWater
;
50
uint64
QueueDepthHighWaterEvents
;
51
};
52
53
struct
SpellCastMetricsSnapshot
54
{
55
SpellCastMetricsSnapshot
();
56
57
uint64
Failures
;
58
uint32
LastSpellId
;
59
uint32
LastFailure
;
60
uint32
LastCustomError
;
61
uint32
LastOpcode
;
62
};
63
64
struct
RuntimeMetricsSnapshot
65
{
66
RuntimeMetricsSnapshot
();
67
68
RuntimeSampleSnapshot
WorldUpdate
;
69
RuntimeSampleSnapshot
MapUpdatePasses
;
70
MapUpdaterMetricsSnapshot
MapUpdater
;
71
WorldSessionMetricsSnapshot
WorldSession
;
72
SpellCastMetricsSnapshot
SpellCast
;
73
};
74
75
class
RuntimeMetrics
76
{
77
public
:
78
RuntimeMetrics
();
79
80
void
Reset
();
81
82
void
RecordWorldUpdate
(
uint32
diffMs);
83
void
RecordMapUpdatePass
(
uint32
mapCount);
84
void
RecordMapUpdateScheduled
(
uint32
pendingRequests);
85
void
RecordMapUpdateCompleted
(
uint32
pendingRequests);
86
void
RecordMapUpdateScheduleFailed
(
uint32
pendingRequests);
87
void
RecordMapUpdateWait
(
uint32
waitMs);
88
void
RecordWorldSessionPacketQueued
(
uint32
queueDepth);
89
void
RecordWorldSessionPacketProcessed
(
uint32
queueDepth);
90
void
RecordSpellCastFailure
(
uint32
spellId,
uint32
failure,
uint32
customError,
uint32
opcode);
91
92
RuntimeMetricsSnapshot
Snapshot
()
const
;
93
94
private
:
95
class
RuntimeSample
96
{
97
public
:
98
RuntimeSample
();
99
100
void
Reset
();
101
void
Record
(
uint32
value,
uint32
slowThresholdMs = 0);
102
RuntimeSampleSnapshot
Snapshot
()
const
;
103
104
private
:
105
std::atomic<uint64>
_sampleCount
;
106
std::atomic<uint64>
_slowSamples
;
107
std::atomic<uint64>
_total
;
108
std::atomic<uint32>
_last
;
109
std::atomic<uint32>
_maximum
;
110
};
111
112
RuntimeSample
_worldUpdate
;
113
RuntimeSample
_mapUpdatePasses
;
114
RuntimeSample
_mapUpdateWait
;
115
std::atomic<uint64>
_mapUpdateScheduled
;
116
std::atomic<uint64>
_mapUpdateCompleted
;
117
std::atomic<uint64>
_mapUpdateScheduleFailures
;
118
std::atomic<uint32>
_mapUpdatePending
;
119
std::atomic<uint32>
_mapUpdatePendingHighWater
;
120
std::atomic<uint64>
_worldSessionPacketsQueued
;
121
std::atomic<uint64>
_worldSessionPacketsProcessed
;
122
std::atomic<uint32>
_worldSessionQueueDepth
;
123
std::atomic<uint32>
_worldSessionQueueDepthHighWater
;
124
std::atomic<uint64>
_worldSessionQueueDepthHighWaterEvents
;
125
std::atomic<uint64>
_spellCastFailures
;
126
std::atomic<uint32>
_spellCastLastSpellId
;
127
std::atomic<uint32>
_spellCastLastFailure
;
128
std::atomic<uint32>
_spellCastLastCustomError
;
129
std::atomic<uint32>
_spellCastLastOpcode
;
130
};
131
132
RuntimeMetrics
&
GetRuntimeMetrics
();
133
std::vector<std::string>
FormatRuntimeMetricLines
(
RuntimeMetricsSnapshot
const
& snapshot);
134
}
135
}
136
137
#endif
Define.h
uint32
std::uint32_t uint32
Definition
Define.h:77
uint64
std::uint64_t uint64
Definition
Define.h:76
Skyfire::Diagnostics::RuntimeMetrics::RuntimeSample
Definition
RuntimeMetrics.h:96
Skyfire::Diagnostics::RuntimeMetrics::RuntimeSample::_total
std::atomic< uint64 > _total
Definition
RuntimeMetrics.h:107
Skyfire::Diagnostics::RuntimeMetrics::RuntimeSample::_sampleCount
std::atomic< uint64 > _sampleCount
Definition
RuntimeMetrics.h:105
Skyfire::Diagnostics::RuntimeMetrics::RuntimeSample::Reset
void Reset()
Definition
RuntimeMetrics.cpp:49
Skyfire::Diagnostics::RuntimeMetrics::RuntimeSample::_last
std::atomic< uint32 > _last
Definition
RuntimeMetrics.h:108
Skyfire::Diagnostics::RuntimeMetrics::RuntimeSample::_slowSamples
std::atomic< uint64 > _slowSamples
Definition
RuntimeMetrics.h:106
Skyfire::Diagnostics::RuntimeMetrics::RuntimeSample::Snapshot
RuntimeSampleSnapshot Snapshot() const
Definition
RuntimeMetrics.cpp:69
Skyfire::Diagnostics::RuntimeMetrics::RuntimeSample::RuntimeSample
RuntimeSample()
Definition
RuntimeMetrics.cpp:46
Skyfire::Diagnostics::RuntimeMetrics::RuntimeSample::Record
void Record(uint32 value, uint32 slowThresholdMs=0)
Definition
RuntimeMetrics.cpp:58
Skyfire::Diagnostics::RuntimeMetrics::RuntimeSample::_maximum
std::atomic< uint32 > _maximum
Definition
RuntimeMetrics.h:109
Skyfire::Diagnostics::RuntimeMetrics
Definition
RuntimeMetrics.h:76
Skyfire::Diagnostics::RuntimeMetrics::_spellCastFailures
std::atomic< uint64 > _spellCastFailures
Definition
RuntimeMetrics.h:125
Skyfire::Diagnostics::RuntimeMetrics::_spellCastLastFailure
std::atomic< uint32 > _spellCastLastFailure
Definition
RuntimeMetrics.h:127
Skyfire::Diagnostics::RuntimeMetrics::RecordWorldSessionPacketQueued
void RecordWorldSessionPacketQueued(uint32 queueDepth)
Definition
RuntimeMetrics.cpp:159
Skyfire::Diagnostics::RuntimeMetrics::_worldSessionQueueDepthHighWater
std::atomic< uint32 > _worldSessionQueueDepthHighWater
Definition
RuntimeMetrics.h:123
Skyfire::Diagnostics::RuntimeMetrics::_worldSessionQueueDepth
std::atomic< uint32 > _worldSessionQueueDepth
Definition
RuntimeMetrics.h:122
Skyfire::Diagnostics::RuntimeMetrics::_spellCastLastCustomError
std::atomic< uint32 > _spellCastLastCustomError
Definition
RuntimeMetrics.h:128
Skyfire::Diagnostics::RuntimeMetrics::_mapUpdateWait
RuntimeSample _mapUpdateWait
Definition
RuntimeMetrics.h:114
Skyfire::Diagnostics::RuntimeMetrics::RecordMapUpdateWait
void RecordMapUpdateWait(uint32 waitMs)
Definition
RuntimeMetrics.cpp:154
Skyfire::Diagnostics::RuntimeMetrics::RuntimeMetrics
RuntimeMetrics()
Definition
RuntimeMetrics.cpp:83
Skyfire::Diagnostics::RuntimeMetrics::_mapUpdatePasses
RuntimeSample _mapUpdatePasses
Definition
RuntimeMetrics.h:113
Skyfire::Diagnostics::RuntimeMetrics::RecordMapUpdateScheduleFailed
void RecordMapUpdateScheduleFailed(uint32 pendingRequests)
Definition
RuntimeMetrics.cpp:148
Skyfire::Diagnostics::RuntimeMetrics::RecordSpellCastFailure
void RecordSpellCastFailure(uint32 spellId, uint32 failure, uint32 customError, uint32 opcode)
Definition
RuntimeMetrics.cpp:173
Skyfire::Diagnostics::RuntimeMetrics::_mapUpdateScheduled
std::atomic< uint64 > _mapUpdateScheduled
Definition
RuntimeMetrics.h:115
Skyfire::Diagnostics::RuntimeMetrics::RecordMapUpdatePass
void RecordMapUpdatePass(uint32 mapCount)
Definition
RuntimeMetrics.cpp:130
Skyfire::Diagnostics::RuntimeMetrics::RecordWorldSessionPacketProcessed
void RecordWorldSessionPacketProcessed(uint32 queueDepth)
Definition
RuntimeMetrics.cpp:167
Skyfire::Diagnostics::RuntimeMetrics::Reset
void Reset()
Definition
RuntimeMetrics.cpp:103
Skyfire::Diagnostics::RuntimeMetrics::RecordWorldUpdate
void RecordWorldUpdate(uint32 diffMs)
Definition
RuntimeMetrics.cpp:125
Skyfire::Diagnostics::RuntimeMetrics::_mapUpdateScheduleFailures
std::atomic< uint64 > _mapUpdateScheduleFailures
Definition
RuntimeMetrics.h:117
Skyfire::Diagnostics::RuntimeMetrics::_mapUpdatePending
std::atomic< uint32 > _mapUpdatePending
Definition
RuntimeMetrics.h:118
Skyfire::Diagnostics::RuntimeMetrics::RecordMapUpdateScheduled
void RecordMapUpdateScheduled(uint32 pendingRequests)
Definition
RuntimeMetrics.cpp:135
Skyfire::Diagnostics::RuntimeMetrics::_mapUpdateCompleted
std::atomic< uint64 > _mapUpdateCompleted
Definition
RuntimeMetrics.h:116
Skyfire::Diagnostics::RuntimeMetrics::Snapshot
RuntimeMetricsSnapshot Snapshot() const
Definition
RuntimeMetrics.cpp:182
Skyfire::Diagnostics::RuntimeMetrics::_worldSessionQueueDepthHighWaterEvents
std::atomic< uint64 > _worldSessionQueueDepthHighWaterEvents
Definition
RuntimeMetrics.h:124
Skyfire::Diagnostics::RuntimeMetrics::_worldSessionPacketsQueued
std::atomic< uint64 > _worldSessionPacketsQueued
Definition
RuntimeMetrics.h:120
Skyfire::Diagnostics::RuntimeMetrics::_spellCastLastOpcode
std::atomic< uint32 > _spellCastLastOpcode
Definition
RuntimeMetrics.h:129
Skyfire::Diagnostics::RuntimeMetrics::_worldSessionPacketsProcessed
std::atomic< uint64 > _worldSessionPacketsProcessed
Definition
RuntimeMetrics.h:121
Skyfire::Diagnostics::RuntimeMetrics::_worldUpdate
RuntimeSample _worldUpdate
Definition
RuntimeMetrics.h:112
Skyfire::Diagnostics::RuntimeMetrics::_mapUpdatePendingHighWater
std::atomic< uint32 > _mapUpdatePendingHighWater
Definition
RuntimeMetrics.h:119
Skyfire::Diagnostics::RuntimeMetrics::RecordMapUpdateCompleted
void RecordMapUpdateCompleted(uint32 pendingRequests)
Definition
RuntimeMetrics.cpp:142
Skyfire::Diagnostics::RuntimeMetrics::_spellCastLastSpellId
std::atomic< uint32 > _spellCastLastSpellId
Definition
RuntimeMetrics.h:126
Skyfire::Diagnostics
Definition
RuntimeMetrics.cpp:30
Skyfire::Diagnostics::GetRuntimeMetrics
RuntimeMetrics & GetRuntimeMetrics()
Definition
RuntimeMetrics.cpp:207
Skyfire::Diagnostics::FormatRuntimeMetricLines
std::vector< std::string > FormatRuntimeMetricLines(RuntimeMetricsSnapshot const &snapshot)
Definition
RuntimeMetrics.cpp:213
Skyfire
Definition
AuthPatchTransfer.h:12
Skyfire::Diagnostics::MapUpdaterMetricsSnapshot
Definition
RuntimeMetrics.h:31
Skyfire::Diagnostics::MapUpdaterMetricsSnapshot::Scheduled
uint64 Scheduled
Definition
RuntimeMetrics.h:34
Skyfire::Diagnostics::MapUpdaterMetricsSnapshot::ScheduleFailures
uint64 ScheduleFailures
Definition
RuntimeMetrics.h:36
Skyfire::Diagnostics::MapUpdaterMetricsSnapshot::MapUpdaterMetricsSnapshot
MapUpdaterMetricsSnapshot()
Definition
RuntimeMetrics.cpp:34
Skyfire::Diagnostics::MapUpdaterMetricsSnapshot::PendingHighWater
uint32 PendingHighWater
Definition
RuntimeMetrics.h:38
Skyfire::Diagnostics::MapUpdaterMetricsSnapshot::Pending
uint32 Pending
Definition
RuntimeMetrics.h:37
Skyfire::Diagnostics::MapUpdaterMetricsSnapshot::Completed
uint64 Completed
Definition
RuntimeMetrics.h:35
Skyfire::Diagnostics::MapUpdaterMetricsSnapshot::Wait
RuntimeSampleSnapshot Wait
Definition
RuntimeMetrics.h:39
Skyfire::Diagnostics::RuntimeMetricsSnapshot
Definition
RuntimeMetrics.h:65
Skyfire::Diagnostics::RuntimeMetricsSnapshot::MapUpdatePasses
RuntimeSampleSnapshot MapUpdatePasses
Definition
RuntimeMetrics.h:69
Skyfire::Diagnostics::RuntimeMetricsSnapshot::WorldSession
WorldSessionMetricsSnapshot WorldSession
Definition
RuntimeMetrics.h:71
Skyfire::Diagnostics::RuntimeMetricsSnapshot::RuntimeMetricsSnapshot
RuntimeMetricsSnapshot()
Definition
RuntimeMetrics.cpp:43
Skyfire::Diagnostics::RuntimeMetricsSnapshot::WorldUpdate
RuntimeSampleSnapshot WorldUpdate
Definition
RuntimeMetrics.h:68
Skyfire::Diagnostics::RuntimeMetricsSnapshot::MapUpdater
MapUpdaterMetricsSnapshot MapUpdater
Definition
RuntimeMetrics.h:70
Skyfire::Diagnostics::RuntimeMetricsSnapshot::SpellCast
SpellCastMetricsSnapshot SpellCast
Definition
RuntimeMetrics.h:72
Skyfire::Diagnostics::RuntimeSampleSnapshot
Definition
RuntimeMetrics.h:20
Skyfire::Diagnostics::RuntimeSampleSnapshot::Maximum
uint32 Maximum
Definition
RuntimeMetrics.h:27
Skyfire::Diagnostics::RuntimeSampleSnapshot::Average
uint32 Average
Definition
RuntimeMetrics.h:26
Skyfire::Diagnostics::RuntimeSampleSnapshot::SampleCount
uint64 SampleCount
Definition
RuntimeMetrics.h:23
Skyfire::Diagnostics::RuntimeSampleSnapshot::RuntimeSampleSnapshot
RuntimeSampleSnapshot()
Definition
RuntimeMetrics.cpp:31
Skyfire::Diagnostics::RuntimeSampleSnapshot::Last
uint32 Last
Definition
RuntimeMetrics.h:25
Skyfire::Diagnostics::RuntimeSampleSnapshot::SlowSamples
uint64 SlowSamples
Definition
RuntimeMetrics.h:24
Skyfire::Diagnostics::SpellCastMetricsSnapshot
Definition
RuntimeMetrics.h:54
Skyfire::Diagnostics::SpellCastMetricsSnapshot::LastOpcode
uint32 LastOpcode
Definition
RuntimeMetrics.h:61
Skyfire::Diagnostics::SpellCastMetricsSnapshot::LastFailure
uint32 LastFailure
Definition
RuntimeMetrics.h:59
Skyfire::Diagnostics::SpellCastMetricsSnapshot::Failures
uint64 Failures
Definition
RuntimeMetrics.h:57
Skyfire::Diagnostics::SpellCastMetricsSnapshot::LastCustomError
uint32 LastCustomError
Definition
RuntimeMetrics.h:60
Skyfire::Diagnostics::SpellCastMetricsSnapshot::LastSpellId
uint32 LastSpellId
Definition
RuntimeMetrics.h:58
Skyfire::Diagnostics::SpellCastMetricsSnapshot::SpellCastMetricsSnapshot
SpellCastMetricsSnapshot()
Definition
RuntimeMetrics.cpp:40
Skyfire::Diagnostics::WorldSessionMetricsSnapshot
Definition
RuntimeMetrics.h:43
Skyfire::Diagnostics::WorldSessionMetricsSnapshot::PacketsProcessed
uint64 PacketsProcessed
Definition
RuntimeMetrics.h:47
Skyfire::Diagnostics::WorldSessionMetricsSnapshot::QueueDepthHighWaterEvents
uint64 QueueDepthHighWaterEvents
Definition
RuntimeMetrics.h:50
Skyfire::Diagnostics::WorldSessionMetricsSnapshot::QueueDepth
uint32 QueueDepth
Definition
RuntimeMetrics.h:48
Skyfire::Diagnostics::WorldSessionMetricsSnapshot::WorldSessionMetricsSnapshot
WorldSessionMetricsSnapshot()
Definition
RuntimeMetrics.cpp:37
Skyfire::Diagnostics::WorldSessionMetricsSnapshot::PacketsQueued
uint64 PacketsQueued
Definition
RuntimeMetrics.h:46
Skyfire::Diagnostics::WorldSessionMetricsSnapshot::QueueDepthHighWater
uint32 QueueDepthHighWater
Definition
RuntimeMetrics.h:49
src
server
game
Diagnostics
RuntimeMetrics.h
Generated on
for Project SkyFire Core by
1.17.0