summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmds/statsd/src/StatsLogProcessor.cpp3
-rw-r--r--cmds/statsd/src/metrics/MetricsManager.h4
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 {