mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-08-09 09:18:45 +02:00
Update fps useractivity with more general stats
This commit is contained in:
parent
7b3b01a96a
commit
3aac0cc4fb
1 changed files with 48 additions and 6 deletions
|
@ -1090,15 +1090,57 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer) :
|
||||||
|
|
||||||
// Add periodic checks to send user activity data
|
// Add periodic checks to send user activity data
|
||||||
static int CHECK_NEARBY_AVATARS_INTERVAL_MS = 10000;
|
static int CHECK_NEARBY_AVATARS_INTERVAL_MS = 10000;
|
||||||
static int SEND_FPS_INTERVAL_MS = 10000;
|
static int SEND_STATS_INTERVAL_MS = 10000;
|
||||||
|
static int NEARBY_AVATAR_RADIUS_METERS = 10;
|
||||||
|
|
||||||
// Periodically send fps as a user activity event
|
// Periodically send fps as a user activity event
|
||||||
QTimer* sendFPSTimer = new QTimer(this);
|
QTimer* sendStatsTimer = new QTimer(this);
|
||||||
sendFPSTimer->setInterval(SEND_FPS_INTERVAL_MS);
|
sendStatsTimer->setInterval(SEND_STATS_INTERVAL_MS);
|
||||||
connect(sendFPSTimer, &QTimer::timeout, this, [this]() {
|
connect(sendStatsTimer, &QTimer::timeout, this, [this]() {
|
||||||
UserActivityLogger::getInstance().logAction("fps", { { "rate", _frameCounter.rate() } });
|
QJsonObject properties = {};
|
||||||
|
MemoryInfo memInfo;
|
||||||
|
if (getMemoryInfo(memInfo)) {
|
||||||
|
properties["system_memory_total"] = static_cast<int64_t>(memInfo.totalMemoryBytes);
|
||||||
|
properties["system_memory_used"] = static_cast<int64_t>(memInfo.usedMemoryBytes);
|
||||||
|
properties["process_memory_used"] = static_cast<int64_t>(memInfo.processUsedMemoryBytes);
|
||||||
|
}
|
||||||
|
|
||||||
|
auto displayPlugin = qApp->getActiveDisplayPlugin();
|
||||||
|
|
||||||
|
properties["fps"] = _frameCounter.rate();
|
||||||
|
properties["present_rate"] = displayPlugin->presentRate();
|
||||||
|
properties["new_frame_present_rate"] = displayPlugin->newFramePresentRate();
|
||||||
|
properties["dropped_frame_rate"] = displayPlugin->droppedFrameRate();
|
||||||
|
properties["sim_rate"] = getAverageSimsPerSecond();
|
||||||
|
properties["avatar_sim_rate"] = getAvatarSimrate();
|
||||||
|
|
||||||
|
auto bandwidthRecorder = DependencyManager::get<BandwidthRecorder>();
|
||||||
|
properties["packet_rate_in"] = bandwidthRecorder->getCachedTotalAverageInputPacketsPerSecond();
|
||||||
|
properties["packet_rate_out"] = bandwidthRecorder->getCachedTotalAverageOutputPacketsPerSecond();
|
||||||
|
properties["kbps_in"] = bandwidthRecorder->getCachedTotalAverageInputKilobitsPerSecond();
|
||||||
|
properties["kbps_out"] = bandwidthRecorder->getCachedTotalAverageOutputKilobitsPerSecond();
|
||||||
|
|
||||||
|
auto nodeList = DependencyManager::get<NodeList>();
|
||||||
|
SharedNodePointer entityServerNode = nodeList->soloNodeOfType(NodeType::EntityServer);
|
||||||
|
SharedNodePointer audioMixerNode = nodeList->soloNodeOfType(NodeType::AudioMixer);
|
||||||
|
SharedNodePointer avatarMixerNode = nodeList->soloNodeOfType(NodeType::AvatarMixer);
|
||||||
|
SharedNodePointer assetServerNode = nodeList->soloNodeOfType(NodeType::AssetServer);
|
||||||
|
SharedNodePointer messagesMixerNode = nodeList->soloNodeOfType(NodeType::MessagesMixer);
|
||||||
|
properties["entity_ping"] = entityServerNode ? entityServerNode->getPingMs() : -1;
|
||||||
|
properties["audio_ping"] = audioMixerNode ? audioMixerNode->getPingMs() : -1;
|
||||||
|
properties["avatar_ping"] = avatarMixerNode ? avatarMixerNode->getPingMs() : -1;
|
||||||
|
properties["asset_ping"] = assetServerNode ? assetServerNode->getPingMs() : -1;
|
||||||
|
properties["messages_ping"] = messagesMixerNode ? messagesMixerNode->getPingMs() : -1;
|
||||||
|
|
||||||
|
auto loadingRequests = ResourceCache::getLoadingRequests();
|
||||||
|
properties["active_downloads"] = loadingRequests.size();
|
||||||
|
properties["pending_downloads"] = ResourceCache::getPendingRequestCount();
|
||||||
|
|
||||||
|
properties["throttled"] = _displayPlugin ? _displayPlugin->isThrottled() : false;
|
||||||
|
|
||||||
|
UserActivityLogger::getInstance().logAction("stats", properties);
|
||||||
});
|
});
|
||||||
sendFPSTimer->start();
|
sendStatsTimer->start();
|
||||||
|
|
||||||
|
|
||||||
// Periodically check for count of nearby avatars
|
// Periodically check for count of nearby avatars
|
||||||
|
|
Loading…
Reference in a new issue