mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 14:58:03 +02:00
Merge pull request #1281 from ZappoMan/voxel_stats
fix a couple of bugs in display of voxel stats on server status
This commit is contained in:
commit
9adeced651
2 changed files with 21 additions and 14 deletions
|
@ -189,17 +189,22 @@ int VoxelServer::civetwebRequestHandler(struct mg_connection* connection) {
|
||||||
|
|
||||||
// display voxel file load time
|
// display voxel file load time
|
||||||
if (theServer->isInitialLoadComplete()) {
|
if (theServer->isInitialLoadComplete()) {
|
||||||
tm* voxelsLoadedAtLocal = localtime(theServer->getLoadCompleted());
|
time_t* loadCompleted = theServer->getLoadCompleted();
|
||||||
const int MAX_TIME_LENGTH = 128;
|
if (loadCompleted) {
|
||||||
char buffer[MAX_TIME_LENGTH];
|
tm* voxelsLoadedAtLocal = localtime(loadCompleted);
|
||||||
strftime(buffer, MAX_TIME_LENGTH, "%m/%d/%Y %X", voxelsLoadedAtLocal);
|
const int MAX_TIME_LENGTH = 128;
|
||||||
mg_printf(connection, "Voxels Loaded At: %s", buffer);
|
char buffer[MAX_TIME_LENGTH];
|
||||||
|
strftime(buffer, MAX_TIME_LENGTH, "%m/%d/%Y %X", voxelsLoadedAtLocal);
|
||||||
|
mg_printf(connection, "Voxels Loaded At: %s", buffer);
|
||||||
|
|
||||||
// Convert now to tm struct for UTC
|
// Convert now to tm struct for UTC
|
||||||
tm* voxelsLoadedAtUTM = gmtime(theServer->getLoadCompleted());
|
tm* voxelsLoadedAtUTM = gmtime(theServer->getLoadCompleted());
|
||||||
if (gmtm != NULL) {
|
if (gmtm != NULL) {
|
||||||
strftime(buffer, MAX_TIME_LENGTH, "%m/%d/%Y %X", voxelsLoadedAtUTM);
|
strftime(buffer, MAX_TIME_LENGTH, "%m/%d/%Y %X", voxelsLoadedAtUTM);
|
||||||
mg_printf(connection, " [%s UTM] ", buffer);
|
mg_printf(connection, " [%s UTM] ", buffer);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
mg_printf(connection, "%s", "Voxel Persist Disabled...\r\n");
|
||||||
}
|
}
|
||||||
mg_printf(connection, "%s", "\r\n");
|
mg_printf(connection, "%s", "\r\n");
|
||||||
|
|
||||||
|
@ -259,7 +264,7 @@ int VoxelServer::civetwebRequestHandler(struct mg_connection* connection) {
|
||||||
|
|
||||||
// display inbound packet stats
|
// display inbound packet stats
|
||||||
mg_printf(connection, "%s", "<b>Voxel Edit Statistics... <a href='/resetStats'>[RESET]</a></b>\r\n");
|
mg_printf(connection, "%s", "<b>Voxel Edit Statistics... <a href='/resetStats'>[RESET]</a></b>\r\n");
|
||||||
uint64_t averageTransitTimePerPacket = theServer->_voxelServerPacketProcessor->getAverateTransitTimePerPacket();
|
uint64_t averageTransitTimePerPacket = theServer->_voxelServerPacketProcessor->getAverageTransitTimePerPacket();
|
||||||
uint64_t averageProcessTimePerPacket = theServer->_voxelServerPacketProcessor->getAverageProcessTimePerPacket();
|
uint64_t averageProcessTimePerPacket = theServer->_voxelServerPacketProcessor->getAverageProcessTimePerPacket();
|
||||||
uint64_t averageLockWaitTimePerPacket = theServer->_voxelServerPacketProcessor->getAverageLockWaitTimePerPacket();
|
uint64_t averageLockWaitTimePerPacket = theServer->_voxelServerPacketProcessor->getAverageLockWaitTimePerPacket();
|
||||||
uint64_t averageProcessTimePerVoxel = theServer->_voxelServerPacketProcessor->getAverageProcessTimePerVoxel();
|
uint64_t averageProcessTimePerVoxel = theServer->_voxelServerPacketProcessor->getAverageProcessTimePerVoxel();
|
||||||
|
@ -297,7 +302,7 @@ int VoxelServer::civetwebRequestHandler(struct mg_connection* connection) {
|
||||||
mg_printf(connection, "\r\n Stats for sender %d uuid: %s\r\n", senderNumber,
|
mg_printf(connection, "\r\n Stats for sender %d uuid: %s\r\n", senderNumber,
|
||||||
senderID.toString().toLocal8Bit().constData());
|
senderID.toString().toLocal8Bit().constData());
|
||||||
|
|
||||||
averageTransitTimePerPacket = senderStats.getAverateTransitTimePerPacket();
|
averageTransitTimePerPacket = senderStats.getAverageTransitTimePerPacket();
|
||||||
averageProcessTimePerPacket = senderStats.getAverageProcessTimePerPacket();
|
averageProcessTimePerPacket = senderStats.getAverageProcessTimePerPacket();
|
||||||
averageLockWaitTimePerPacket = senderStats.getAverageLockWaitTimePerPacket();
|
averageLockWaitTimePerPacket = senderStats.getAverageLockWaitTimePerPacket();
|
||||||
averageProcessTimePerVoxel = senderStats.getAverageProcessTimePerVoxel();
|
averageProcessTimePerVoxel = senderStats.getAverageProcessTimePerVoxel();
|
||||||
|
@ -305,6 +310,8 @@ int VoxelServer::civetwebRequestHandler(struct mg_connection* connection) {
|
||||||
totalVoxelsProcessed = senderStats.getTotalVoxelsProcessed();
|
totalVoxelsProcessed = senderStats.getTotalVoxelsProcessed();
|
||||||
totalPacketsProcessed = senderStats.getTotalPacketsProcessed();
|
totalPacketsProcessed = senderStats.getTotalPacketsProcessed();
|
||||||
|
|
||||||
|
averageVoxelsPerPacket = totalPacketsProcessed == 0 ? 0 : totalVoxelsProcessed / totalPacketsProcessed;
|
||||||
|
|
||||||
mg_printf(connection, " Total Inbound Packets: %s packets\r\n",
|
mg_printf(connection, " Total Inbound Packets: %s packets\r\n",
|
||||||
locale.toString((uint)totalPacketsProcessed).rightJustified(COLUMN_WIDTH, ' ').toLocal8Bit().constData());
|
locale.toString((uint)totalPacketsProcessed).rightJustified(COLUMN_WIDTH, ' ').toLocal8Bit().constData());
|
||||||
mg_printf(connection, " Total Inbound Voxels: %s voxels\r\n",
|
mg_printf(connection, " Total Inbound Voxels: %s voxels\r\n",
|
||||||
|
|
|
@ -20,7 +20,7 @@ class SingleSenderStats {
|
||||||
public:
|
public:
|
||||||
SingleSenderStats();
|
SingleSenderStats();
|
||||||
|
|
||||||
uint64_t getAverateTransitTimePerPacket() const { return _totalPackets == 0 ? 0 : _totalTransitTime / _totalPackets; }
|
uint64_t getAverageTransitTimePerPacket() const { return _totalPackets == 0 ? 0 : _totalTransitTime / _totalPackets; }
|
||||||
uint64_t getAverageProcessTimePerPacket() const { return _totalPackets == 0 ? 0 : _totalProcessTime / _totalPackets; }
|
uint64_t getAverageProcessTimePerPacket() const { return _totalPackets == 0 ? 0 : _totalProcessTime / _totalPackets; }
|
||||||
uint64_t getAverageLockWaitTimePerPacket() const { return _totalPackets == 0 ? 0 : _totalLockWaitTime / _totalPackets; }
|
uint64_t getAverageLockWaitTimePerPacket() const { return _totalPackets == 0 ? 0 : _totalLockWaitTime / _totalPackets; }
|
||||||
uint64_t getTotalVoxelsProcessed() const { return _totalVoxelsInPacket; }
|
uint64_t getTotalVoxelsProcessed() const { return _totalVoxelsInPacket; }
|
||||||
|
@ -48,7 +48,7 @@ class VoxelServerPacketProcessor : public ReceivedPacketProcessor {
|
||||||
public:
|
public:
|
||||||
VoxelServerPacketProcessor(VoxelServer* myServer);
|
VoxelServerPacketProcessor(VoxelServer* myServer);
|
||||||
|
|
||||||
uint64_t getAverateTransitTimePerPacket() const { return _totalPackets == 0 ? 0 : _totalTransitTime / _totalPackets; }
|
uint64_t getAverageTransitTimePerPacket() const { return _totalPackets == 0 ? 0 : _totalTransitTime / _totalPackets; }
|
||||||
uint64_t getAverageProcessTimePerPacket() const { return _totalPackets == 0 ? 0 : _totalProcessTime / _totalPackets; }
|
uint64_t getAverageProcessTimePerPacket() const { return _totalPackets == 0 ? 0 : _totalProcessTime / _totalPackets; }
|
||||||
uint64_t getAverageLockWaitTimePerPacket() const { return _totalPackets == 0 ? 0 : _totalLockWaitTime / _totalPackets; }
|
uint64_t getAverageLockWaitTimePerPacket() const { return _totalPackets == 0 ? 0 : _totalLockWaitTime / _totalPackets; }
|
||||||
uint64_t getTotalVoxelsProcessed() const { return _totalVoxelsInPacket; }
|
uint64_t getTotalVoxelsProcessed() const { return _totalVoxelsInPacket; }
|
||||||
|
|
Loading…
Reference in a new issue