mirror of
https://github.com/overte-org/overte.git
synced 2025-08-07 06:49:05 +02:00
Add stats to node data for downstream mixers
This commit is contained in:
parent
4a69bc5fc7
commit
91cef9bb7c
2 changed files with 14 additions and 1 deletions
|
@ -441,7 +441,7 @@ void AvatarMixerSlave::broadcastAvatarDataToAgent(const SharedNodePointer& node)
|
||||||
uint64_t REBROADCAST_IDENTITY_TO_DOWNSTREAM_EVERY_US = 5 * 1000 * 1000;
|
uint64_t REBROADCAST_IDENTITY_TO_DOWNSTREAM_EVERY_US = 5 * 1000 * 1000;
|
||||||
|
|
||||||
void AvatarMixerSlave::broadcastAvatarDataToDownstreamMixer(const SharedNodePointer& node) {
|
void AvatarMixerSlave::broadcastAvatarDataToDownstreamMixer(const SharedNodePointer& node) {
|
||||||
_stats.nodesBroadcastedTo++;
|
_stats.downstreamMixersBroadcastedTo++;
|
||||||
|
|
||||||
AvatarMixerClientData* nodeData = reinterpret_cast<AvatarMixerClientData*>(node->getLinkedData());
|
AvatarMixerClientData* nodeData = reinterpret_cast<AvatarMixerClientData*>(node->getLinkedData());
|
||||||
|
|
||||||
|
@ -450,6 +450,9 @@ void AvatarMixerSlave::broadcastAvatarDataToDownstreamMixer(const SharedNodePoin
|
||||||
|
|
||||||
int numAvatarDataBytes = 0;
|
int numAvatarDataBytes = 0;
|
||||||
|
|
||||||
|
// reset the number of sent avatars
|
||||||
|
nodeData->resetNumAvatarsSentLastFrame();
|
||||||
|
|
||||||
std::for_each(_begin, _end, [&](const SharedNodePointer& agentNode) {
|
std::for_each(_begin, _end, [&](const SharedNodePointer& agentNode) {
|
||||||
// collect agents that we have avatar data for that we are supposed to replicate
|
// collect agents that we have avatar data for that we are supposed to replicate
|
||||||
if (agentNode->getType() == NodeType::Agent && agentNode->getLinkedData() && agentNode->isReplicated()) {
|
if (agentNode->getType() == NodeType::Agent && agentNode->getLinkedData() && agentNode->isReplicated()) {
|
||||||
|
@ -463,6 +466,7 @@ void AvatarMixerSlave::broadcastAvatarDataToDownstreamMixer(const SharedNodePoin
|
||||||
// since we have no idea if they're online and receiving our packets
|
// since we have no idea if they're online and receiving our packets
|
||||||
|
|
||||||
// so we always send a full update for this avatar
|
// so we always send a full update for this avatar
|
||||||
|
|
||||||
quint64 start = usecTimestampNow();
|
quint64 start = usecTimestampNow();
|
||||||
AvatarDataPacket::HasFlags flagsOut;
|
AvatarDataPacket::HasFlags flagsOut;
|
||||||
|
|
||||||
|
@ -515,6 +519,9 @@ void AvatarMixerSlave::broadcastAvatarDataToDownstreamMixer(const SharedNodePoin
|
||||||
nodeData->setLastBroadcastSequenceNumber(agentNode->getUUID(),
|
nodeData->setLastBroadcastSequenceNumber(agentNode->getUUID(),
|
||||||
agentNodeData->getLastReceivedSequenceNumber());
|
agentNodeData->getLastReceivedSequenceNumber());
|
||||||
|
|
||||||
|
// increment the number of avatars sent to this reciever
|
||||||
|
nodeData->incrementNumAvatarsSentLastFrame();
|
||||||
|
|
||||||
// start a new segment in the packet list for this avatar
|
// start a new segment in the packet list for this avatar
|
||||||
avatarPacketList->startSegment();
|
avatarPacketList->startSegment();
|
||||||
|
|
||||||
|
@ -549,6 +556,9 @@ void AvatarMixerSlave::broadcastAvatarDataToDownstreamMixer(const SharedNodePoin
|
||||||
auto nodeList = DependencyManager::get<NodeList>();
|
auto nodeList = DependencyManager::get<NodeList>();
|
||||||
nodeList->sendPacketList(std::move(avatarPacketList), node->getPublicSocket());
|
nodeList->sendPacketList(std::move(avatarPacketList), node->getPublicSocket());
|
||||||
|
|
||||||
|
// record the bytes sent for other avatar data in the AvatarMixerClientData
|
||||||
|
nodeData->recordSentAvatarData(numAvatarDataBytes);
|
||||||
|
|
||||||
quint64 endPacketSending = usecTimestampNow();
|
quint64 endPacketSending = usecTimestampNow();
|
||||||
_stats.packetSendingElapsedTime += (endPacketSending - startPacketSending);
|
_stats.packetSendingElapsedTime += (endPacketSending - startPacketSending);
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,7 @@ public:
|
||||||
quint64 processIncomingPacketsElapsedTime { 0 };
|
quint64 processIncomingPacketsElapsedTime { 0 };
|
||||||
|
|
||||||
int nodesBroadcastedTo { 0 };
|
int nodesBroadcastedTo { 0 };
|
||||||
|
int downstreamMixersBroadcastedTo { 0 };
|
||||||
int numPacketsSent { 0 };
|
int numPacketsSent { 0 };
|
||||||
int numBytesSent { 0 };
|
int numBytesSent { 0 };
|
||||||
int numIdentityPackets { 0 };
|
int numIdentityPackets { 0 };
|
||||||
|
@ -41,6 +42,7 @@ public:
|
||||||
|
|
||||||
// sending job stats
|
// sending job stats
|
||||||
nodesBroadcastedTo = 0;
|
nodesBroadcastedTo = 0;
|
||||||
|
downstreamMixersBroadcastedTo = 0;
|
||||||
numPacketsSent = 0;
|
numPacketsSent = 0;
|
||||||
numBytesSent = 0;
|
numBytesSent = 0;
|
||||||
numIdentityPackets = 0;
|
numIdentityPackets = 0;
|
||||||
|
@ -60,6 +62,7 @@ public:
|
||||||
processIncomingPacketsElapsedTime += rhs.processIncomingPacketsElapsedTime;
|
processIncomingPacketsElapsedTime += rhs.processIncomingPacketsElapsedTime;
|
||||||
|
|
||||||
nodesBroadcastedTo += rhs.nodesBroadcastedTo;
|
nodesBroadcastedTo += rhs.nodesBroadcastedTo;
|
||||||
|
downstreamMixersBroadcastedTo += rhs.downstreamMixersBroadcastedTo;
|
||||||
numPacketsSent += rhs.numPacketsSent;
|
numPacketsSent += rhs.numPacketsSent;
|
||||||
numBytesSent += rhs.numBytesSent;
|
numBytesSent += rhs.numBytesSent;
|
||||||
numIdentityPackets += rhs.numIdentityPackets;
|
numIdentityPackets += rhs.numIdentityPackets;
|
||||||
|
|
Loading…
Reference in a new issue