This is an automated email from the ASF dual-hosted git repository. avijayan pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/ambari.git
commit fb75e61f60bd9925a127510ef53f92834631fc74 Author: Aravindan Vijayan <[email protected]> AuthorDate: Wed Sep 27 15:02:56 2017 -0700 AMBARI-22077 : Create maven module and package structure for the anomaly detection engine. (Commit 2) (avijayan) --- .../pom.xml | 4 +- .../adservice}/prototype/common/DataSeries.java | 2 +- .../adservice}/prototype/common/ResultSet.java | 2 +- .../prototype/common/StatisticUtils.java | 2 +- .../prototype/core/AmbariServerInterface.java | 2 +- .../prototype/core/MetricKafkaProducer.java | 2 +- .../prototype/core/MetricSparkConsumer.java | 6 +- .../prototype/core/MetricsCollectorInterface.java | 4 +- .../prototype/core/PointInTimeADSystem.java | 10 +- .../prototype/core/RFunctionInvoker.java | 6 +- .../adservice}/prototype/core/TrendADSystem.java | 10 +- .../adservice}/prototype/core/TrendMetric.java | 2 +- .../methods/AnomalyDetectionTechnique.java | 4 +- .../prototype/methods/MetricAnomaly.java | 2 +- .../adservice}/prototype/methods/ema/EmaModel.java | 4 +- .../prototype/methods/ema/EmaModelLoader.java | 8 +- .../prototype/methods/ema/EmaTechnique.java | 6 +- .../prototype/methods/hsdev/HsdevTechnique.java | 10 +- .../prototype/methods/kstest/KSTechnique.java | 10 +- .../utilities/MetricAnomalyDetectorTestInput.java | 2 +- .../testing/utilities/MetricAnomalyTester.java | 168 +++++++++++++++++++++ .../utilities/TestMetricSeriesGenerator.java | 2 +- .../testing/utilities/TestSeriesInputRequest.java | 2 +- .../src/main/resources/R-scripts/ema.R | 0 .../src/main/resources/R-scripts/hsdev.r | 0 .../src/main/resources/R-scripts/iforest.R | 0 .../src/main/resources/R-scripts/kstest.r | 0 .../src/main/resources/R-scripts/test.R | 0 .../src/main/resources/R-scripts/tukeys.r | 0 .../src/main/resources/input-config.properties | 0 .../spark/prototype}/MetricAnomalyDetector.scala | 9 +- .../spark/prototype}/SparkPhoenixReader.scala | 4 +- .../adservice}/prototype/TestEmaTechnique.java | 10 +- .../adservice}/prototype/TestRFunctionInvoker.java | 10 +- .../metrics/adservice}/prototype/TestTukeys.java | 10 +- .../seriesgenerator/AbstractMetricSeries.java | 2 +- .../seriesgenerator/DualBandMetricSeries.java | 2 +- .../MetricSeriesGeneratorFactory.java | 4 +- .../seriesgenerator/MetricSeriesGeneratorTest.java | 2 +- .../seriesgenerator/MonotonicMetricSeries.java | 2 +- .../seriesgenerator/NormalMetricSeries.java | 2 +- .../SteadyWithTurbulenceMetricSeries.java | 2 +- .../seriesgenerator/StepFunctionMetricSeries.java | 2 +- .../seriesgenerator/UniformMetricSeries.java | 2 +- .../testing/utilities/MetricAnomalyTester.java | 166 -------------------- ambari-metrics/pom.xml | 2 +- 46 files changed, 246 insertions(+), 255 deletions(-) diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/pom.xml b/ambari-metrics/ambari-metrics-anomaly-detection-service/pom.xml similarity index 98% rename from ambari-metrics/ambari-metrics-anomaly-detector/pom.xml rename to ambari-metrics/ambari-metrics-anomaly-detection-service/pom.xml index e6e12f2..1a10f86 100644 --- a/ambari-metrics/ambari-metrics-anomaly-detector/pom.xml +++ b/ambari-metrics/ambari-metrics-anomaly-detection-service/pom.xml @@ -26,7 +26,7 @@ <version>2.0.0.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> - <artifactId>ambari-metrics-anomaly-detector</artifactId> + <artifactId>ambari-metrics-anomaly-detection-service</artifactId> <version>2.0.0.0-SNAPSHOT</version> <properties> <scala.version>2.10.4</scala.version> @@ -78,7 +78,7 @@ </plugin> </plugins> </build> - <name>Ambari Metrics Anomaly Detector</name> + <name>Ambari Metrics Anomaly Detection Service</name> <packaging>jar</packaging> <dependencies> diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/common/DataSeries.java b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/common/DataSeries.java similarity index 95% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/common/DataSeries.java rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/common/DataSeries.java index eb19857..54b402f 100644 --- a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/common/DataSeries.java +++ b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/common/DataSeries.java @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.ambari.metrics.alertservice.prototype.common; +package org.apache.ambari.metrics.adservice.prototype.common; import java.util.Arrays; diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/common/ResultSet.java b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/common/ResultSet.java similarity index 95% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/common/ResultSet.java rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/common/ResultSet.java index 101b0e9..dd3038f 100644 --- a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/common/ResultSet.java +++ b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/common/ResultSet.java @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.ambari.metrics.alertservice.prototype.common; +package org.apache.ambari.metrics.adservice.prototype.common; import java.util.ArrayList; diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/common/StatisticUtils.java b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/common/StatisticUtils.java similarity index 96% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/common/StatisticUtils.java rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/common/StatisticUtils.java index 4ea4ac5..7f0aed3 100644 --- a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/common/StatisticUtils.java +++ b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/common/StatisticUtils.java @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.ambari.metrics.alertservice.prototype.common; +package org.apache.ambari.metrics.adservice.prototype.common; import java.util.ArrayList; diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/core/AmbariServerInterface.java b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/core/AmbariServerInterface.java similarity index 98% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/core/AmbariServerInterface.java rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/core/AmbariServerInterface.java index b6b1bf5..920d758 100644 --- a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/core/AmbariServerInterface.java +++ b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/core/AmbariServerInterface.java @@ -16,7 +16,7 @@ * limitations under the License. */ -package org.apache.ambari.metrics.alertservice.prototype.core; +package org.apache.ambari.metrics.adservice.prototype.core; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/core/MetricKafkaProducer.java b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/core/MetricKafkaProducer.java similarity index 97% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/core/MetricKafkaProducer.java rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/core/MetricKafkaProducer.java index 2287ee3..167fbb3 100644 --- a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/core/MetricKafkaProducer.java +++ b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/core/MetricKafkaProducer.java @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.ambari.metrics.alertservice.prototype.core; +package org.apache.ambari.metrics.adservice.prototype.core; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/core/MetricSparkConsumer.java b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/core/MetricSparkConsumer.java similarity index 97% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/core/MetricSparkConsumer.java rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/core/MetricSparkConsumer.java index 706c69f..e8257e5 100644 --- a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/core/MetricSparkConsumer.java +++ b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/core/MetricSparkConsumer.java @@ -15,11 +15,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.ambari.metrics.alertservice.prototype.core; +package org.apache.ambari.metrics.adservice.prototype.core; import com.fasterxml.jackson.databind.ObjectMapper; -import org.apache.ambari.metrics.alertservice.prototype.methods.MetricAnomaly; -import org.apache.ambari.metrics.alertservice.prototype.methods.ema.EmaTechnique; +import org.apache.ambari.metrics.adservice.prototype.methods.MetricAnomaly; +import org.apache.ambari.metrics.adservice.prototype.methods.ema.EmaTechnique; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.metrics2.sink.timeline.TimelineMetric; diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/core/MetricsCollectorInterface.java b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/core/MetricsCollectorInterface.java similarity index 98% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/core/MetricsCollectorInterface.java rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/core/MetricsCollectorInterface.java index 246565d..da3999a 100644 --- a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/core/MetricsCollectorInterface.java +++ b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/core/MetricsCollectorInterface.java @@ -15,9 +15,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.ambari.metrics.alertservice.prototype.core; +package org.apache.ambari.metrics.adservice.prototype.core; -import org.apache.ambari.metrics.alertservice.prototype.methods.MetricAnomaly; +import org.apache.ambari.metrics.adservice.prototype.methods.MetricAnomaly; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/core/PointInTimeADSystem.java b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/core/PointInTimeADSystem.java similarity index 96% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/core/PointInTimeADSystem.java rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/core/PointInTimeADSystem.java index c579515..0a2271a 100644 --- a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/core/PointInTimeADSystem.java +++ b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/core/PointInTimeADSystem.java @@ -15,12 +15,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.ambari.metrics.alertservice.prototype.core; +package org.apache.ambari.metrics.adservice.prototype.core; -import org.apache.ambari.metrics.alertservice.prototype.common.DataSeries; -import org.apache.ambari.metrics.alertservice.prototype.common.ResultSet; -import org.apache.ambari.metrics.alertservice.prototype.methods.ema.EmaModel; -import org.apache.ambari.metrics.alertservice.prototype.methods.ema.EmaTechnique; +import org.apache.ambari.metrics.adservice.prototype.common.ResultSet; +import org.apache.ambari.metrics.adservice.prototype.common.DataSeries; +import org.apache.ambari.metrics.adservice.prototype.methods.ema.EmaModel; +import org.apache.ambari.metrics.adservice.prototype.methods.ema.EmaTechnique; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.metrics2.sink.timeline.TimelineMetric; diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/core/RFunctionInvoker.java b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/core/RFunctionInvoker.java similarity index 96% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/core/RFunctionInvoker.java rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/core/RFunctionInvoker.java index 4538f0b..8f1eba6 100644 --- a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/core/RFunctionInvoker.java +++ b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/core/RFunctionInvoker.java @@ -15,11 +15,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.ambari.metrics.alertservice.prototype.core; +package org.apache.ambari.metrics.adservice.prototype.core; -import org.apache.ambari.metrics.alertservice.prototype.common.ResultSet; -import org.apache.ambari.metrics.alertservice.prototype.common.DataSeries; +import org.apache.ambari.metrics.adservice.prototype.common.DataSeries; +import org.apache.ambari.metrics.adservice.prototype.common.ResultSet; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.rosuda.JRI.REXP; diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/core/TrendADSystem.java b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/core/TrendADSystem.java similarity index 96% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/core/TrendADSystem.java rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/core/TrendADSystem.java index 2a205d1..f5ec83a 100644 --- a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/core/TrendADSystem.java +++ b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/core/TrendADSystem.java @@ -15,12 +15,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.ambari.metrics.alertservice.prototype.core; +package org.apache.ambari.metrics.adservice.prototype.core; -import org.apache.ambari.metrics.alertservice.prototype.common.DataSeries; -import org.apache.ambari.metrics.alertservice.prototype.methods.MetricAnomaly; -import org.apache.ambari.metrics.alertservice.prototype.methods.hsdev.HsdevTechnique; -import org.apache.ambari.metrics.alertservice.prototype.methods.kstest.KSTechnique; +import org.apache.ambari.metrics.adservice.prototype.methods.MetricAnomaly; +import org.apache.ambari.metrics.adservice.prototype.methods.hsdev.HsdevTechnique; +import org.apache.ambari.metrics.adservice.prototype.common.DataSeries; +import org.apache.ambari.metrics.adservice.prototype.methods.kstest.KSTechnique; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.metrics2.sink.timeline.TimelineMetric; diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/core/TrendMetric.java b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/core/TrendMetric.java similarity index 94% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/core/TrendMetric.java rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/core/TrendMetric.java index 0640142..d4db227 100644 --- a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/core/TrendMetric.java +++ b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/core/TrendMetric.java @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.ambari.metrics.alertservice.prototype.core; +package org.apache.ambari.metrics.adservice.prototype.core; import java.io.Serializable; diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/methods/AnomalyDetectionTechnique.java b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/methods/AnomalyDetectionTechnique.java similarity index 90% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/methods/AnomalyDetectionTechnique.java rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/methods/AnomalyDetectionTechnique.java index 0b10b4b..c19adda 100644 --- a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/methods/AnomalyDetectionTechnique.java +++ b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/methods/AnomalyDetectionTechnique.java @@ -15,13 +15,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.ambari.metrics.alertservice.prototype.methods; +package org.apache.ambari.metrics.adservice.prototype.methods; import org.apache.hadoop.metrics2.sink.timeline.TimelineMetric; -import java.sql.Time; import java.util.List; -import java.util.Map; public abstract class AnomalyDetectionTechnique { diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/methods/MetricAnomaly.java b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/methods/MetricAnomaly.java similarity index 97% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/methods/MetricAnomaly.java rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/methods/MetricAnomaly.java index da4f030..251603b 100644 --- a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/methods/MetricAnomaly.java +++ b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/methods/MetricAnomaly.java @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.ambari.metrics.alertservice.prototype.methods; +package org.apache.ambari.metrics.adservice.prototype.methods; import java.io.Serializable; import java.util.HashMap; diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/methods/ema/EmaModel.java b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/methods/ema/EmaModel.java similarity index 95% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/methods/ema/EmaModel.java rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/methods/ema/EmaModel.java index a31410d..593028e 100644 --- a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/methods/ema/EmaModel.java +++ b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/methods/ema/EmaModel.java @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.ambari.metrics.alertservice.prototype.methods.ema; +package org.apache.ambari.metrics.adservice.prototype.methods.ema; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -23,7 +23,7 @@ import org.apache.commons.logging.LogFactory; import javax.xml.bind.annotation.XmlRootElement; import java.io.Serializable; -import static org.apache.ambari.metrics.alertservice.prototype.methods.ema.EmaTechnique.suppressAnomaliesTheshold; +import static org.apache.ambari.metrics.adservice.prototype.methods.ema.EmaTechnique.suppressAnomaliesTheshold; @XmlRootElement public class EmaModel implements Serializable { diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/methods/ema/EmaModelLoader.java b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/methods/ema/EmaModelLoader.java similarity index 87% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/methods/ema/EmaModelLoader.java rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/methods/ema/EmaModelLoader.java index 62749c1..7623f27 100644 --- a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/methods/ema/EmaModelLoader.java +++ b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/methods/ema/EmaModelLoader.java @@ -15,19 +15,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.ambari.metrics.alertservice.prototype.methods.ema; +package org.apache.ambari.metrics.adservice.prototype.methods.ema; -import com.google.gson.Gson; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.spark.SparkContext; import org.apache.spark.mllib.util.Loader; -import java.io.IOException; -import java.nio.charset.StandardCharsets; -import java.nio.file.Files; -import java.nio.file.Paths; - public class EmaModelLoader implements Loader<EmaTechnique> { private static final Log LOG = LogFactory.getLog(EmaModelLoader.class); diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/methods/ema/EmaTechnique.java b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/methods/ema/EmaTechnique.java similarity index 95% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/methods/ema/EmaTechnique.java rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/methods/ema/EmaTechnique.java index 52c6cf3..7ec17d8 100644 --- a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/methods/ema/EmaTechnique.java +++ b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/methods/ema/EmaTechnique.java @@ -15,13 +15,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.ambari.metrics.alertservice.prototype.methods.ema; +package org.apache.ambari.metrics.adservice.prototype.methods.ema; import com.google.gson.Gson; +import org.apache.ambari.metrics.adservice.prototype.methods.AnomalyDetectionTechnique; +import org.apache.ambari.metrics.adservice.prototype.methods.MetricAnomaly; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.apache.ambari.metrics.alertservice.prototype.methods.MetricAnomaly; -import org.apache.ambari.metrics.alertservice.prototype.methods.AnomalyDetectionTechnique; import org.apache.hadoop.metrics2.sink.timeline.TimelineMetric; import org.apache.spark.SparkContext; import org.apache.spark.mllib.util.Saveable; diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/methods/hsdev/HsdevTechnique.java b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/methods/hsdev/HsdevTechnique.java similarity index 86% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/methods/hsdev/HsdevTechnique.java rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/methods/hsdev/HsdevTechnique.java index 04f4a73..6facc99 100644 --- a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/methods/hsdev/HsdevTechnique.java +++ b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/methods/hsdev/HsdevTechnique.java @@ -15,14 +15,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.ambari.metrics.alertservice.prototype.methods.hsdev; +package org.apache.ambari.metrics.adservice.prototype.methods.hsdev; -import org.apache.ambari.metrics.alertservice.prototype.common.DataSeries; -import org.apache.ambari.metrics.alertservice.prototype.methods.MetricAnomaly; +import org.apache.ambari.metrics.adservice.prototype.common.DataSeries; +import org.apache.ambari.metrics.adservice.prototype.methods.MetricAnomaly; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import static org.apache.ambari.metrics.alertservice.prototype.common.StatisticUtils.median; -import static org.apache.ambari.metrics.alertservice.prototype.common.StatisticUtils.sdev; +import static org.apache.ambari.metrics.adservice.prototype.common.StatisticUtils.median; +import static org.apache.ambari.metrics.adservice.prototype.common.StatisticUtils.sdev; import java.io.Serializable; import java.util.Date; diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/methods/kstest/KSTechnique.java b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/methods/kstest/KSTechnique.java similarity index 88% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/methods/kstest/KSTechnique.java rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/methods/kstest/KSTechnique.java index a9360d3..4727c6f 100644 --- a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/methods/kstest/KSTechnique.java +++ b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/methods/kstest/KSTechnique.java @@ -16,12 +16,12 @@ * limitations under the License. */ -package org.apache.ambari.metrics.alertservice.prototype.methods.kstest; +package org.apache.ambari.metrics.adservice.prototype.methods.kstest; -import org.apache.ambari.metrics.alertservice.prototype.core.RFunctionInvoker; -import org.apache.ambari.metrics.alertservice.prototype.common.DataSeries; -import org.apache.ambari.metrics.alertservice.prototype.common.ResultSet; -import org.apache.ambari.metrics.alertservice.prototype.methods.MetricAnomaly; +import org.apache.ambari.metrics.adservice.prototype.common.DataSeries; +import org.apache.ambari.metrics.adservice.prototype.common.ResultSet; +import org.apache.ambari.metrics.adservice.prototype.methods.MetricAnomaly; +import org.apache.ambari.metrics.adservice.prototype.core.RFunctionInvoker; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/testing/utilities/MetricAnomalyDetectorTestInput.java b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/testing/utilities/MetricAnomalyDetectorTestInput.java similarity index 97% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/testing/utilities/MetricAnomalyDetectorTestInput.java rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/testing/utilities/MetricAnomalyDetectorTestInput.java index 268cd15..9a002a1 100644 --- a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/testing/utilities/MetricAnomalyDetectorTestInput.java +++ b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/testing/utilities/MetricAnomalyDetectorTestInput.java @@ -16,7 +16,7 @@ * limitations under the License. */ -package org.apache.ambari.metrics.alertservice.prototype.testing.utilities; +package org.apache.ambari.metrics.adservice.prototype.testing.utilities; import javax.xml.bind.annotation.XmlRootElement; import java.util.List; diff --git a/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/testing/utilities/MetricAnomalyTester.java b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/testing/utilities/MetricAnomalyTester.java new file mode 100644 index 0000000..d079e66 --- /dev/null +++ b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/testing/utilities/MetricAnomalyTester.java @@ -0,0 +1,168 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ + +package org.apache.ambari.metrics.adservice.prototype.testing.utilities; + +import org.apache.ambari.metrics.adservice.prototype.common.DataSeries; +import org.apache.ambari.metrics.adservice.prototype.common.ResultSet; +import org.apache.ambari.metrics.adservice.prototype.core.MetricsCollectorInterface; +import org.apache.ambari.metrics.adservice.prototype.core.RFunctionInvoker; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang.StringUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.hadoop.metrics2.sink.timeline.TimelineMetric; +import org.apache.hadoop.metrics2.sink.timeline.TimelineMetrics; + +import java.net.InetAddress; +import java.net.UnknownHostException; +import java.util.HashMap; +import java.util.Map; +import java.util.TreeMap; + +/** + * Class which was originally used to send test series from AMS to Spark through Kafka. + */ +public class MetricAnomalyTester { + +// public static String appId = MetricsCollectorInterface.serviceName; +// static final Log LOG = LogFactory.getLog(MetricAnomalyTester.class); +// static Map<String, TimelineMetric> timelineMetricMap = new HashMap<>(); +// +// public static TimelineMetrics runTestAnomalyRequest(MetricAnomalyDetectorTestInput input) throws UnknownHostException { +// +// long currentTime = System.currentTimeMillis(); +// TimelineMetrics timelineMetrics = new TimelineMetrics(); +// String hostname = InetAddress.getLocalHost().getHostName(); +// +// //Train data +// TimelineMetric metric1 = new TimelineMetric(); +// if (StringUtils.isNotEmpty(input.getTrainDataName())) { +// metric1 = timelineMetricMap.get(input.getTrainDataName()); +// if (metric1 == null) { +// metric1 = new TimelineMetric(); +// double[] trainSeries = MetricSeriesGeneratorFactory.generateSeries(input.getTrainDataType(), input.getTrainDataSize(), input.getTrainDataConfigs()); +// metric1.setMetricName(input.getTrainDataName()); +// metric1.setAppId(appId); +// metric1.setHostName(hostname); +// metric1.setStartTime(currentTime); +// metric1.setInstanceId(null); +// metric1.setMetricValues(getAsTimeSeries(currentTime, trainSeries)); +// timelineMetricMap.put(input.getTrainDataName(), metric1); +// } +// timelineMetrics.getMetrics().add(metric1); +// } else { +// LOG.error("No train data name specified"); +// } +// +// //Test data +// TimelineMetric metric2 = new TimelineMetric(); +// if (StringUtils.isNotEmpty(input.getTestDataName())) { +// metric2 = timelineMetricMap.get(input.getTestDataName()); +// if (metric2 == null) { +// metric2 = new TimelineMetric(); +// double[] testSeries = MetricSeriesGeneratorFactory.generateSeries(input.getTestDataType(), input.getTestDataSize(), input.getTestDataConfigs()); +// metric2.setMetricName(input.getTestDataName()); +// metric2.setAppId(appId); +// metric2.setHostName(hostname); +// metric2.setStartTime(currentTime); +// metric2.setInstanceId(null); +// metric2.setMetricValues(getAsTimeSeries(currentTime, testSeries)); +// timelineMetricMap.put(input.getTestDataName(), metric2); +// } +// timelineMetrics.getMetrics().add(metric2); +// } else { +// LOG.warn("No test data name specified"); +// } +// +// //Invoke method +// if (CollectionUtils.isNotEmpty(input.getMethods())) { +// RFunctionInvoker.setScriptsDir("/etc/ambari-metrics-collector/conf/R-scripts"); +// for (String methodType : input.getMethods()) { +// ResultSet result = RFunctionInvoker.executeMethod(methodType, getAsDataSeries(metric1), getAsDataSeries(metric2), input.getMethodConfigs()); +// TimelineMetric timelineMetric = getAsTimelineMetric(result, methodType, input, currentTime, hostname); +// if (timelineMetric != null) { +// timelineMetrics.getMetrics().add(timelineMetric); +// } +// } +// } else { +// LOG.warn("No anomaly method requested"); +// } +// +// return timelineMetrics; +// } +// +// +// private static TimelineMetric getAsTimelineMetric(ResultSet result, String methodType, MetricAnomalyDetectorTestInput input, long currentTime, String hostname) { +// +// if (result == null) { +// return null; +// } +// +// TimelineMetric timelineMetric = new TimelineMetric(); +// if (methodType.equals("tukeys") || methodType.equals("ema")) { +// timelineMetric.setMetricName(input.getTrainDataName() + "_" + input.getTestDataName() + "_" + methodType + "_" + currentTime); +// timelineMetric.setHostName(hostname); +// timelineMetric.setAppId(appId); +// timelineMetric.setInstanceId(null); +// timelineMetric.setStartTime(currentTime); +// +// TreeMap<Long, Double> metricValues = new TreeMap<>(); +// if (result.resultset.size() > 0) { +// double[] ts = result.resultset.get(0); +// double[] metrics = result.resultset.get(1); +// for (int i = 0; i < ts.length; i++) { +// if (i == 0) { +// timelineMetric.setStartTime((long) ts[i]); +// } +// metricValues.put((long) ts[i], metrics[i]); +// } +// } +// timelineMetric.setMetricValues(metricValues); +// return timelineMetric; +// } +// return null; +// } +// +// +// private static TreeMap<Long, Double> getAsTimeSeries(long currentTime, double[] values) { +// +// long startTime = currentTime - (values.length - 1) * 60 * 1000; +// TreeMap<Long, Double> metricValues = new TreeMap<>(); +// +// for (int i = 0; i < values.length; i++) { +// metricValues.put(startTime, values[i]); +// startTime += (60 * 1000); +// } +// return metricValues; +// } +// +// private static DataSeries getAsDataSeries(TimelineMetric timelineMetric) { +// +// TreeMap<Long, Double> metricValues = timelineMetric.getMetricValues(); +// double[] timestamps = new double[metricValues.size()]; +// double[] values = new double[metricValues.size()]; +// int i = 0; +// +// for (Long timestamp : metricValues.keySet()) { +// timestamps[i] = timestamp; +// values[i++] = metricValues.get(timestamp); +// } +// return new DataSeries(timelineMetric.getMetricName() + "_" + timelineMetric.getAppId() + "_" + timelineMetric.getHostName(), timestamps, values); +// } +} diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/testing/utilities/TestMetricSeriesGenerator.java b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/testing/utilities/TestMetricSeriesGenerator.java similarity index 97% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/testing/utilities/TestMetricSeriesGenerator.java rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/testing/utilities/TestMetricSeriesGenerator.java index b817f3e..3b2605b 100644 --- a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/testing/utilities/TestMetricSeriesGenerator.java +++ b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/testing/utilities/TestMetricSeriesGenerator.java @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.ambari.metrics.alertservice.prototype.testing.utilities; +package org.apache.ambari.metrics.adservice.prototype.testing.utilities; /** * Class which was originally used to send test series from AMS to Spark through Kafka. diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/testing/utilities/TestSeriesInputRequest.java b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/testing/utilities/TestSeriesInputRequest.java similarity index 97% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/testing/utilities/TestSeriesInputRequest.java rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/testing/utilities/TestSeriesInputRequest.java index a424f8e..d7db9ca 100644 --- a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/testing/utilities/TestSeriesInputRequest.java +++ b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/java/org/apache/ambari/metrics/adservice/prototype/testing/utilities/TestSeriesInputRequest.java @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.ambari.metrics.alertservice.prototype.testing.utilities; +package org.apache.ambari.metrics.adservice.prototype.testing.utilities; import org.apache.htrace.fasterxml.jackson.core.JsonProcessingException; import org.apache.htrace.fasterxml.jackson.databind.ObjectMapper; diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/resources/R-scripts/ema.R b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/resources/R-scripts/ema.R similarity index 100% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/main/resources/R-scripts/ema.R rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/resources/R-scripts/ema.R diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/resources/R-scripts/hsdev.r b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/resources/R-scripts/hsdev.r similarity index 100% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/main/resources/R-scripts/hsdev.r rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/resources/R-scripts/hsdev.r diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/resources/R-scripts/iforest.R b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/resources/R-scripts/iforest.R similarity index 100% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/main/resources/R-scripts/iforest.R rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/resources/R-scripts/iforest.R diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/resources/R-scripts/kstest.r b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/resources/R-scripts/kstest.r similarity index 100% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/main/resources/R-scripts/kstest.r rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/resources/R-scripts/kstest.r diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/resources/R-scripts/test.R b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/resources/R-scripts/test.R similarity index 100% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/main/resources/R-scripts/test.R rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/resources/R-scripts/test.R diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/resources/R-scripts/tukeys.r b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/resources/R-scripts/tukeys.r similarity index 100% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/main/resources/R-scripts/tukeys.r rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/resources/R-scripts/tukeys.r diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/resources/input-config.properties b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/resources/input-config.properties similarity index 100% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/main/resources/input-config.properties rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/resources/input-config.properties diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/scala/org/apache/ambari/metrics/spark/MetricAnomalyDetector.scala b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/scala/org/apache/ambari/metrics/adservice/spark/prototype/MetricAnomalyDetector.scala similarity index 93% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/main/scala/org/apache/ambari/metrics/spark/MetricAnomalyDetector.scala rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/scala/org/apache/ambari/metrics/adservice/spark/prototype/MetricAnomalyDetector.scala index 324058b..6122f5e 100644 --- a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/scala/org/apache/ambari/metrics/spark/MetricAnomalyDetector.scala +++ b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/scala/org/apache/ambari/metrics/adservice/spark/prototype/MetricAnomalyDetector.scala @@ -14,8 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.ambari.metrics.spark - +package org.apache.ambari.metrics.adservice.spark.prototype import java.io.{FileInputStream, IOException, InputStream} import java.util @@ -23,12 +22,12 @@ import java.util.Properties import java.util.logging.LogManager import com.fasterxml.jackson.databind.ObjectMapper -import org.apache.ambari.metrics.alertservice.prototype.core.MetricsCollectorInterface +import org.apache.ambari.metrics.adservice.prototype.core.MetricsCollectorInterface import org.apache.spark.SparkConf import org.apache.spark.streaming._ import org.apache.spark.streaming.kafka._ -import org.apache.ambari.metrics.alertservice.prototype.methods.{AnomalyDetectionTechnique, MetricAnomaly} -import org.apache.ambari.metrics.alertservice.prototype.methods.ema.{EmaModelLoader, EmaTechnique} +import org.apache.ambari.metrics.adservice.prototype.methods.{AnomalyDetectionTechnique, MetricAnomaly} +import org.apache.ambari.metrics.adservice.prototype.methods.ema.{EmaModelLoader, EmaTechnique} import org.apache.hadoop.metrics2.sink.timeline.TimelineMetrics import org.apache.log4j.Logger import org.apache.spark.storage.StorageLevel diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/scala/org/apache/ambari/metrics/spark/SparkPhoenixReader.scala b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/scala/org/apache/ambari/metrics/adservice/spark/prototype/SparkPhoenixReader.scala similarity index 95% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/main/scala/org/apache/ambari/metrics/spark/SparkPhoenixReader.scala rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/scala/org/apache/ambari/metrics/adservice/spark/prototype/SparkPhoenixReader.scala index ccded6b..6e1ae07 100644 --- a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/scala/org/apache/ambari/metrics/spark/SparkPhoenixReader.scala +++ b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/main/scala/org/apache/ambari/metrics/adservice/spark/prototype/SparkPhoenixReader.scala @@ -15,9 +15,9 @@ * limitations under the License. */ -package org.apache.ambari.metrics.spark +package org.apache.ambari.metrics.adservice.spark.prototype -import org.apache.ambari.metrics.alertservice.prototype.methods.ema.EmaTechnique +import org.apache.ambari.metrics.adservice.prototype.methods.ema.EmaTechnique import org.apache.hadoop.metrics2.sink.timeline.TimelineMetric import org.apache.spark.sql.SQLContext import org.apache.spark.{SparkConf, SparkContext} diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/test/java/org/apache/ambari/metrics/alertservice/prototype/TestEmaTechnique.java b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/test/java/org/apache/ambari/metrics/adservice/prototype/TestEmaTechnique.java similarity index 89% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/test/java/org/apache/ambari/metrics/alertservice/prototype/TestEmaTechnique.java rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/test/java/org/apache/ambari/metrics/adservice/prototype/TestEmaTechnique.java index a0b06e6..76a00a6 100644 --- a/ambari-metrics/ambari-metrics-anomaly-detector/src/test/java/org/apache/ambari/metrics/alertservice/prototype/TestEmaTechnique.java +++ b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/test/java/org/apache/ambari/metrics/adservice/prototype/TestEmaTechnique.java @@ -15,11 +15,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.ambari.metrics.alertservice.prototype; +package org.apache.ambari.metrics.adservice.prototype; -import org.apache.ambari.metrics.alertservice.prototype.core.RFunctionInvoker; -import org.apache.ambari.metrics.alertservice.prototype.methods.MetricAnomaly; -import org.apache.ambari.metrics.alertservice.prototype.methods.ema.EmaTechnique; +import org.apache.ambari.metrics.adservice.prototype.core.RFunctionInvoker; +import org.apache.ambari.metrics.adservice.prototype.methods.MetricAnomaly; +import org.apache.ambari.metrics.adservice.prototype.methods.ema.EmaTechnique; import org.apache.hadoop.metrics2.sink.timeline.TimelineMetric; import org.junit.Assert; import org.junit.Assume; @@ -32,7 +32,7 @@ import java.net.URL; import java.util.List; import java.util.TreeMap; -import static org.apache.ambari.metrics.alertservice.prototype.TestRFunctionInvoker.getTS; +import static org.apache.ambari.metrics.adservice.prototype.TestRFunctionInvoker.getTS; public class TestEmaTechnique { diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/test/java/org/apache/ambari/metrics/alertservice/prototype/TestRFunctionInvoker.java b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/test/java/org/apache/ambari/metrics/adservice/prototype/TestRFunctionInvoker.java similarity index 93% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/test/java/org/apache/ambari/metrics/alertservice/prototype/TestRFunctionInvoker.java rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/test/java/org/apache/ambari/metrics/adservice/prototype/TestRFunctionInvoker.java index d98ef0c..98fa050 100644 --- a/ambari-metrics/ambari-metrics-anomaly-detector/src/test/java/org/apache/ambari/metrics/alertservice/prototype/TestRFunctionInvoker.java +++ b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/test/java/org/apache/ambari/metrics/adservice/prototype/TestRFunctionInvoker.java @@ -15,12 +15,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.ambari.metrics.alertservice.prototype; +package org.apache.ambari.metrics.adservice.prototype; -import org.apache.ambari.metrics.alertservice.prototype.common.ResultSet; -import org.apache.ambari.metrics.alertservice.prototype.common.DataSeries; -import org.apache.ambari.metrics.alertservice.prototype.core.RFunctionInvoker; -import org.apache.ambari.metrics.alertservice.seriesgenerator.UniformMetricSeries; +import org.apache.ambari.metrics.adservice.prototype.common.DataSeries; +import org.apache.ambari.metrics.adservice.prototype.common.ResultSet; +import org.apache.ambari.metrics.adservice.prototype.core.RFunctionInvoker; +import org.apache.ambari.metrics.adservice.seriesgenerator.UniformMetricSeries; import org.apache.commons.lang.ArrayUtils; import org.junit.Assert; import org.junit.Assume; diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/test/java/org/apache/ambari/metrics/alertservice/prototype/TestTukeys.java b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/test/java/org/apache/ambari/metrics/adservice/prototype/TestTukeys.java similarity index 89% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/test/java/org/apache/ambari/metrics/alertservice/prototype/TestTukeys.java rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/test/java/org/apache/ambari/metrics/adservice/prototype/TestTukeys.java index 86590bd..57a6f34 100644 --- a/ambari-metrics/ambari-metrics-anomaly-detector/src/test/java/org/apache/ambari/metrics/alertservice/prototype/TestTukeys.java +++ b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/test/java/org/apache/ambari/metrics/adservice/prototype/TestTukeys.java @@ -15,12 +15,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.ambari.metrics.alertservice.prototype; +package org.apache.ambari.metrics.adservice.prototype; -import org.apache.ambari.metrics.alertservice.prototype.core.MetricsCollectorInterface; -import org.apache.ambari.metrics.alertservice.prototype.core.RFunctionInvoker; -import org.apache.ambari.metrics.alertservice.prototype.methods.MetricAnomaly; -import org.apache.ambari.metrics.alertservice.prototype.methods.ema.EmaTechnique; +import org.apache.ambari.metrics.adservice.prototype.methods.MetricAnomaly; +import org.apache.ambari.metrics.adservice.prototype.core.MetricsCollectorInterface; +import org.apache.ambari.metrics.adservice.prototype.core.RFunctionInvoker; +import org.apache.ambari.metrics.adservice.prototype.methods.ema.EmaTechnique; import org.apache.hadoop.metrics2.sink.timeline.TimelineMetric; import org.apache.hadoop.metrics2.sink.timeline.TimelineMetrics; import org.junit.Assume; diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/seriesgenerator/AbstractMetricSeries.java b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/test/java/org/apache/ambari/metrics/adservice/seriesgenerator/AbstractMetricSeries.java similarity index 93% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/seriesgenerator/AbstractMetricSeries.java rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/test/java/org/apache/ambari/metrics/adservice/seriesgenerator/AbstractMetricSeries.java index a8e31bf..635a929 100644 --- a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/seriesgenerator/AbstractMetricSeries.java +++ b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/test/java/org/apache/ambari/metrics/adservice/seriesgenerator/AbstractMetricSeries.java @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.ambari.metrics.alertservice.seriesgenerator; +package org.apache.ambari.metrics.adservice.seriesgenerator; public interface AbstractMetricSeries { diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/seriesgenerator/DualBandMetricSeries.java b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/test/java/org/apache/ambari/metrics/adservice/seriesgenerator/DualBandMetricSeries.java similarity index 97% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/seriesgenerator/DualBandMetricSeries.java rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/test/java/org/apache/ambari/metrics/adservice/seriesgenerator/DualBandMetricSeries.java index 4158ff4..a9e3f30 100644 --- a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/seriesgenerator/DualBandMetricSeries.java +++ b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/test/java/org/apache/ambari/metrics/adservice/seriesgenerator/DualBandMetricSeries.java @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.ambari.metrics.alertservice.seriesgenerator; +package org.apache.ambari.metrics.adservice.seriesgenerator; import java.util.Random; diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/seriesgenerator/MetricSeriesGeneratorFactory.java b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/test/java/org/apache/ambari/metrics/adservice/seriesgenerator/MetricSeriesGeneratorFactory.java similarity index 99% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/seriesgenerator/MetricSeriesGeneratorFactory.java rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/test/java/org/apache/ambari/metrics/adservice/seriesgenerator/MetricSeriesGeneratorFactory.java index 1e37ff3..a50b433 100644 --- a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/seriesgenerator/MetricSeriesGeneratorFactory.java +++ b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/test/java/org/apache/ambari/metrics/adservice/seriesgenerator/MetricSeriesGeneratorFactory.java @@ -16,11 +16,9 @@ * limitations under the License. */ -package org.apache.ambari.metrics.alertservice.seriesgenerator; +package org.apache.ambari.metrics.adservice.seriesgenerator; -import java.util.Arrays; import java.util.Map; -import java.util.Random; public class MetricSeriesGeneratorFactory { diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/test/java/org/apache/ambari/metrics/alertservice/seriesgenerator/MetricSeriesGeneratorTest.java b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/test/java/org/apache/ambari/metrics/adservice/seriesgenerator/MetricSeriesGeneratorTest.java similarity index 98% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/test/java/org/apache/ambari/metrics/alertservice/seriesgenerator/MetricSeriesGeneratorTest.java rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/test/java/org/apache/ambari/metrics/adservice/seriesgenerator/MetricSeriesGeneratorTest.java index fe7dba9..03537e4 100644 --- a/ambari-metrics/ambari-metrics-anomaly-detector/src/test/java/org/apache/ambari/metrics/alertservice/seriesgenerator/MetricSeriesGeneratorTest.java +++ b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/test/java/org/apache/ambari/metrics/adservice/seriesgenerator/MetricSeriesGeneratorTest.java @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.ambari.metrics.alertservice.seriesgenerator; +package org.apache.ambari.metrics.adservice.seriesgenerator; import org.junit.Assert; import org.junit.Test; diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/seriesgenerator/MonotonicMetricSeries.java b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/test/java/org/apache/ambari/metrics/adservice/seriesgenerator/MonotonicMetricSeries.java similarity index 98% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/seriesgenerator/MonotonicMetricSeries.java rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/test/java/org/apache/ambari/metrics/adservice/seriesgenerator/MonotonicMetricSeries.java index a883d08..8bd1a9b 100644 --- a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/seriesgenerator/MonotonicMetricSeries.java +++ b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/test/java/org/apache/ambari/metrics/adservice/seriesgenerator/MonotonicMetricSeries.java @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.ambari.metrics.alertservice.seriesgenerator; +package org.apache.ambari.metrics.adservice.seriesgenerator; import java.util.Random; diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/seriesgenerator/NormalMetricSeries.java b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/test/java/org/apache/ambari/metrics/adservice/seriesgenerator/NormalMetricSeries.java similarity index 97% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/seriesgenerator/NormalMetricSeries.java rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/test/java/org/apache/ambari/metrics/adservice/seriesgenerator/NormalMetricSeries.java index cc83d2c..fdedb6e 100644 --- a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/seriesgenerator/NormalMetricSeries.java +++ b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/test/java/org/apache/ambari/metrics/adservice/seriesgenerator/NormalMetricSeries.java @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.ambari.metrics.alertservice.seriesgenerator; +package org.apache.ambari.metrics.adservice.seriesgenerator; import java.util.Random; diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/seriesgenerator/SteadyWithTurbulenceMetricSeries.java b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/test/java/org/apache/ambari/metrics/adservice/seriesgenerator/SteadyWithTurbulenceMetricSeries.java similarity index 98% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/seriesgenerator/SteadyWithTurbulenceMetricSeries.java rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/test/java/org/apache/ambari/metrics/adservice/seriesgenerator/SteadyWithTurbulenceMetricSeries.java index c4ed3ba..403e599 100644 --- a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/seriesgenerator/SteadyWithTurbulenceMetricSeries.java +++ b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/test/java/org/apache/ambari/metrics/adservice/seriesgenerator/SteadyWithTurbulenceMetricSeries.java @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.ambari.metrics.alertservice.seriesgenerator; +package org.apache.ambari.metrics.adservice.seriesgenerator; import java.util.Random; diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/seriesgenerator/StepFunctionMetricSeries.java b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/test/java/org/apache/ambari/metrics/adservice/seriesgenerator/StepFunctionMetricSeries.java similarity index 98% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/seriesgenerator/StepFunctionMetricSeries.java rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/test/java/org/apache/ambari/metrics/adservice/seriesgenerator/StepFunctionMetricSeries.java index d5beb48..c91eac9 100644 --- a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/seriesgenerator/StepFunctionMetricSeries.java +++ b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/test/java/org/apache/ambari/metrics/adservice/seriesgenerator/StepFunctionMetricSeries.java @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.ambari.metrics.alertservice.seriesgenerator; +package org.apache.ambari.metrics.adservice.seriesgenerator; import java.util.Random; diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/seriesgenerator/UniformMetricSeries.java b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/test/java/org/apache/ambari/metrics/adservice/seriesgenerator/UniformMetricSeries.java similarity index 98% rename from ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/seriesgenerator/UniformMetricSeries.java rename to ambari-metrics/ambari-metrics-anomaly-detection-service/src/test/java/org/apache/ambari/metrics/adservice/seriesgenerator/UniformMetricSeries.java index a2b0eea..6122f82 100644 --- a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/seriesgenerator/UniformMetricSeries.java +++ b/ambari-metrics/ambari-metrics-anomaly-detection-service/src/test/java/org/apache/ambari/metrics/adservice/seriesgenerator/UniformMetricSeries.java @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.ambari.metrics.alertservice.seriesgenerator; +package org.apache.ambari.metrics.adservice.seriesgenerator; import java.util.Random; diff --git a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/testing/utilities/MetricAnomalyTester.java b/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/testing/utilities/MetricAnomalyTester.java deleted file mode 100644 index 6485ebb..0000000 --- a/ambari-metrics/ambari-metrics-anomaly-detector/src/main/java/org/apache/ambari/metrics/alertservice/prototype/testing/utilities/MetricAnomalyTester.java +++ /dev/null @@ -1,166 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ - -package org.apache.ambari.metrics.alertservice.prototype.testing.utilities; - -import org.apache.ambari.metrics.alertservice.prototype.core.MetricsCollectorInterface; -import org.apache.ambari.metrics.alertservice.prototype.core.RFunctionInvoker; -import org.apache.ambari.metrics.alertservice.prototype.common.DataSeries; -import org.apache.ambari.metrics.alertservice.prototype.common.ResultSet; -import org.apache.ambari.metrics.alertservice.seriesgenerator.MetricSeriesGeneratorFactory; -import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.lang.StringUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.hadoop.metrics2.sink.timeline.TimelineMetric; -import org.apache.hadoop.metrics2.sink.timeline.TimelineMetrics; - -import java.net.InetAddress; -import java.net.UnknownHostException; -import java.util.HashMap; -import java.util.Map; -import java.util.TreeMap; - -public class MetricAnomalyTester { - - public static String appId = MetricsCollectorInterface.serviceName; - static final Log LOG = LogFactory.getLog(MetricAnomalyTester.class); - static Map<String, TimelineMetric> timelineMetricMap = new HashMap<>(); - - public static TimelineMetrics runTestAnomalyRequest(MetricAnomalyDetectorTestInput input) throws UnknownHostException { - - long currentTime = System.currentTimeMillis(); - TimelineMetrics timelineMetrics = new TimelineMetrics(); - String hostname = InetAddress.getLocalHost().getHostName(); - - //Train data - TimelineMetric metric1 = new TimelineMetric(); - if (StringUtils.isNotEmpty(input.getTrainDataName())) { - metric1 = timelineMetricMap.get(input.getTrainDataName()); - if (metric1 == null) { - metric1 = new TimelineMetric(); - double[] trainSeries = MetricSeriesGeneratorFactory.generateSeries(input.getTrainDataType(), input.getTrainDataSize(), input.getTrainDataConfigs()); - metric1.setMetricName(input.getTrainDataName()); - metric1.setAppId(appId); - metric1.setHostName(hostname); - metric1.setStartTime(currentTime); - metric1.setInstanceId(null); - metric1.setMetricValues(getAsTimeSeries(currentTime, trainSeries)); - timelineMetricMap.put(input.getTrainDataName(), metric1); - } - timelineMetrics.getMetrics().add(metric1); - } else { - LOG.error("No train data name specified"); - } - - //Test data - TimelineMetric metric2 = new TimelineMetric(); - if (StringUtils.isNotEmpty(input.getTestDataName())) { - metric2 = timelineMetricMap.get(input.getTestDataName()); - if (metric2 == null) { - metric2 = new TimelineMetric(); - double[] testSeries = MetricSeriesGeneratorFactory.generateSeries(input.getTestDataType(), input.getTestDataSize(), input.getTestDataConfigs()); - metric2.setMetricName(input.getTestDataName()); - metric2.setAppId(appId); - metric2.setHostName(hostname); - metric2.setStartTime(currentTime); - metric2.setInstanceId(null); - metric2.setMetricValues(getAsTimeSeries(currentTime, testSeries)); - timelineMetricMap.put(input.getTestDataName(), metric2); - } - timelineMetrics.getMetrics().add(metric2); - } else { - LOG.warn("No test data name specified"); - } - - //Invoke method - if (CollectionUtils.isNotEmpty(input.getMethods())) { - RFunctionInvoker.setScriptsDir("/etc/ambari-metrics-collector/conf/R-scripts"); - for (String methodType : input.getMethods()) { - ResultSet result = RFunctionInvoker.executeMethod(methodType, getAsDataSeries(metric1), getAsDataSeries(metric2), input.getMethodConfigs()); - TimelineMetric timelineMetric = getAsTimelineMetric(result, methodType, input, currentTime, hostname); - if (timelineMetric != null) { - timelineMetrics.getMetrics().add(timelineMetric); - } - } - } else { - LOG.warn("No anomaly method requested"); - } - - return timelineMetrics; - } - - - private static TimelineMetric getAsTimelineMetric(ResultSet result, String methodType, MetricAnomalyDetectorTestInput input, long currentTime, String hostname) { - - if (result == null) { - return null; - } - - TimelineMetric timelineMetric = new TimelineMetric(); - if (methodType.equals("tukeys") || methodType.equals("ema")) { - timelineMetric.setMetricName(input.getTrainDataName() + "_" + input.getTestDataName() + "_" + methodType + "_" + currentTime); - timelineMetric.setHostName(hostname); - timelineMetric.setAppId(appId); - timelineMetric.setInstanceId(null); - timelineMetric.setStartTime(currentTime); - - TreeMap<Long, Double> metricValues = new TreeMap<>(); - if (result.resultset.size() > 0) { - double[] ts = result.resultset.get(0); - double[] metrics = result.resultset.get(1); - for (int i = 0; i < ts.length; i++) { - if (i == 0) { - timelineMetric.setStartTime((long) ts[i]); - } - metricValues.put((long) ts[i], metrics[i]); - } - } - timelineMetric.setMetricValues(metricValues); - return timelineMetric; - } - return null; - } - - - private static TreeMap<Long, Double> getAsTimeSeries(long currentTime, double[] values) { - - long startTime = currentTime - (values.length - 1) * 60 * 1000; - TreeMap<Long, Double> metricValues = new TreeMap<>(); - - for (int i = 0; i < values.length; i++) { - metricValues.put(startTime, values[i]); - startTime += (60 * 1000); - } - return metricValues; - } - - private static DataSeries getAsDataSeries(TimelineMetric timelineMetric) { - - TreeMap<Long, Double> metricValues = timelineMetric.getMetricValues(); - double[] timestamps = new double[metricValues.size()]; - double[] values = new double[metricValues.size()]; - int i = 0; - - for (Long timestamp : metricValues.keySet()) { - timestamps[i] = timestamp; - values[i++] = metricValues.get(timestamp); - } - return new DataSeries(timelineMetric.getMetricName() + "_" + timelineMetric.getAppId() + "_" + timelineMetric.getHostName(), timestamps, values); - } -} diff --git a/ambari-metrics/pom.xml b/ambari-metrics/pom.xml index 386be91..f2acb4f 100644 --- a/ambari-metrics/pom.xml +++ b/ambari-metrics/pom.xml @@ -34,7 +34,7 @@ <module>ambari-metrics-grafana</module> <module>ambari-metrics-assembly</module> <module>ambari-metrics-host-aggregator</module> - <module>ambari-metrics-anomaly-detector</module> + <module>ambari-metrics-anomaly-detection-service</module> </modules> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> -- To stop receiving notification emails like this one, please contact [email protected].
