diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/common/Threading/ProducerConsumerQueue.h | 5 | ||||
-rw-r--r-- | src/server/database/Database/DatabaseWorkerPool.cpp | 6 | ||||
-rw-r--r-- | src/server/database/Database/DatabaseWorkerPool.h | 2 | ||||
-rw-r--r-- | src/server/scripts/Commands/cs_server.cpp | 4 | ||||
-rw-r--r-- | src/server/worldserver/Main.cpp | 3 |
5 files changed, 20 insertions, 0 deletions
diff --git a/src/common/Threading/ProducerConsumerQueue.h b/src/common/Threading/ProducerConsumerQueue.h index 1341bd26747..778f434e9de 100644 --- a/src/common/Threading/ProducerConsumerQueue.h +++ b/src/common/Threading/ProducerConsumerQueue.h @@ -52,6 +52,11 @@ public: return _queue.empty(); } + size_t Size() const + { + return _queue.size(); + } + bool Pop(T& value) { std::lock_guard<std::mutex> lock(_queueLock); diff --git a/src/server/database/Database/DatabaseWorkerPool.cpp b/src/server/database/Database/DatabaseWorkerPool.cpp index 043db148a1e..7aa1a1e46d1 100644 --- a/src/server/database/Database/DatabaseWorkerPool.cpp +++ b/src/server/database/Database/DatabaseWorkerPool.cpp @@ -415,6 +415,12 @@ void DatabaseWorkerPool<T>::Enqueue(SQLOperation* op) } template <class T> +size_t DatabaseWorkerPool<T>::QueueSize() const +{ + return _queue->Size(); +} + +template <class T> T* DatabaseWorkerPool<T>::GetFreeConnection() { #ifdef TRINITY_DEBUG diff --git a/src/server/database/Database/DatabaseWorkerPool.h b/src/server/database/Database/DatabaseWorkerPool.h index 9852ded374e..66d5a55dffa 100644 --- a/src/server/database/Database/DatabaseWorkerPool.h +++ b/src/server/database/Database/DatabaseWorkerPool.h @@ -213,6 +213,8 @@ class DatabaseWorkerPool #endif } + size_t QueueSize() const; + private: uint32 OpenConnections(InternalIndex type, uint8 numConnections); diff --git a/src/server/scripts/Commands/cs_server.cpp b/src/server/scripts/Commands/cs_server.cpp index 20b7961f13c..7306b73554c 100644 --- a/src/server/scripts/Commands/cs_server.cpp +++ b/src/server/scripts/Commands/cs_server.cpp @@ -249,6 +249,10 @@ public: handler->PSendSysMessage("Using %s DBC Locale as default. All available DBC locales: %s", localeNames[defaultLocale], availableLocales.c_str()); handler->PSendSysMessage("Using World DB: %s", sWorld->GetDBVersion()); + + handler->PSendSysMessage("LoginDatabase queue size: %zu", LoginDatabase.QueueSize()); + handler->PSendSysMessage("CharacterDatabase queue size: %zu", CharacterDatabase.QueueSize()); + handler->PSendSysMessage("WorldDatabase queue size: %zu", WorldDatabase.QueueSize()); return true; } diff --git a/src/server/worldserver/Main.cpp b/src/server/worldserver/Main.cpp index 96d81f98f17..1fe51079f6b 100644 --- a/src/server/worldserver/Main.cpp +++ b/src/server/worldserver/Main.cpp @@ -281,6 +281,9 @@ extern int main(int argc, char** argv) sMetric->Initialize(realm.Name, *ioContext, []() { TC_METRIC_VALUE("online_players", sWorld->GetPlayerCount()); + TC_METRIC_VALUE("db_queue_login", LoginDatabase.QueueSize()); + TC_METRIC_VALUE("db_queue_character", CharacterDatabase.QueueSize()); + TC_METRIC_VALUE("db_queue_world", WorldDatabase.QueueSize()); }); TC_METRIC_EVENT("events", "Worldserver started", ""); |