mirror of
https://github.com/overte-org/overte.git
synced 2025-08-06 18:25:52 +02:00
Track stats for total AvatarData bytes, traits bytes and identity bytes
This commit is contained in:
parent
39f4af505c
commit
73d688610f
4 changed files with 35 additions and 19 deletions
|
@ -767,6 +767,9 @@ void AvatarMixer::sendStatsPacket() {
|
||||||
|
|
||||||
float averageOverBudgetAvatars = averageNodes ? aggregateStats.overBudgetAvatars / averageNodes : 0.0f;
|
float averageOverBudgetAvatars = averageNodes ? aggregateStats.overBudgetAvatars / averageNodes : 0.0f;
|
||||||
slavesAggregatObject["sent_3_averageOverBudgetAvatars"] = TIGHT_LOOP_STAT(averageOverBudgetAvatars);
|
slavesAggregatObject["sent_3_averageOverBudgetAvatars"] = TIGHT_LOOP_STAT(averageOverBudgetAvatars);
|
||||||
|
slavesAggregatObject["sent_4_averageDataBytes"] = TIGHT_LOOP_STAT(aggregateStats.numDataBytesSent);
|
||||||
|
slavesAggregatObject["sent_5_averageAvatarEntityBytes"] = TIGHT_LOOP_STAT(aggregateStats.numTraitsBytesSent);
|
||||||
|
slavesAggregatObject["sent_4_averageIdentityBytes"] = TIGHT_LOOP_STAT(aggregateStats.numIdentityBytesSent);
|
||||||
|
|
||||||
slavesAggregatObject["timing_1_processIncomingPackets"] = TIGHT_LOOP_STAT_UINT64(aggregateStats.processIncomingPacketsElapsedTime);
|
slavesAggregatObject["timing_1_processIncomingPackets"] = TIGHT_LOOP_STAT_UINT64(aggregateStats.processIncomingPacketsElapsedTime);
|
||||||
slavesAggregatObject["timing_2_ignoreCalculation"] = TIGHT_LOOP_STAT_UINT64(aggregateStats.ignoreCalculationElapsedTime);
|
slavesAggregatObject["timing_2_ignoreCalculation"] = TIGHT_LOOP_STAT_UINT64(aggregateStats.ignoreCalculationElapsedTime);
|
||||||
|
@ -775,7 +778,7 @@ void AvatarMixer::sendStatsPacket() {
|
||||||
slavesAggregatObject["timing_5_packetSending"] = TIGHT_LOOP_STAT_UINT64(aggregateStats.packetSendingElapsedTime);
|
slavesAggregatObject["timing_5_packetSending"] = TIGHT_LOOP_STAT_UINT64(aggregateStats.packetSendingElapsedTime);
|
||||||
slavesAggregatObject["timing_6_jobElapsedTime"] = TIGHT_LOOP_STAT_UINT64(aggregateStats.jobElapsedTime);
|
slavesAggregatObject["timing_6_jobElapsedTime"] = TIGHT_LOOP_STAT_UINT64(aggregateStats.jobElapsedTime);
|
||||||
|
|
||||||
statsObject["slaves_aggregate"] = slavesAggregatObject;
|
statsObject["slaves_aggregate (per frame)"] = slavesAggregatObject;
|
||||||
|
|
||||||
_handleViewFrustumPacketElapsedTime = 0;
|
_handleViewFrustumPacketElapsedTime = 0;
|
||||||
_handleAvatarIdentityPacketElapsedTime = 0;
|
_handleAvatarIdentityPacketElapsedTime = 0;
|
||||||
|
|
|
@ -73,7 +73,8 @@ int AvatarMixerSlave::sendIdentityPacket(NLPacketList& packetList, const AvatarM
|
||||||
QByteArray individualData = nodeData->getConstAvatarData()->identityByteArray();
|
QByteArray individualData = nodeData->getConstAvatarData()->identityByteArray();
|
||||||
individualData.replace(0, NUM_BYTES_RFC4122_UUID, nodeData->getNodeID().toRfc4122()); // FIXME, this looks suspicious
|
individualData.replace(0, NUM_BYTES_RFC4122_UUID, nodeData->getNodeID().toRfc4122()); // FIXME, this looks suspicious
|
||||||
packetList.write(individualData);
|
packetList.write(individualData);
|
||||||
_stats.numIdentityPackets++;
|
_stats.numIdentityPacketsSent++;
|
||||||
|
_stats.numIdentityBytesSent += individualData.size();
|
||||||
return individualData.size();
|
return individualData.size();
|
||||||
} else {
|
} else {
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -109,7 +110,6 @@ qint64 AvatarMixerSlave::addChangedTraitsToBulkPacket(AvatarMixerClientData* lis
|
||||||
while (simpleReceivedIt != lastReceivedVersions.simpleCEnd()) {
|
while (simpleReceivedIt != lastReceivedVersions.simpleCEnd()) {
|
||||||
auto traitType = static_cast<AvatarTraits::TraitType>(std::distance(lastReceivedVersions.simpleCBegin(),
|
auto traitType = static_cast<AvatarTraits::TraitType>(std::distance(lastReceivedVersions.simpleCBegin(),
|
||||||
simpleReceivedIt));
|
simpleReceivedIt));
|
||||||
|
|
||||||
auto lastReceivedVersion = *simpleReceivedIt;
|
auto lastReceivedVersion = *simpleReceivedIt;
|
||||||
auto& lastSentVersionRef = lastSentVersions[traitType];
|
auto& lastSentVersionRef = lastSentVersions[traitType];
|
||||||
|
|
||||||
|
@ -191,7 +191,8 @@ int AvatarMixerSlave::sendReplicatedIdentityPacket(const Node& agentNode, const
|
||||||
auto identityPacket = NLPacketList::create(PacketType::ReplicatedAvatarIdentity, QByteArray(), true, true);
|
auto identityPacket = NLPacketList::create(PacketType::ReplicatedAvatarIdentity, QByteArray(), true, true);
|
||||||
identityPacket->write(individualData);
|
identityPacket->write(individualData);
|
||||||
DependencyManager::get<NodeList>()->sendPacketList(std::move(identityPacket), destinationNode);
|
DependencyManager::get<NodeList>()->sendPacketList(std::move(identityPacket), destinationNode);
|
||||||
_stats.numIdentityPackets++;
|
_stats.numIdentityPacketsSent++;
|
||||||
|
_stats.numIdentityBytesSent += individualData.size();
|
||||||
return individualData.size();
|
return individualData.size();
|
||||||
} else {
|
} else {
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -539,8 +540,8 @@ void AvatarMixerSlave::broadcastAvatarDataToAgent(const SharedNodePointer& node)
|
||||||
++numPacketsSent;
|
++numPacketsSent;
|
||||||
}
|
}
|
||||||
|
|
||||||
_stats.numPacketsSent += numPacketsSent;
|
_stats.numDataPacketsSent += numPacketsSent;
|
||||||
_stats.numBytesSent += numAvatarDataBytes;
|
_stats.numDataBytesSent += numAvatarDataBytes;
|
||||||
|
|
||||||
// record the bytes sent for other avatar data in the AvatarMixerClientData
|
// record the bytes sent for other avatar data in the AvatarMixerClientData
|
||||||
nodeData->recordSentAvatarData(numAvatarDataBytes);
|
nodeData->recordSentAvatarData(numAvatarDataBytes);
|
||||||
|
@ -550,6 +551,8 @@ void AvatarMixerSlave::broadcastAvatarDataToAgent(const SharedNodePointer& node)
|
||||||
|
|
||||||
if (traitsPacketList->getNumPackets() >= 1) {
|
if (traitsPacketList->getNumPackets() >= 1) {
|
||||||
// send the traits packet list
|
// send the traits packet list
|
||||||
|
_stats.numTraitsBytesSent += traitBytesSent;
|
||||||
|
_stats.numTraitsPacketsSent += (int) traitsPacketList->getNumPackets();
|
||||||
nodeList->sendPacketList(std::move(traitsPacketList), *destinationNode);
|
nodeList->sendPacketList(std::move(traitsPacketList), *destinationNode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -685,8 +688,8 @@ void AvatarMixerSlave::broadcastAvatarDataToDownstreamMixer(const SharedNodePoin
|
||||||
// close the current packet so that we're always sending something
|
// close the current packet so that we're always sending something
|
||||||
avatarPacketList->closeCurrentPacket(true);
|
avatarPacketList->closeCurrentPacket(true);
|
||||||
|
|
||||||
_stats.numPacketsSent += (int)avatarPacketList->getNumPackets();
|
_stats.numDataPacketsSent += (int)avatarPacketList->getNumPackets();
|
||||||
_stats.numBytesSent += numAvatarDataBytes;
|
_stats.numDataBytesSent += numAvatarDataBytes;
|
||||||
|
|
||||||
// send the replicated bulk avatar data
|
// send the replicated bulk avatar data
|
||||||
auto nodeList = DependencyManager::get<NodeList>();
|
auto nodeList = DependencyManager::get<NodeList>();
|
||||||
|
|
|
@ -24,9 +24,12 @@ public:
|
||||||
|
|
||||||
int nodesBroadcastedTo { 0 };
|
int nodesBroadcastedTo { 0 };
|
||||||
int downstreamMixersBroadcastedTo { 0 };
|
int downstreamMixersBroadcastedTo { 0 };
|
||||||
int numPacketsSent { 0 };
|
int numDataBytesSent { 0 };
|
||||||
int numBytesSent { 0 };
|
int numTraitsBytesSent { 0 };
|
||||||
int numIdentityPackets { 0 };
|
int numIdentityBytesSent { 0 };
|
||||||
|
int numDataPacketsSent { 0 };
|
||||||
|
int numTraitsPacketsSent { 0 };
|
||||||
|
int numIdentityPacketsSent { 0 };
|
||||||
int numOthersIncluded { 0 };
|
int numOthersIncluded { 0 };
|
||||||
int overBudgetAvatars { 0 };
|
int overBudgetAvatars { 0 };
|
||||||
|
|
||||||
|
@ -45,9 +48,13 @@ public:
|
||||||
// sending job stats
|
// sending job stats
|
||||||
nodesBroadcastedTo = 0;
|
nodesBroadcastedTo = 0;
|
||||||
downstreamMixersBroadcastedTo = 0;
|
downstreamMixersBroadcastedTo = 0;
|
||||||
numPacketsSent = 0;
|
|
||||||
numBytesSent = 0;
|
numDataBytesSent = 0;
|
||||||
numIdentityPackets = 0;
|
numTraitsBytesSent = 0;
|
||||||
|
numIdentityBytesSent = 0;
|
||||||
|
numDataPacketsSent = 0;
|
||||||
|
numTraitsPacketsSent = 0;
|
||||||
|
numIdentityPacketsSent = 0;
|
||||||
numOthersIncluded = 0;
|
numOthersIncluded = 0;
|
||||||
overBudgetAvatars = 0;
|
overBudgetAvatars = 0;
|
||||||
|
|
||||||
|
@ -65,9 +72,12 @@ public:
|
||||||
|
|
||||||
nodesBroadcastedTo += rhs.nodesBroadcastedTo;
|
nodesBroadcastedTo += rhs.nodesBroadcastedTo;
|
||||||
downstreamMixersBroadcastedTo += rhs.downstreamMixersBroadcastedTo;
|
downstreamMixersBroadcastedTo += rhs.downstreamMixersBroadcastedTo;
|
||||||
numPacketsSent += rhs.numPacketsSent;
|
numDataBytesSent += rhs.numDataBytesSent;
|
||||||
numBytesSent += rhs.numBytesSent;
|
numTraitsBytesSent += rhs.numTraitsBytesSent;
|
||||||
numIdentityPackets += rhs.numIdentityPackets;
|
numIdentityBytesSent += rhs.numIdentityBytesSent;
|
||||||
|
numDataPacketsSent += rhs.numDataPacketsSent;
|
||||||
|
numTraitsPacketsSent += rhs.numTraitsPacketsSent;
|
||||||
|
numIdentityPacketsSent += rhs.numIdentityPacketsSent;
|
||||||
numOthersIncluded += rhs.numOthersIncluded;
|
numOthersIncluded += rhs.numOthersIncluded;
|
||||||
overBudgetAvatars += rhs.overBudgetAvatars;
|
overBudgetAvatars += rhs.overBudgetAvatars;
|
||||||
|
|
||||||
|
|
|
@ -1987,9 +1987,9 @@ qint64 AvatarData::packTraitInstance(AvatarTraits::TraitType traitType, AvatarTr
|
||||||
qint64 bytesWritten = 0;
|
qint64 bytesWritten = 0;
|
||||||
|
|
||||||
if (traitType == AvatarTraits::AvatarEntity) {
|
if (traitType == AvatarTraits::AvatarEntity) {
|
||||||
packAvatarEntityTraitInstance(traitType, traitInstanceID, destination, traitVersion);
|
bytesWritten += packAvatarEntityTraitInstance(traitType, traitInstanceID, destination, traitVersion);
|
||||||
} else if (traitType == AvatarTraits::Grab) {
|
} else if (traitType == AvatarTraits::Grab) {
|
||||||
packGrabTraitInstance(traitType, traitInstanceID, destination, traitVersion);
|
bytesWritten += packGrabTraitInstance(traitType, traitInstanceID, destination, traitVersion);
|
||||||
}
|
}
|
||||||
|
|
||||||
return bytesWritten;
|
return bytesWritten;
|
||||||
|
|
Loading…
Reference in a new issue