diff options
| author | 2018-05-09 16:03:27 -0700 | |
|---|---|---|
| committer | 2018-05-09 16:03:27 -0700 | |
| commit | 028091cb15f5e8290eed77a222582162d19a3d87 (patch) | |
| tree | fcb1aaa08f739b685bd137e2f033ad0bea8d5404 | |
| parent | 414be0b1cb5df6da8d595b63db85bc918a864192 (diff) | |
Skip writing metrics to disk if it's entirely composed of
no_report_metric
Test: unit test, cts
Bug: 79488249
Change-Id: I3e13a6271cc36665a43d0f09d8663e5996224477
| -rw-r--r-- | cmds/statsd/src/StatsLogProcessor.cpp | 3 | ||||
| -rw-r--r-- | cmds/statsd/src/metrics/MetricsManager.h | 4 | 
2 files changed, 6 insertions, 1 deletions
| diff --git a/cmds/statsd/src/StatsLogProcessor.cpp b/cmds/statsd/src/StatsLogProcessor.cpp index 4d279481dc76..d3f653ccc364 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 4f39df9e7ad2..c6ccec3e51bb 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 { |