aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/common/Threading/ProducerConsumerQueue.h5
-rw-r--r--src/server/database/Database/DatabaseWorkerPool.cpp6
-rw-r--r--src/server/database/Database/DatabaseWorkerPool.h2
-rw-r--r--src/server/scripts/Commands/cs_server.cpp4
-rw-r--r--src/server/worldserver/Main.cpp3
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", "");