History

Update fps useractivity with more general stats

Ryan Huffman committed 10 years ago

Commit 3aac0cc1 parent 7b3b01a1 file · +48 −6Browse files

Showing the changes to interface/src/Application.cpp (1 of 1 file). Show all

Unified · Split

interface/src/Application.cpp+48−6
@@ -1090,15 +1090,57 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer) : · 1089 unmodified lines
10901090
10911091 // Add periodic checks to send user activity data
10921092 static int CHECK_NEARBY_AVATARS_INTERVAL_MS = 10000;
1093− static int SEND_FPS_INTERVAL_MS = 10000;
1093+ static int SEND_STATS_INTERVAL_MS = 10000;
1094+ static int NEARBY_AVATAR_RADIUS_METERS = 10;
10941095
10951096 // Periodically send fps as a user activity event
1096− QTimer* sendFPSTimer = new QTimer(this);
1097− sendFPSTimer->setInterval(SEND_FPS_INTERVAL_MS);
1098− connect(sendFPSTimer, &QTimer::timeout, this, [this]() {
1099− UserActivityLogger::getInstance().logAction("fps", { { "rate", _frameCounter.rate() } });
1097+ QTimer* sendStatsTimer = new QTimer(this);
1098+ sendStatsTimer->setInterval(SEND_STATS_INTERVAL_MS);
1099+ connect(sendStatsTimer, &QTimer::timeout, this, [this]() {
1100+ QJsonObject properties = {};
1101+ MemoryInfo memInfo;
1102+ if (getMemoryInfo(memInfo)) {
1103+ properties["system_memory_total"] = static_cast<int64_t>(memInfo.totalMemoryBytes);
1104+ properties["system_memory_used"] = static_cast<int64_t>(memInfo.usedMemoryBytes);
1105+ properties["process_memory_used"] = static_cast<int64_t>(memInfo.processUsedMemoryBytes);
1106+ }
1107+
1108+ auto displayPlugin = qApp->getActiveDisplayPlugin();
1109+
1110+ properties["fps"] = _frameCounter.rate();
1111+ properties["present_rate"] = displayPlugin->presentRate();
1112+ properties["new_frame_present_rate"] = displayPlugin->newFramePresentRate();
1113+ properties["dropped_frame_rate"] = displayPlugin->droppedFrameRate();
1114+ properties["sim_rate"] = getAverageSimsPerSecond();
1115+ properties["avatar_sim_rate"] = getAvatarSimrate();
1116+
1117+ auto bandwidthRecorder = DependencyManager::get<BandwidthRecorder>();
1118+ properties["packet_rate_in"] = bandwidthRecorder->getCachedTotalAverageInputPacketsPerSecond();
1119+ properties["packet_rate_out"] = bandwidthRecorder->getCachedTotalAverageOutputPacketsPerSecond();
1120+ properties["kbps_in"] = bandwidthRecorder->getCachedTotalAverageInputKilobitsPerSecond();
1121+ properties["kbps_out"] = bandwidthRecorder->getCachedTotalAverageOutputKilobitsPerSecond();
1122+
1123+ auto nodeList = DependencyManager::get<NodeList>();
1124+ SharedNodePointer entityServerNode = nodeList->soloNodeOfType(NodeType::EntityServer);
1125+ SharedNodePointer audioMixerNode = nodeList->soloNodeOfType(NodeType::AudioMixer);
1126+ SharedNodePointer avatarMixerNode = nodeList->soloNodeOfType(NodeType::AvatarMixer);
1127+ SharedNodePointer assetServerNode = nodeList->soloNodeOfType(NodeType::AssetServer);
1128+ SharedNodePointer messagesMixerNode = nodeList->soloNodeOfType(NodeType::MessagesMixer);
1129+ properties["entity_ping"] = entityServerNode ? entityServerNode->getPingMs() : -1;
1130+ properties["audio_ping"] = audioMixerNode ? audioMixerNode->getPingMs() : -1;
1131+ properties["avatar_ping"] = avatarMixerNode ? avatarMixerNode->getPingMs() : -1;
1132+ properties["asset_ping"] = assetServerNode ? assetServerNode->getPingMs() : -1;
1133+ properties["messages_ping"] = messagesMixerNode ? messagesMixerNode->getPingMs() : -1;
1134+
1135+ auto loadingRequests = ResourceCache::getLoadingRequests();
1136+ properties["active_downloads"] = loadingRequests.size();
1137+ properties["pending_downloads"] = ResourceCache::getPendingRequestCount();
1138+
1139+ properties["throttled"] = _displayPlugin ? _displayPlugin->isThrottled() : false;
1140+
1141+ UserActivityLogger::getInstance().logAction("stats", properties);
11001142 });
1101− sendFPSTimer->start();
1143+ sendStatsTimer->start();
11021144
11031145
11041146 // Periodically check for count of nearby avatars

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t