From 49715fe3be17d8579586d5bc954d626126d53415 Mon Sep 17 00:00:00 2001 From: "henrik.lundin" Date: Mon, 5 Dec 2016 04:12:59 -0800 Subject: [PATCH] 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 Review-Url: https://codereview.webrtc.org/2547593002 Cr-Commit-Position: refs/heads/master@{#15418} --- 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 f8fc310c57..576bf2d56a 100644 --- a/webrtc/modules/audio_processing/agc/agc_manager_direct.cc +++ b/webrtc/modules/audio_processing/agc/agc_manager_direct.cc @@ -411,7 +411,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 2379cd1be8..4dffc549c3 100644 --- a/webrtc/modules/audio_processing/audio_processing_impl.cc +++ b/webrtc/modules/audio_processing/audio_processing_impl.cc @@ -1101,10 +1101,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 &&