summaryrefslogtreecommitdiff
path: root/cmds/statsd/src/anomaly/DurationAnomalyTracker.h
diff options
context:
space:
mode:
Diffstat (limited to 'cmds/statsd/src/anomaly/DurationAnomalyTracker.h')
-rw-r--r--cmds/statsd/src/anomaly/DurationAnomalyTracker.h79
1 files changed, 0 insertions, 79 deletions
diff --git a/cmds/statsd/src/anomaly/DurationAnomalyTracker.h b/cmds/statsd/src/anomaly/DurationAnomalyTracker.h
deleted file mode 100644
index 686d8f95c7f6..000000000000
--- a/cmds/statsd/src/anomaly/DurationAnomalyTracker.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma once
-
-#include "AlarmMonitor.h"
-#include "AnomalyTracker.h"
-
-namespace android {
-namespace os {
-namespace statsd {
-
-using std::unordered_map;
-
-class DurationAnomalyTracker : public virtual AnomalyTracker {
-public:
- DurationAnomalyTracker(const Alert& alert, const ConfigKey& configKey,
- const sp<AlarmMonitor>& alarmMonitor);
-
- virtual ~DurationAnomalyTracker();
-
- // Sets an alarm for the given timestamp.
- // Replaces previous alarm if one already exists.
- void startAlarm(const MetricDimensionKey& dimensionKey, const int64_t& eventTime);
-
- // Stops the alarm.
- // If it should have already fired, but hasn't yet (e.g. because the AlarmManager is delayed),
- // declare the anomaly now.
- void stopAlarm(const MetricDimensionKey& dimensionKey, const int64_t& timestampNs);
-
- // Stop all the alarms owned by this tracker. Does not declare any anomalies.
- void cancelAllAlarms();
-
- // Declares an anomaly for each alarm in firedAlarms that belongs to this DurationAnomalyTracker
- // and removes it from firedAlarms. The AlarmMonitor is not informed.
- // Note that this will generally be called from a different thread from the other functions;
- // the caller is responsible for thread safety.
- void informAlarmsFired(const int64_t& timestampNs,
- unordered_set<sp<const InternalAlarm>, SpHash<InternalAlarm>>& firedAlarms) override;
-
-protected:
- // Returns the alarm timestamp in seconds for the query dimension if it exists. Otherwise
- // returns 0.
- uint32_t getAlarmTimestampSec(const MetricDimensionKey& dimensionKey) const override {
- auto it = mAlarms.find(dimensionKey);
- return it == mAlarms.end() ? 0 : it->second->timestampSec;
- }
-
- // The alarms owned by this tracker. The alarm monitor also shares the alarm pointers when they
- // are still active.
- std::unordered_map<MetricDimensionKey, sp<const InternalAlarm>> mAlarms;
-
- // Anomaly alarm monitor.
- sp<AlarmMonitor> mAlarmMonitor;
-
- FRIEND_TEST(OringDurationTrackerTest, TestPredictAnomalyTimestamp);
- FRIEND_TEST(OringDurationTrackerTest, TestAnomalyDetectionExpiredAlarm);
- FRIEND_TEST(OringDurationTrackerTest, TestAnomalyDetectionFiredAlarm);
- FRIEND_TEST(MaxDurationTrackerTest, TestAnomalyDetection);
- FRIEND_TEST(MaxDurationTrackerTest, TestAnomalyPredictedTimestamp);
- FRIEND_TEST(MaxDurationTrackerTest, TestAnomalyPredictedTimestamp_UpdatedOnStop);
-};
-
-} // namespace statsd
-} // namespace os
-} // namespace android