Tracks the delay between the pull and the actual bucket boundary.
Test: atest statsd_test
Change-Id: I08880eafb54d599c9d1adb3c23b19af1f7fac886
diff --git a/cmds/statsd/src/guardrail/StatsdStats.cpp b/cmds/statsd/src/guardrail/StatsdStats.cpp
index c774719..c4034ff 100644
--- a/cmds/statsd/src/guardrail/StatsdStats.cpp
+++ b/cmds/statsd/src/guardrail/StatsdStats.cpp
@@ -458,6 +458,15 @@
getAtomMetricStats(metricId).invalidatedBucket++;
}
+void StatsdStats::noteBucketBoundaryDelayNs(int64_t metricId, int64_t timeDelayNs) {
+ lock_guard<std::mutex> lock(mLock);
+ AtomMetricStats& pullStats = getAtomMetricStats(metricId);
+ pullStats.maxBucketBoundaryDelayNs =
+ std::max(pullStats.maxBucketBoundaryDelayNs, timeDelayNs);
+ pullStats.minBucketBoundaryDelayNs =
+ std::min(pullStats.minBucketBoundaryDelayNs, timeDelayNs);
+}
+
StatsdStats::AtomMetricStats& StatsdStats::getAtomMetricStats(int metricId) {
auto atomMetricStatsIter = mAtomMetricStats.find(metricId);
if (atomMetricStatsIter != mAtomMetricStats.end()) {