From 6707535ced2c08823dc24255324ea3c374647d4a Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Wed, 10 Feb 2016 17:33:56 -0800 Subject: [PATCH] remove unused and incorrect stats from DS stats --- assignment-client/src/audio/AudioMixer.cpp | 123 +----------------- assignment-client/src/audio/AudioMixer.h | 10 -- .../resources/describe-settings.json | 8 -- 3 files changed, 5 insertions(+), 136 deletions(-) diff --git a/assignment-client/src/audio/AudioMixer.cpp b/assignment-client/src/audio/AudioMixer.cpp index 51bcece15f..5cc6b339f7 100644 --- a/assignment-client/src/audio/AudioMixer.cpp +++ b/assignment-client/src/audio/AudioMixer.cpp @@ -67,8 +67,6 @@ const QString AUDIO_BUFFER_GROUP_KEY = "audio_buffer"; InboundAudioStream::Settings AudioMixer::_streamSettings; -bool AudioMixer::_printStreamStats = false; - bool AudioMixer::_enableFilter = true; bool AudioMixer::shouldMute(float quietestFrame) { @@ -81,12 +79,7 @@ AudioMixer::AudioMixer(ReceivedMessage& message) : _minAudibilityThreshold(LOUDNESS_TO_DISTANCE_RATIO / 2.0f), _performanceThrottlingRatio(0.0f), _attenuationPerDoublingInDistance(DEFAULT_ATTENUATION_PER_DOUBLING_IN_DISTANCE), - _noiseMutingThreshold(DEFAULT_NOISE_MUTING_THRESHOLD), - _sendAudioStreamStats(false), - _datagramsReadPerCallStats(0, READ_DATAGRAMS_STATS_WINDOW_SECONDS), - _timeSpentPerCallStats(0, READ_DATAGRAMS_STATS_WINDOW_SECONDS), - _timeSpentPerHashMatchCallStats(0, READ_DATAGRAMS_STATS_WINDOW_SECONDS), - _readPendingCallsPerSecondStats(1, READ_DATAGRAMS_STATS_WINDOW_SECONDS) + _noiseMutingThreshold(DEFAULT_NOISE_MUTING_THRESHOLD) { auto nodeList = DependencyManager::get(); auto& packetReceiver = nodeList->getPacketReceiver(); @@ -527,42 +520,6 @@ void AudioMixer::sendStatsPacket() { _totalMixes = 0; _numStatFrames = 0; - QJsonObject readPendingDatagramStats; - - QJsonObject rpdCallsStats; - rpdCallsStats["calls_per_sec_avg_30s"] = _readPendingCallsPerSecondStats.getWindowAverage(); - rpdCallsStats["calls_last_sec"] = _readPendingCallsPerSecondStats.getLastCompleteIntervalStats().getSum() + 0.5; - - readPendingDatagramStats["calls"] = rpdCallsStats; - - QJsonObject packetsPerCallStats; - packetsPerCallStats["avg_30s"] = _datagramsReadPerCallStats.getWindowAverage(); - packetsPerCallStats["avg_1s"] = _datagramsReadPerCallStats.getLastCompleteIntervalStats().getAverage(); - - readPendingDatagramStats["packets_per_call"] = packetsPerCallStats; - - QJsonObject packetsTimePerCallStats; - packetsTimePerCallStats["usecs_per_call_avg_30s"] = _timeSpentPerCallStats.getWindowAverage(); - packetsTimePerCallStats["usecs_per_call_avg_1s"] = _timeSpentPerCallStats.getLastCompleteIntervalStats().getAverage(); - packetsTimePerCallStats["prct_time_in_call_30s"] = - _timeSpentPerCallStats.getWindowSum() / (READ_DATAGRAMS_STATS_WINDOW_SECONDS * USECS_PER_SECOND) * 100.0; - packetsTimePerCallStats["prct_time_in_call_1s"] = - _timeSpentPerCallStats.getLastCompleteIntervalStats().getSum() / USECS_PER_SECOND * 100.0; - - readPendingDatagramStats["packets_time_per_call"] = packetsTimePerCallStats; - - QJsonObject hashMatchTimePerCallStats; - hashMatchTimePerCallStats["usecs_per_hashmatch_avg_30s"] = _timeSpentPerHashMatchCallStats.getWindowAverage(); - hashMatchTimePerCallStats["usecs_per_hashmatch_avg_1s"] - = _timeSpentPerHashMatchCallStats.getLastCompleteIntervalStats().getAverage(); - hashMatchTimePerCallStats["prct_time_in_hashmatch_30s"] - = _timeSpentPerHashMatchCallStats.getWindowSum() / (READ_DATAGRAMS_STATS_WINDOW_SECONDS*USECS_PER_SECOND) * 100.0; - hashMatchTimePerCallStats["prct_time_in_hashmatch_1s"] - = _timeSpentPerHashMatchCallStats.getLastCompleteIntervalStats().getSum() / USECS_PER_SECOND * 100.0; - readPendingDatagramStats["hashmatch_time_per_call"] = hashMatchTimePerCallStats; - - statsObject["read_pending_datagrams"] = readPendingDatagramStats; - // add stats for each listerner auto nodeList = DependencyManager::get(); QJsonObject listenerStats; @@ -688,13 +645,6 @@ void AudioMixer::broadcastMixes() { ++framesSinceCutoffEvent; } - static const int FRAMES_PER_SECOND = int(ceilf(1.0f / AudioConstants::NETWORK_FRAME_SECS)); - - // check if it has been approximately one second since our last call to perSecondActions - if (nextFrame % FRAMES_PER_SECOND == 0) { - perSecondActions(); - } - nodeList->eachNode([&](const SharedNodePointer& node) { if (node->getLinkedData()) { @@ -750,10 +700,11 @@ void AudioMixer::broadcastMixes() { nodeList->sendPacket(std::move(mixPacket), *node); nodeData->incrementOutgoingMixedAudioSequenceNumber(); - // send an audio stream stats packet if it's time - if (_sendAudioStreamStats) { + static const int FRAMES_PER_SECOND = int(ceilf(1.0f / AudioConstants::NETWORK_FRAME_SECS)); + + // send an audio stream stats packet to the client approximately every second + if (nextFrame % FRAMES_PER_SECOND == 0) { nodeData->sendAudioStreamStatsPackets(node); - _sendAudioStreamStats = false; } ++_sumListeners; @@ -781,64 +732,6 @@ void AudioMixer::broadcastMixes() { } } -void AudioMixer::perSecondActions() { - _sendAudioStreamStats = true; - - int callsLastSecond = _datagramsReadPerCallStats.getCurrentIntervalSamples(); - _readPendingCallsPerSecondStats.update(callsLastSecond); - - if (_printStreamStats) { - - printf("\n================================================================================\n\n"); - - printf(" readPendingDatagram() calls per second | avg: %.2f, avg_30s: %.2f, last_second: %d\n", - _readPendingCallsPerSecondStats.getAverage(), - _readPendingCallsPerSecondStats.getWindowAverage(), - callsLastSecond); - - printf(" Datagrams read per call | avg: %.2f, avg_30s: %.2f, last_second: %.2f\n", - _datagramsReadPerCallStats.getAverage(), - _datagramsReadPerCallStats.getWindowAverage(), - _datagramsReadPerCallStats.getCurrentIntervalAverage()); - - printf(" Usecs spent per readPendingDatagram() call | avg: %.2f, avg_30s: %.2f, last_second: %.2f\n", - _timeSpentPerCallStats.getAverage(), - _timeSpentPerCallStats.getWindowAverage(), - _timeSpentPerCallStats.getCurrentIntervalAverage()); - - printf(" Usecs spent per packetVersionAndHashMatch() call | avg: %.2f, avg_30s: %.2f, last_second: %.2f\n", - _timeSpentPerHashMatchCallStats.getAverage(), - _timeSpentPerHashMatchCallStats.getWindowAverage(), - _timeSpentPerHashMatchCallStats.getCurrentIntervalAverage()); - - double WINDOW_LENGTH_USECS = READ_DATAGRAMS_STATS_WINDOW_SECONDS * USECS_PER_SECOND; - - printf(" %% time spent in readPendingDatagram() calls | avg_30s: %.6f%%, last_second: %.6f%%\n", - _timeSpentPerCallStats.getWindowSum() / WINDOW_LENGTH_USECS * 100.0, - _timeSpentPerCallStats.getCurrentIntervalSum() / USECS_PER_SECOND * 100.0); - - printf("%% time spent in packetVersionAndHashMatch() calls: | avg_30s: %.6f%%, last_second: %.6f%%\n", - _timeSpentPerHashMatchCallStats.getWindowSum() / WINDOW_LENGTH_USECS * 100.0, - _timeSpentPerHashMatchCallStats.getCurrentIntervalSum() / USECS_PER_SECOND * 100.0); - - DependencyManager::get()->eachNode([](const SharedNodePointer& node) { - if (node->getLinkedData()) { - AudioMixerClientData* nodeData = (AudioMixerClientData*)node->getLinkedData(); - - if (node->getType() == NodeType::Agent && node->getActiveSocket()) { - printf("\nStats for agent %s --------------------------------\n", - node->getUUID().toString().toLatin1().data()); - nodeData->printUpstreamDownstreamStats(); - } - } - }); - } - - _datagramsReadPerCallStats.currentIntervalComplete(); - _timeSpentPerCallStats.currentIntervalComplete(); - _timeSpentPerHashMatchCallStats.currentIntervalComplete(); -} - void AudioMixer::parseSettingsObject(const QJsonObject &settingsObject) { if (settingsObject.contains(AUDIO_BUFFER_GROUP_KEY)) { QJsonObject audioBufferGroupObject = settingsObject[AUDIO_BUFFER_GROUP_KEY].toObject(); @@ -903,12 +796,6 @@ void AudioMixer::parseSettingsObject(const QJsonObject &settingsObject) { } else { qDebug() << "Repetition with fade disabled"; } - - const QString PRINT_STREAM_STATS_JSON_KEY = "print_stream_stats"; - _printStreamStats = audioBufferGroupObject[PRINT_STREAM_STATS_JSON_KEY].toBool(); - if (_printStreamStats) { - qDebug() << "Stream stats will be printed to stdout"; - } } if (settingsObject.contains(AUDIO_ENV_GROUP_KEY)) { diff --git a/assignment-client/src/audio/AudioMixer.h b/assignment-client/src/audio/AudioMixer.h index 3a8dfad348..24b4b39704 100644 --- a/assignment-client/src/audio/AudioMixer.h +++ b/assignment-client/src/audio/AudioMixer.h @@ -110,17 +110,7 @@ private: static InboundAudioStream::Settings _streamSettings; - static bool _printStreamStats; static bool _enableFilter; - - bool _sendAudioStreamStats; - - // stats - MovingMinMaxAvg _datagramsReadPerCallStats; // update with # of datagrams read for each readPendingDatagrams call - MovingMinMaxAvg _timeSpentPerCallStats; // update with usecs spent inside each readPendingDatagrams call - MovingMinMaxAvg _timeSpentPerHashMatchCallStats; // update with usecs spent inside each packetVersionAndHashMatch call - - MovingMinMaxAvg _readPendingCallsPerSecondStats; // update with # of readPendingDatagrams calls in the last second }; #endif // hifi_AudioMixer_h diff --git a/domain-server/resources/describe-settings.json b/domain-server/resources/describe-settings.json index 870573ef6c..891c586a6a 100644 --- a/domain-server/resources/describe-settings.json +++ b/domain-server/resources/describe-settings.json @@ -366,14 +366,6 @@ "help": "Dropped frames and mixing during starves repeat the last frame, eventually fading to silence", "default": false, "advanced": true - }, - { - "name": "print_stream_stats", - "type": "checkbox", - "label": "Print Stream Stats", - "help": "Audio upstream and downstream stats of each agent printed to audio-mixer stdout", - "default": false, - "advanced": true } ] },