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

Commit 9605822d authored by Tej Singh's avatar Tej Singh
Browse files

Partial Config Update: Matchers

There are two primary steps:
1. Determine which matchers to update
2. Perform the update

Added unit tests

Test: atest statsd_test
Bug: 162322018

Change-Id: I6dbaeb781eef362e2d024a560904497a3525cad2
parent 906a2e4f
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -85,8 +85,9 @@ cc_defaults {
        "src/metrics/EventMetricProducer.cpp",
        "src/metrics/GaugeMetricProducer.cpp",
        "src/metrics/MetricProducer.cpp",
        "src/metrics/metrics_manager_util.cpp",
        "src/metrics/MetricsManager.cpp",
        "src/metrics/parsing_utils/config_update_utils.cpp",
        "src/metrics/parsing_utils/metrics_manager_util.cpp",
        "src/metrics/ValueMetricProducer.cpp",
        "src/packages/UidMap.cpp",
        "src/shell/shell_config.proto",
@@ -317,6 +318,8 @@ cc_test {
        "tests/metrics/metrics_test_helper.cpp",
        "tests/metrics/OringDurationTracker_test.cpp",
        "tests/metrics/ValueMetricProducer_test.cpp",
        "tests/metrics/parsing_utils/config_update_utils_test.cpp",
        "tests/metrics/parsing_utils/metrics_manager_util_test.cpp",
        "tests/MetricsManager_test.cpp",
        "tests/shell/ShellSubscriber_test.cpp",
        "tests/state/StateTracker_test.cpp",
+2 −1
Original line number Diff line number Diff line
@@ -533,7 +533,8 @@ void StatsLogProcessor::OnConfigUpdatedLocked(const int64_t timestampNs, const C
        }
    } else {
        // Preserve the existing MetricsManager, update necessary components and metadata in place.
        configValid = it->second->updateConfig(timestampNs, config);
        configValid = it->second->updateConfig(config, mTimeBaseNs, timestampNs,
                                               mAnomalyAlarmMonitor, mPeriodicAlarmMonitor);
        if (configValid) {
            // TODO(b/162323476): refresh TTL, ensure init() is handled properly.
            mUidMap->OnConfigUpdated(key);
+1 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ namespace android {
namespace os {
namespace statsd {

// Uses murmur2 hashing algorithm.
extern uint32_t Hash32(const char *data, size_t n, uint32_t seed);
extern uint64_t Hash64(const char* data, size_t n, uint64_t seed);

+3 −2
Original line number Diff line number Diff line
@@ -27,8 +27,9 @@ using std::set;
using std::unordered_map;
using std::vector;

CombinationLogMatchingTracker::CombinationLogMatchingTracker(const int64_t& id, const int index)
    : LogMatchingTracker(id, index) {
CombinationLogMatchingTracker::CombinationLogMatchingTracker(const int64_t& id, const int index,
                                                             const uint64_t protoHash)
    : LogMatchingTracker(id, index, protoHash) {
}

CombinationLogMatchingTracker::~CombinationLogMatchingTracker() {
+1 −1
Original line number Diff line number Diff line
@@ -28,7 +28,7 @@ namespace statsd {
// Represents a AtomMatcher_Combination in the StatsdConfig.
class CombinationLogMatchingTracker : public virtual LogMatchingTracker {
public:
    CombinationLogMatchingTracker(const int64_t& id, const int index);
    CombinationLogMatchingTracker(const int64_t& id, const int index, const uint64_t protoHash);

    bool init(const std::vector<AtomMatcher>& allLogMatchers,
              const std::vector<sp<LogMatchingTracker>>& allTrackers,
Loading