Project SkyFire Core
SkyFire 5.4.8 server core API documentation
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
15namespace Skyfire
16{
17namespace Diagnostics
18{
29
41
52
63
74
76 {
77 public:
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);
90 void RecordSpellCastFailure(uint32 spellId, uint32 failure, uint32 customError, uint32 opcode);
91
93
94 private:
96 {
97 public:
99
100 void Reset();
101 void Record(uint32 value, uint32 slowThresholdMs = 0);
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
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;
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
133 std::vector<std::string> FormatRuntimeMetricLines(RuntimeMetricsSnapshot const& snapshot);
134}
135}
136
137#endif
std::uint32_t uint32
Definition Define.h:77
std::uint64_t uint64
Definition Define.h:76
void Record(uint32 value, uint32 slowThresholdMs=0)
std::atomic< uint64 > _spellCastFailures
std::atomic< uint32 > _spellCastLastFailure
void RecordWorldSessionPacketQueued(uint32 queueDepth)
std::atomic< uint32 > _worldSessionQueueDepthHighWater
std::atomic< uint32 > _worldSessionQueueDepth
std::atomic< uint32 > _spellCastLastCustomError
void RecordMapUpdateScheduleFailed(uint32 pendingRequests)
void RecordSpellCastFailure(uint32 spellId, uint32 failure, uint32 customError, uint32 opcode)
std::atomic< uint64 > _mapUpdateScheduled
void RecordWorldSessionPacketProcessed(uint32 queueDepth)
std::atomic< uint64 > _mapUpdateScheduleFailures
std::atomic< uint32 > _mapUpdatePending
void RecordMapUpdateScheduled(uint32 pendingRequests)
std::atomic< uint64 > _mapUpdateCompleted
RuntimeMetricsSnapshot Snapshot() const
std::atomic< uint64 > _worldSessionQueueDepthHighWaterEvents
std::atomic< uint64 > _worldSessionPacketsQueued
std::atomic< uint32 > _spellCastLastOpcode
std::atomic< uint64 > _worldSessionPacketsProcessed
std::atomic< uint32 > _mapUpdatePendingHighWater
void RecordMapUpdateCompleted(uint32 pendingRequests)
std::atomic< uint32 > _spellCastLastSpellId
RuntimeMetrics & GetRuntimeMetrics()
std::vector< std::string > FormatRuntimeMetricLines(RuntimeMetricsSnapshot const &snapshot)