From 028091cb15f5e8290eed77a222582162d19a3d87 Mon Sep 17 00:00:00 2001 From: yro Date: Wed, 9 May 2018 16:03:27 -0700 Subject: [PATCH] Skip writing metrics to disk if it's entirely composed of no_report_metric Test: unit test, cts Bug: 79488249 Change-Id: I3e13a6271cc36665a43d0f09d8663e5996224477 --- cmds/statsd/src/StatsLogProcessor.cpp | 3 ++- cmds/statsd/src/metrics/MetricsManager.h | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/cmds/statsd/src/StatsLogProcessor.cpp b/cmds/statsd/src/StatsLogProcessor.cpp index 4d279481dc765..d3f653ccc364e 100644 --- a/cmds/statsd/src/StatsLogProcessor.cpp +++ b/cmds/statsd/src/StatsLogProcessor.cpp @@ -500,7 +500,8 @@ void StatsLogProcessor::flushIfNecessaryLocked( void StatsLogProcessor::WriteDataToDiskLocked(const ConfigKey& key, const int64_t timestampNs, const DumpReportReason dumpReportReason) { - if (mMetricsManagers.find(key) == mMetricsManagers.end()) { + if (mMetricsManagers.find(key) == mMetricsManagers.end() || + !mMetricsManagers.find(key)->second->shouldWriteToDisk()) { return; } ProtoOutputStream proto; diff --git a/cmds/statsd/src/metrics/MetricsManager.h b/cmds/statsd/src/metrics/MetricsManager.h index 4f39df9e7ad2c..c6ccec3e51bb4 100644 --- a/cmds/statsd/src/metrics/MetricsManager.h +++ b/cmds/statsd/src/metrics/MetricsManager.h @@ -67,6 +67,10 @@ public: return !mAllowedPkg.empty(); } + bool shouldWriteToDisk() const { + return mNoReportMetricIds.size() != mAllMetricProducers.size(); + } + void dumpStates(FILE* out, bool verbose); inline bool isInTtl(const int64_t timestampNs) const {