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

Commit 8053b210 authored by Yangster-mac's avatar Yangster-mac Committed by android-build-merger
Browse files

Merge "Flush the bucket when creating the metric producer. Use int64 for value...

Merge "Flush the bucket when creating the metric producer. Use int64 for value field. E2e test for gauge/value metric." into pi-dev am: 5f91d5ee
am: f0134aad

Change-Id: I53df91d8ce95ef92a4e05cf4d0dec4893ed85611
parents 0bfecb60 f0134aad
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -205,6 +205,8 @@ LOCAL_SRC_FILES := \
    tests/e2e/Alarm_e2e_test.cpp \
    tests/e2e/Attribution_e2e_test.cpp \
    tests/e2e/GaugeMetric_e2e_push_test.cpp \
    tests/e2e/GaugeMetric_e2e_pull_test.cpp \
    tests/e2e/ValueMetric_pull_e2e_test.cpp \
    tests/e2e/DimensionInCondition_e2e_combination_AND_cond_test.cpp \
    tests/e2e/DimensionInCondition_e2e_combination_OR_cond_test.cpp \
    tests/e2e/DimensionInCondition_e2e_simple_cond_test.cpp \
+2 −1
Original line number Diff line number Diff line
@@ -365,7 +365,8 @@ sp<StatsLogProcessor> CreateStatsLogProcessor(const long timeBaseSec, const Stat
    sp<AlarmMonitor> anomalyAlarmMonitor;
    sp<AlarmMonitor> periodicAlarmMonitor;
    sp<StatsLogProcessor> processor = new StatsLogProcessor(
        uidMap, anomalyAlarmMonitor, periodicAlarmMonitor, timeBaseSec, [](const ConfigKey&){});
        uidMap, anomalyAlarmMonitor, periodicAlarmMonitor, timeBaseSec * NS_PER_SEC,
        [](const ConfigKey&){});
    processor->OnConfigUpdated(timeBaseSec * NS_PER_SEC, key, config);
    return processor;
}
+7 −3
Original line number Diff line number Diff line
@@ -72,13 +72,13 @@ const int FIELD_ID_CURRENT_REPORT_WALL_CLOCK_NANOS = 6;
StatsLogProcessor::StatsLogProcessor(const sp<UidMap>& uidMap,
                                     const sp<AlarmMonitor>& anomalyAlarmMonitor,
                                     const sp<AlarmMonitor>& periodicAlarmMonitor,
                                     const long timeBaseSec,
                                     const int64_t timeBaseNs,
                                     const std::function<void(const ConfigKey&)>& sendBroadcast)
    : mUidMap(uidMap),
      mAnomalyAlarmMonitor(anomalyAlarmMonitor),
      mPeriodicAlarmMonitor(periodicAlarmMonitor),
      mSendBroadcast(sendBroadcast),
      mTimeBaseSec(timeBaseSec),
      mTimeBaseNs(timeBaseNs),
      mLastLogTimestamp(0) {
}

@@ -210,7 +210,7 @@ void StatsLogProcessor::OnConfigUpdatedLocked(
        const int64_t timestampNs, const ConfigKey& key, const StatsdConfig& config) {
    VLOG("Updated configuration for key %s", key.ToString().c_str());
    sp<MetricsManager> newMetricsManager =
        new MetricsManager(key, config, mTimeBaseSec, (timestampNs - 1) / NS_PER_SEC + 1, mUidMap,
        new MetricsManager(key, config, mTimeBaseNs, timestampNs, mUidMap,
                           mAnomalyAlarmMonitor, mPeriodicAlarmMonitor);
    auto it = mMetricsManagers.find(key);
    if (it != mMetricsManagers.end()) {
@@ -438,6 +438,10 @@ void StatsLogProcessor::WriteDataToDisk() {
    WriteDataToDiskLocked();
}

void StatsLogProcessor::informPullAlarmFired(const int64_t timestampNs) {
    mStatsPullerManager.OnAlarmFired(timestampNs);
}

}  // namespace statsd
}  // namespace os
}  // namespace android
+9 −2
Original line number Diff line number Diff line
@@ -36,7 +36,7 @@ class StatsLogProcessor : public ConfigListener {
public:
    StatsLogProcessor(const sp<UidMap>& uidMap, const sp<AlarmMonitor>& anomalyAlarmMonitor,
                      const sp<AlarmMonitor>& subscriberTriggerAlarmMonitor,
                      const long timeBaseSec,
                      const int64_t timeBaseNs,
                      const std::function<void(const ConfigKey&)>& sendBroadcast);
    virtual ~StatsLogProcessor();

@@ -70,6 +70,7 @@ public:

    void dumpStates(FILE* out, bool verbose);

    void informPullAlarmFired(const int64_t timestampNs);

private:
    // For testing only.
@@ -125,7 +126,7 @@ private:
    // to retrieve the stored data.
    std::function<void(const ConfigKey& key)> mSendBroadcast;

    const long mTimeBaseSec;
    const int64_t mTimeBaseNs;

    int64_t mLastLogTimestamp;

@@ -145,6 +146,12 @@ private:
    FRIEND_TEST(AttributionE2eTest, TestAttributionMatchAndSliceByFirstUid);
    FRIEND_TEST(AttributionE2eTest, TestAttributionMatchAndSliceByChain);
    FRIEND_TEST(GaugeMetricE2eTest, TestMultipleFieldsForPushedEvent);
    FRIEND_TEST(GaugeMetricE2eTest, TestRandomSamplePulledEvents);
    FRIEND_TEST(GaugeMetricE2eTest, TestRandomSamplePulledEvent_LateAlarm);
    FRIEND_TEST(GaugeMetricE2eTest, TestAllConditionChangesSamplePulledEvents);
    FRIEND_TEST(ValueMetricE2eTest, TestPulledEvents);
    FRIEND_TEST(ValueMetricE2eTest, TestPulledEvents_LateAlarm);

    FRIEND_TEST(DimensionInConditionE2eTest, TestCreateCountMetric_NoLink_OR_CombinationCondition);
    FRIEND_TEST(DimensionInConditionE2eTest, TestCreateCountMetric_Link_OR_CombinationCondition);
    FRIEND_TEST(DimensionInConditionE2eTest, TestDurationMetric_NoLink_OR_CombinationCondition);
+2 −2
Original line number Diff line number Diff line
@@ -81,7 +81,7 @@ StatsService::StatsService(const sp<Looper>& handlerLooper)
    StatsPuller::SetUidMap(mUidMap);
    mConfigManager = new ConfigManager();
    mProcessor = new StatsLogProcessor(mUidMap, mAnomalyAlarmMonitor, mPeriodicAlarmMonitor,
                                       getElapsedRealtimeSec(), [this](const ConfigKey& key) {
                                       getElapsedRealtimeNs(), [this](const ConfigKey& key) {
        sp<IStatsCompanionService> sc = getStatsCompanionService();
        auto receiver = mConfigManager->GetConfigReceiver(key);
        if (sc == nullptr) {
@@ -745,7 +745,7 @@ Status StatsService::informPollAlarmFired() {
                                         "Only system uid can call informPollAlarmFired");
    }

    mStatsPullerManager.OnAlarmFired();
    mProcessor->informPullAlarmFired(getElapsedRealtimeNs());

    VLOG("StatsService::informPollAlarmFired succeeded");

Loading