From 45bb5130b02363c62062e11cb605ccd807cbfd38 Mon Sep 17 00:00:00 2001 From: "henrik.lundin" Date: Tue, 6 Dec 2016 04:28:04 -0800 Subject: [PATCH] Reland of APM: Change 3 UMA metrics to fewer but linearly distributed buckets (patchset #1 id:1 of https://codereview.webrtc.org/2548333002/ ) Reason for revert: The downstream problem is now fixed, and this should be good to land again. Original issue's description: > Revert of APM: Change 3 UMA metrics to fewer but linearly distributed buckets (patchset #2 id:20001 of https://codereview.webrtc.org/2547593002/ ) > > Reason for revert: > Breaks down-stream dependencies. > > Original issue's description: > > APM: Change 3 UMA metrics to fewer but linearly distributed buckets > > > > In this change WebRTC.Audio.ApmCaptureInputLevel{Average,Peak} are > > changed to 64 buckets, while WebRTC.Audio.AgcLevel is changed to 50 > > buckets. All three are changed to have linear spacing between buckets. > > > > Also, the metrics are renamed to avoid stats conflicts because of different bucket schemes: > > - WebRTC.Audio.AgcLevel -> WebRTC.Audio.AgcSetLevel > > - WebRTC.Audio.ApmCaptureInputLevelAverage -> WebRTC.Audio.ApmCaptureInputLevelAverageRms > > - WebRTC.Audio.ApmCaptureInputLevelPeakRms -> WebRTC.Audio.ApmCaptureInputLevelPeakRms > > > > BUG=webrtc:6622 > > CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng > > > > Committed: https://crrev.com/49715fe3be17d8579586d5bc954d626126d53415 > > Cr-Commit-Position: refs/heads/master@{#15418} > > TBR=peah@webrtc.org,rkaplow@chromium.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=webrtc:6622 > > Committed: https://crrev.com/63407a9b6ae6f3fc096e01d64e46c6d21d86b517 > Cr-Commit-Position: refs/heads/master@{#15420} TBR=peah@webrtc.org,rkaplow@chromium.org BUG=webrtc:6622 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng Review-Url: https://codereview.webrtc.org/2551863003 Cr-Commit-Position: refs/heads/master@{#15442} --- webrtc/modules/audio_processing/agc/agc_manager_direct.cc | 3 ++- webrtc/modules/audio_processing/audio_processing_impl.cc | 8 ++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/webrtc/modules/audio_processing/agc/agc_manager_direct.cc b/webrtc/modules/audio_processing/agc/agc_manager_direct.cc index 70a0e1f2b2..a4ac45af85 100644 --- a/webrtc/modules/audio_processing/agc/agc_manager_direct.cc +++ b/webrtc/modules/audio_processing/agc/agc_manager_direct.cc @@ -413,7 +413,8 @@ void AgcManagerDirect::UpdateGain() { SetLevel(LevelFromGainError(residual_gain, level_)); if (old_level != level_) { // level_ was updated by SetLevel; log the new value. - RTC_HISTOGRAM_ENUMERATION("WebRTC.Audio.AgcLevel", level_, kMaxMicLevel); + RTC_HISTOGRAM_COUNTS_LINEAR("WebRTC.Audio.AgcSetLevel", level_, 1, + kMaxMicLevel, 50); } } diff --git a/webrtc/modules/audio_processing/audio_processing_impl.cc b/webrtc/modules/audio_processing/audio_processing_impl.cc index a490b0a9e0..5ca9275f0e 100644 --- a/webrtc/modules/audio_processing/audio_processing_impl.cc +++ b/webrtc/modules/audio_processing/audio_processing_impl.cc @@ -1102,10 +1102,10 @@ int AudioProcessingImpl::ProcessCaptureStreamLocked() { if (++rms_interval_counter_ >= 1000) { rms_interval_counter_ = 0; RmsLevel::Levels levels = rms_.AverageAndPeak(); - RTC_HISTOGRAM_COUNTS("WebRTC.Audio.ApmCaptureInputLevelAverage", - levels.average, 1, RmsLevel::kMinLevelDb, 100); - RTC_HISTOGRAM_COUNTS("WebRTC.Audio.ApmCaptureInputLevelPeak", levels.peak, - 1, RmsLevel::kMinLevelDb, 100); + RTC_HISTOGRAM_COUNTS_LINEAR("WebRTC.Audio.ApmCaptureInputLevelAverageRms", + levels.average, 1, RmsLevel::kMinLevelDb, 64); + RTC_HISTOGRAM_COUNTS_LINEAR("WebRTC.Audio.ApmCaptureInputLevelPeakRms", + levels.peak, 1, RmsLevel::kMinLevelDb, 64); } if (constants_.use_experimental_agc &&