Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fc5e3bc1 authored by Chenjie Yu's avatar Chenjie Yu Committed by android-build-merger
Browse files

Merge "Configurable data error action in value metric" into pi-dev am: 5ca38caf

am: 315211c7

Change-Id: Iafca516e23b063bab59e751cecbea9ef9e25c1bd
parents 66acf8d4 315211c7
Loading
Loading
Loading
Loading
+11 −5
Original line number Diff line number Diff line
@@ -87,7 +87,8 @@ ValueMetricProducer::ValueMetricProducer(const ConfigKey& key, const ValueMetric
      mDimensionHardLimit(StatsdStats::kAtomDimensionKeySizeLimitMap.find(pullTagId) !=
                                          StatsdStats::kAtomDimensionKeySizeLimitMap.end()
                                  ? StatsdStats::kAtomDimensionKeySizeLimitMap.at(pullTagId).second
                                  : StatsdStats::kDimensionKeySizeHardLimit) {
                                  : StatsdStats::kDimensionKeySizeHardLimit),
      mUseAbsoluteValueOnReset(metric.use_absolute_value_on_reset()) {
    // TODO: valuemetric for pushed events may need unlimited bucket length
    int64_t bucketSizeMills = 0;
    if (metric.has_bucket()) {
@@ -393,15 +394,20 @@ void ValueMetricProducer::onMatchedLogEventInternalLocked(
            }
        } else {
            // Generally we expect value to be monotonically increasing.
            // If not, there was a reset event. We take the absolute value as
            // diff in this case.
            // If not, take absolute value or drop it, based on config.
            if (interval.startUpdated) {
                if (value >= interval.start) {
                    interval.sum += (value - interval.start);
                    interval.hasValue = true;
                } else {
                    if (mUseAbsoluteValueOnReset) {
                        interval.sum += value;
                }
                        interval.hasValue = true;
                    } else {
                        VLOG("Dropping data for atom %d, prev: %lld, now: %lld", mPullTagId,
                             (long long)interval.start, (long long)value);
                    }
                }
                interval.startUpdated = false;
            } else {
                VLOG("No start for matching end %lld", (long long)value);
+2 −0
Original line number Diff line number Diff line
@@ -164,6 +164,8 @@ private:

    const size_t mDimensionHardLimit;

    const bool mUseAbsoluteValueOnReset;

    FRIEND_TEST(ValueMetricProducerTest, TestNonDimensionalEvents);
    FRIEND_TEST(ValueMetricProducerTest, TestEventsWithNonSlicedCondition);
    FRIEND_TEST(ValueMetricProducerTest, TestPushedEventsWithUpgrade);
+2 −0
Original line number Diff line number Diff line
@@ -265,6 +265,8 @@ message ValueMetric {
  optional AggregationType aggregation_type = 8 [default = SUM];

  optional int64 min_bucket_size_nanos = 10;

  optional bool use_absolute_value_on_reset = 11 [default = false];
}

message Alert {