Return-Path: X-Original-To: apmail-eagle-commits-archive@minotaur.apache.org Delivered-To: apmail-eagle-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 231B718C1E for ; Thu, 3 Mar 2016 18:10:36 +0000 (UTC) Received: (qmail 56544 invoked by uid 500); 3 Mar 2016 18:10:36 -0000 Delivered-To: apmail-eagle-commits-archive@eagle.apache.org Received: (qmail 56477 invoked by uid 500); 3 Mar 2016 18:10:36 -0000 Mailing-List: contact commits-help@eagle.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@eagle.incubator.apache.org Delivered-To: mailing list commits@eagle.incubator.apache.org Received: (qmail 56458 invoked by uid 99); 3 Mar 2016 18:10:35 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 03 Mar 2016 18:10:35 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 540D71A05D6 for ; Thu, 3 Mar 2016 18:10:35 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -3.549 X-Spam-Level: X-Spam-Status: No, score=-3.549 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_LAZY_DOMAIN_SECURITY=1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.329] autolearn=disabled Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id exLpc8FfaY7V for ; Thu, 3 Mar 2016 18:09:59 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with SMTP id 35E3660E77 for ; Thu, 3 Mar 2016 18:09:38 +0000 (UTC) Received: (qmail 51145 invoked by uid 99); 3 Mar 2016 18:09:35 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 03 Mar 2016 18:09:35 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 3FA4FE78FD; Thu, 3 Mar 2016 18:09:35 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: hao@apache.org To: commits@eagle.incubator.apache.org Date: Thu, 03 Mar 2016 18:10:05 -0000 Message-Id: <7ddb5e2b2bb6486b9be8d418f28f9d8c@git.apache.org> In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [32/51] [partial] incubator-eagle git commit: EAGLE-184 Migrate eagle website from https://github.com/eaglemonitoring/eaglemonitoring.github.io to document branch http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0ea130ef/eagle-core/eagle-embed/eagle-embed-server/pom.xml ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-embed/eagle-embed-server/pom.xml b/eagle-core/eagle-embed/eagle-embed-server/pom.xml deleted file mode 100644 index d5b5e50..0000000 --- a/eagle-core/eagle-embed/eagle-embed-server/pom.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - - - 4.0.0 - - eagle - eagle-embed-parent - 0.3.0 - ../pom.xml - - eagle-embed-server - jar - eagle-embed-server - - - org.apache.tomcat.embed - tomcat-embed-core - - - org.apache.tomcat.embed - tomcat-embed-el - - - org.apache.tomcat.embed - tomcat-embed-jasper - - - org.apache.tomcat.embed - tomcat-embed-logging-juli - - - org.apache.tomcat.embed - tomcat-embed-logging-log4j - - - org.apache.tomcat.embed - tomcat-embed-websocket - - - log4j - log4j - - - - - - - org.slf4j - log4j-over-slf4j - - - - - - maven-jar-plugin - - - test-jar - test-compile - - test-jar - - - - - - - http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0ea130ef/eagle-core/eagle-embed/eagle-embed-server/runEmbeddedServer.sh ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-embed/eagle-embed-server/runEmbeddedServer.sh b/eagle-core/eagle-embed/eagle-embed-server/runEmbeddedServer.sh deleted file mode 100755 index a1ac537..0000000 --- a/eagle-core/eagle-embed/eagle-embed-server/runEmbeddedServer.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash - -# 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. - -export JAVA_HOME=$(/usr/libexec/java_home -v 1.7) -mvn -X exec:java -Dexec.mainClass="org.apache.eagle.service.embedded.tomcat.EmbeddedServer" -Dexec.args="../../../eagle-security/eagle-security-webservice/target/eagle-service 38080" \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0ea130ef/eagle-core/eagle-embed/eagle-embed-server/src/main/java/org/apache/eagle/service/embedded/tomcat/EmbeddedServer.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-embed/eagle-embed-server/src/main/java/org/apache/eagle/service/embedded/tomcat/EmbeddedServer.java b/eagle-core/eagle-embed/eagle-embed-server/src/main/java/org/apache/eagle/service/embedded/tomcat/EmbeddedServer.java deleted file mode 100644 index 35d3967..0000000 --- a/eagle-core/eagle-embed/eagle-embed-server/src/main/java/org/apache/eagle/service/embedded/tomcat/EmbeddedServer.java +++ /dev/null @@ -1,109 +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.eagle.service.embedded.tomcat; - -import java.io.File; - -import org.apache.catalina.LifecycleState; -import org.apache.catalina.startup.Tomcat; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class EmbeddedServer { - - private static EmbeddedServer server; - private Tomcat tomcat; - private String webappDirLocation; - private int port; - private static int DEFAULT_TOMCAT_PORT = 38080; - private static final Logger LOG = LoggerFactory.getLogger(EmbeddedServer.class); - - public static void main(String[] args) { - // args: webappLocation, port - int tomcatPort; - if (args.length > 1) { - tomcatPort = Integer.valueOf(args[1]); - } else { - tomcatPort = DEFAULT_TOMCAT_PORT; - } - new EmbeddedServer(args[0], tomcatPort).start(); - } - - private EmbeddedServer(String webappDirLocation) { - this(webappDirLocation, DEFAULT_TOMCAT_PORT); - } - - private EmbeddedServer(String webappDirLocation, int port) { - this.webappDirLocation = webappDirLocation; - this.port = port; - } - - public static EmbeddedServer getInstance(String webappDirLocation) { - if (server == null) { - synchronized(EmbeddedServer.class) { - if (server == null) { - server = new EmbeddedServer(webappDirLocation); - server.start(); - } - } - } - return server; - } - - public int getPort() { - return port; - } - - public void start() { - tomcat = new Tomcat(); - tomcat.setHostname("localhost"); - tomcat.setPort(port); - try { - tomcat.addWebapp("/eagle-service", new File(webappDirLocation).getAbsolutePath()); - tomcat.start(); - - } catch (Exception ex) { - LOG.error("Got an exception " + ex.getMessage()); - } - - Runtime.getRuntime().addShutdownHook(new Thread() { - @Override - public void run() { - try { - shutdown(); - } - catch (Throwable t) { - LOG.error("Got an exception why shutting down..." + t.getMessage()); - } - } - }); - try { - Thread.sleep(10000000); - }catch(Exception ex){ - ex.printStackTrace(); - } - } - - public void shutdown() throws Throwable { - if (tomcat.getServer() != null && tomcat.getServer().getState() != LifecycleState.DESTROYED) { - if (tomcat.getServer().getState() != LifecycleState.STOPPED) { - tomcat.stop(); - } - tomcat.destroy(); - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0ea130ef/eagle-core/eagle-embed/eagle-embed-server/src/test/java/org/apache/eagle/service/embedded/tomcat/TestEmbeddedServer.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-embed/eagle-embed-server/src/test/java/org/apache/eagle/service/embedded/tomcat/TestEmbeddedServer.java b/eagle-core/eagle-embed/eagle-embed-server/src/test/java/org/apache/eagle/service/embedded/tomcat/TestEmbeddedServer.java deleted file mode 100644 index 1351ac7..0000000 --- a/eagle-core/eagle-embed/eagle-embed-server/src/test/java/org/apache/eagle/service/embedded/tomcat/TestEmbeddedServer.java +++ /dev/null @@ -1,26 +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.eagle.service.embedded.tomcat; - -public class TestEmbeddedServer { - - //@Test - public void test() throws Throwable{ - String webappDirLocation = "../../../eagle-webservice/target/eagle-service"; - EmbeddedServer.getInstance(webappDirLocation); - } -} http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0ea130ef/eagle-core/eagle-embed/pom.xml ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-embed/pom.xml b/eagle-core/eagle-embed/pom.xml deleted file mode 100644 index 098e9a6..0000000 --- a/eagle-core/eagle-embed/pom.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - eagle-core - eagle - 0.3.0 - ../pom.xml - - 4.0.0 - - eagle-embed-parent - pom - - - eagle-embed-hbase - eagle-embed-server - - \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0ea130ef/eagle-core/eagle-machinelearning/eagle-machinelearning-base/pom.xml ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-machinelearning/eagle-machinelearning-base/pom.xml b/eagle-core/eagle-machinelearning/eagle-machinelearning-base/pom.xml deleted file mode 100644 index ed0ac4d..0000000 --- a/eagle-core/eagle-machinelearning/eagle-machinelearning-base/pom.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - 4.0.0 - - eagle - eagle-machinelearning-parent - 0.3.0 - ../pom.xml - - eagle-machinelearning-base - eagle-machinelearning-base - http://maven.apache.org - - - eagle - eagle-alert-process - ${project.version} - - - \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0ea130ef/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/MLAlgorithmEvaluator.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/MLAlgorithmEvaluator.java b/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/MLAlgorithmEvaluator.java deleted file mode 100644 index 800b6e0..0000000 --- a/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/MLAlgorithmEvaluator.java +++ /dev/null @@ -1,50 +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.eagle.ml; - -import com.typesafe.config.Config; -import org.apache.eagle.dataproc.core.ValuesArray; -import org.apache.eagle.ml.model.MLAlgorithm; -import org.apache.eagle.policy.PolicyEvaluationContext; - -/** - * Machine Learning Algorithm Evaluator - */ -public interface MLAlgorithmEvaluator { - /** - * Prepare Machine learning algorithm - * - * @param algorithm MLAlgorithm instance - */ - public void init(MLAlgorithm algorithm, Config config, PolicyEvaluationContext context); - - /** - * Evaluate input user profile model - * - * @param data ValuesArray - * @throws Exception - */ - public void evaluate(ValuesArray data) throws Exception; - - /** - * Register callback - * - * @param callbackObj MachineLearningCallback - * @throws Exception - */ - public void register(MLAnomalyCallback callbackObj) throws Exception; -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0ea130ef/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/MLAnomalyCallback.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/MLAnomalyCallback.java b/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/MLAnomalyCallback.java deleted file mode 100644 index 5005c42..0000000 --- a/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/MLAnomalyCallback.java +++ /dev/null @@ -1,28 +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.eagle.ml; - -import org.apache.eagle.policy.PolicyEvaluationContext; -import org.apache.eagle.ml.model.MLCallbackResult; - -public interface MLAnomalyCallback { - /** - * @param callbackResult call-backed result - * @param alertContext context - */ - void receive(MLCallbackResult callbackResult,PolicyEvaluationContext alertContext); -} http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0ea130ef/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/MLConstants.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/MLConstants.java b/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/MLConstants.java deleted file mode 100644 index 9197d59..0000000 --- a/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/MLConstants.java +++ /dev/null @@ -1,24 +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.eagle.ml; - -public class MLConstants { - public final static String ML_MODEL_SERVICE_NAME = "MLModelService"; - public final static String ALGORITHM = "algorithm"; - public final static String USER = "user"; -} http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0ea130ef/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/MLModelDAO.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/MLModelDAO.java b/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/MLModelDAO.java deleted file mode 100644 index 13eb7e1..0000000 --- a/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/MLModelDAO.java +++ /dev/null @@ -1,30 +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.eagle.ml; - -import org.apache.eagle.ml.model.MLModelAPIEntity; - -import java.util.List; - -public interface MLModelDAO { - /** - * @param user - * @param algorithm - * @return - */ - List findMLModelByContext(String user, String algorithm); -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0ea130ef/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/MLPolicyEvaluator.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/MLPolicyEvaluator.java b/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/MLPolicyEvaluator.java deleted file mode 100644 index 36bcaec..0000000 --- a/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/MLPolicyEvaluator.java +++ /dev/null @@ -1,170 +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.eagle.ml; - -import com.typesafe.config.Config; -import org.apache.commons.lang3.StringUtils; -import org.apache.eagle.alert.entity.AlertAPIEntity; -import org.apache.eagle.alert.entity.AlertDefinitionAPIEntity; -import org.apache.eagle.dataproc.core.JsonSerDeserUtils; -import org.apache.eagle.dataproc.core.ValuesArray; -import org.apache.eagle.ml.impl.MLAnomalyCallbackImpl; -import org.apache.eagle.ml.model.MLAlgorithm; -import org.apache.eagle.ml.model.MLPolicyDefinition; -import org.apache.eagle.ml.utils.MLReflectionUtils; -import org.apache.eagle.policy.PolicyEvaluationContext; -import org.apache.eagle.policy.PolicyEvaluator; -import org.apache.eagle.policy.PolicyManager; -import org.apache.eagle.policy.common.Constants; -import org.apache.eagle.policy.config.AbstractPolicyDefinition; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.*; - -public class MLPolicyEvaluator implements PolicyEvaluator { - private static Logger LOG = LoggerFactory.getLogger(MLPolicyEvaluator.class); - private volatile MLRuntime mlRuntime; - private Config config; - private Map context; - private final PolicyEvaluationContext evalContext; - - private class MLRuntime{ - MLPolicyDefinition mlPolicyDef; - MLAlgorithmEvaluator[] mlAlgorithmEvaluators; - List mlAnomalyCallbacks = new ArrayList<>(); - } - - public MLPolicyEvaluator(Config config, PolicyEvaluationContext evalContext, AbstractPolicyDefinition policyDef, String[] sourceStreams){ - this(config, evalContext, policyDef, sourceStreams, false); - } - - /** - * needValidation does not take effect for machine learning use case - * @param policyDef - * @param sourceStreams - * @param needValidation - */ - public MLPolicyEvaluator(Config config, PolicyEvaluationContext evalContext, AbstractPolicyDefinition policyDef, String[] sourceStreams, boolean needValidation){ - this.config = config; - this.evalContext = evalContext; - LOG.info("Initializing policy named: " + evalContext.policyId); - this.context = new HashMap<>(); - this.context.put(Constants.SOURCE_STREAMS, StringUtils.join(sourceStreams,",")); - this.init(policyDef); - } - - public void init(AbstractPolicyDefinition policyDef){ - LOG.info("Initializing MLPolicyEvaluator ..."); - try{ - mlRuntime = newMLRuntime((MLPolicyDefinition) policyDef); - }catch(Exception e){ - LOG.error("ML Runtime creation failed: " + e.getMessage()); - } - } - - private MLRuntime newMLRuntime(MLPolicyDefinition mlPolicyDef) { - MLRuntime runtime = new MLRuntime(); - - try{ - runtime.mlPolicyDef = mlPolicyDef; - - LOG.info("policydef: " + ((runtime.mlPolicyDef == null)? "policy definition is null": "policy definition is not null")); - Properties alertContext = runtime.mlPolicyDef.getContext(); - LOG.info("alert context received null? " + ((alertContext == null? "yes": "no"))); - MLAnomalyCallback callbackImpl = new MLAnomalyCallbackImpl(this, config); - runtime.mlAnomalyCallbacks.add(callbackImpl); - - MLAlgorithm[] mlAlgorithms = mlPolicyDef.getAlgorithms(); - runtime.mlAlgorithmEvaluators = new MLAlgorithmEvaluator[mlAlgorithms.length]; - LOG.info("mlAlgorithms size:: " + mlAlgorithms.length); - int i = 0; - for(MLAlgorithm algorithm:mlAlgorithms){ - MLAlgorithmEvaluator mlAlgorithmEvaluator = MLReflectionUtils.newMLAlgorithmEvaluator(algorithm); - mlAlgorithmEvaluator.init(algorithm, config, evalContext); - runtime.mlAlgorithmEvaluators[i] = mlAlgorithmEvaluator; - LOG.info("mlAlgorithmEvaluator: " + mlAlgorithmEvaluator.toString()); - mlAlgorithmEvaluator.register(callbackImpl); - i++; - } - }catch(Exception ex){ - LOG.error("Failed to create runtime for policy named: "+this.getPolicyName(),ex); - } - return runtime; - } - - @Override - public void evaluate(ValuesArray data) throws Exception { - LOG.info("Evaluate called with input: " + data.size()); - synchronized(mlRuntime){ - for(MLAlgorithmEvaluator mlAlgorithm:mlRuntime.mlAlgorithmEvaluators){ - mlAlgorithm.evaluate(data); - } - } - } - - @Override - public void onPolicyUpdate(AlertDefinitionAPIEntity newAlertDef) { - LOG.info("onPolicyUpdate called"); - AbstractPolicyDefinition policyDef = null; - try { - policyDef = JsonSerDeserUtils.deserialize(newAlertDef.getPolicyDef(), - AbstractPolicyDefinition.class, PolicyManager.getInstance().getPolicyModules(newAlertDef.getTags().get("policyType"))); - } catch (Exception ex) { - LOG.error("initial policy def error, ", ex); - } - MLRuntime previous = mlRuntime; - mlRuntime = newMLRuntime((MLPolicyDefinition) policyDef); - synchronized (previous) { - previous.mlAnomalyCallbacks = null; - previous.mlAlgorithmEvaluators = null; - previous.mlPolicyDef = null; - } - previous = null; - } - - @Override - public void onPolicyDelete() { - LOG.info("onPolicyDelete called"); - MLRuntime previous = mlRuntime; - synchronized (previous) { - previous.mlAnomalyCallbacks = null; - previous.mlAlgorithmEvaluators = null; - previous.mlPolicyDef = null; - } - previous = null; - } - - public String getPolicyName() { - return evalContext.policyId; - } - - @Override - public Map getAdditionalContext() { - return this.context; - } - - public List getOutputStreamAttrNameList() { - return new ArrayList(); - } - - @Override - public boolean isMarkdownEnabled() { return false; } - - @Override - public String getMarkdownReason() { return null; } -} http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0ea130ef/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/impl/MLAnomalyCallbackImpl.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/impl/MLAnomalyCallbackImpl.java b/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/impl/MLAnomalyCallbackImpl.java deleted file mode 100644 index a889361..0000000 --- a/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/impl/MLAnomalyCallbackImpl.java +++ /dev/null @@ -1,107 +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.eagle.ml.impl; - -import java.lang.management.ManagementFactory; -import java.util.Arrays; -import java.util.HashMap; -import java.util.Map; - -import org.apache.eagle.policy.common.Constants; -import org.apache.eagle.alert.entity.AlertAPIEntity; -import org.apache.eagle.policy.PolicyEvaluationContext; -import org.apache.eagle.common.DateTimeUtil; -import org.apache.eagle.common.config.EagleConfigConstants; -import org.apache.eagle.common.metric.AlertContext; -import org.apache.eagle.ml.MLAnomalyCallback; -import org.apache.eagle.ml.MLPolicyEvaluator; -import org.apache.eagle.ml.model.MLCallbackResult; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.typesafe.config.Config; - -public class MLAnomalyCallbackImpl implements MLAnomalyCallback { - private static Logger LOG = LoggerFactory.getLogger(MLAnomalyCallbackImpl.class); - private MLPolicyEvaluator mlAlertEvaluator; - private Config config; - - - public static final String source = ManagementFactory.getRuntimeMXBean().getName(); - - public MLAnomalyCallbackImpl(MLPolicyEvaluator mlAlertEvaluator, Config config){ - this.mlAlertEvaluator = mlAlertEvaluator; - this.config = config; - } - - /** - * TODO: generate alert - * - * @param aResult - * @param alertContext context - */ - @Override - public void receive(MLCallbackResult aResult,PolicyEvaluationContext alertContext) { - LOG.info("Receive called with : " + aResult.toString()); - AlertAPIEntity alert = renderAlert(aResult,alertContext); - alertContext.alertExecutor.onEvalEvents(alertContext, Arrays.asList(alert)); - } - - private AlertAPIEntity renderAlert(MLCallbackResult aResult,PolicyEvaluationContext alertContext){ - String site = config.getString(EagleConfigConstants.EAGLE_PROPS + "." + EagleConfigConstants.SITE); - String applicatioin = config.getString(EagleConfigConstants.EAGLE_PROPS + "." + EagleConfigConstants.APPLICATION); - - AlertAPIEntity entity = new AlertAPIEntity(); - entity.setDescription(aResult.toString()); - - Map tags = new HashMap<>(); - tags.put(EagleConfigConstants.SITE, site); - tags.put(EagleConfigConstants.APPLICATION, applicatioin); - tags.put(Constants.SOURCE_STREAMS, (String)alertContext.evaluator.getAdditionalContext().get(Constants.SOURCE_STREAMS)); - tags.put(Constants.POLICY_ID, alertContext.policyId); - tags.put(Constants.ALERT_SOURCE, source); - tags.put(Constants.ALERT_EXECUTOR_ID, alertContext.alertExecutor.getExecutorId()); - entity.setTags(tags); - - entity.setTimestamp(aResult.getTimestamp()); - - AlertContext context = new AlertContext(); - - if(aResult.getContext() != null) context.addAll(aResult.getContext()); - - String alertMessage = "Anomaly activities detected by algorithm ["+aResult.getAlgorithmName()+"] with information: " + aResult.toString() ; - context.addProperty(Constants.ALERT_EVENT, aResult.toString()); - context.addProperty(Constants.ALERT_MESSAGE, alertMessage); - context.addProperty(Constants.ALERT_TIMESTAMP_PROPERTY, DateTimeUtil.millisecondsToHumanDateWithSeconds(System.currentTimeMillis())); - - try { - site = config.getString("eagleProps.site"); - applicatioin = config.getString("eagleProps.application"); - context.addProperty(EagleConfigConstants.APPLICATION, applicatioin); - context.addProperty(EagleConfigConstants.SITE, site); - } catch (Exception ex) { - LOG.error("site, dataSource not set in config file, ", ex); - } - - context.addProperty(EagleConfigConstants.APPLICATION, applicatioin); - context.addProperty(EagleConfigConstants.SITE, site); - context.addProperty(Constants.POLICY_NAME, alertContext.policyId); - - entity.setAlertContext(context); - return entity; - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0ea130ef/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/impl/MLModelDAOImpl.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/impl/MLModelDAOImpl.java b/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/impl/MLModelDAOImpl.java deleted file mode 100644 index 1e3067e..0000000 --- a/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/impl/MLModelDAOImpl.java +++ /dev/null @@ -1,62 +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.eagle.ml.impl; - -import org.apache.eagle.log.entity.GenericServiceAPIResponseEntity; -import org.apache.eagle.ml.MLConstants; -import org.apache.eagle.ml.MLModelDAO; -import org.apache.eagle.ml.model.MLModelAPIEntity; -import org.apache.eagle.service.client.EagleServiceConnector; -import org.apache.eagle.service.client.IEagleServiceClient; -import org.apache.eagle.service.client.impl.EagleServiceClientImpl; -import org.apache.commons.lang.time.DateUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.List; - -public class MLModelDAOImpl implements MLModelDAO { - private final Logger LOG = LoggerFactory.getLogger(MLModelDAOImpl.class); - private final EagleServiceConnector connector; - - public MLModelDAOImpl(EagleServiceConnector connector){ - this.connector = connector; - } - - @Override - public List findMLModelByContext(String user, String algorithm) { - try { - IEagleServiceClient client = new EagleServiceClientImpl(connector); - String query = MLConstants.ML_MODEL_SERVICE_NAME + "[@user=\"" + user + "\" AND @algorithm=\"" - + algorithm + "\"]{*}"; - GenericServiceAPIResponseEntity response = client.search().startTime(0) - .endTime(10 * DateUtils.MILLIS_PER_DAY) - .pageSize(Integer.MAX_VALUE) - .query(query) - .send(); - if(!response.isSuccess()) { - LOG.error(String.format("Failed to get model for user: %s, algorithm: %s, due to: %s",user,algorithm,response.getException())); - } - - client.close(); - return response.getObj(); - } catch (Exception ex) { - LOG.info("Got an exception when query machinelearning model service ", ex); - throw new IllegalStateException(ex); - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0ea130ef/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/impl/MLPolicyEvaluatorServiceProviderImpl.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/impl/MLPolicyEvaluatorServiceProviderImpl.java b/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/impl/MLPolicyEvaluatorServiceProviderImpl.java deleted file mode 100644 index d0ac75f..0000000 --- a/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/impl/MLPolicyEvaluatorServiceProviderImpl.java +++ /dev/null @@ -1,52 +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.eagle.ml.impl; - -import org.apache.eagle.policy.common.Constants; -import org.apache.eagle.policy.PolicyEvaluator; -import org.apache.eagle.policy.PolicyEvaluatorServiceProvider; -import org.apache.eagle.ml.MLPolicyEvaluator; -import org.apache.eagle.ml.model.MLPolicyDefinition; -import com.fasterxml.jackson.databind.Module; -import com.fasterxml.jackson.databind.jsontype.NamedType; -import com.fasterxml.jackson.databind.module.SimpleModule; - -import java.util.Arrays; -import java.util.List; -import java.util.Properties; - -public class MLPolicyEvaluatorServiceProviderImpl implements PolicyEvaluatorServiceProvider { - - private final static String ALERT_CONTEXT = "alertContext"; - - @Override - public String getPolicyType() { - return Constants.policyType.MachineLearning.name(); - } - - @Override - public Class getPolicyEvaluator() { - return MLPolicyEvaluator.class; - } - - @Override - public List getBindingModules() { - Module module1 = new SimpleModule(Constants.POLICY_DEFINITION).registerSubtypes(new NamedType(MLPolicyDefinition.class, getPolicyType())); - Module module2 = new SimpleModule(ALERT_CONTEXT).registerSubtypes(new NamedType(Properties.class, getPolicyType())); - return Arrays.asList(module1, module2); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0ea130ef/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/model/MLAlgorithm.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/model/MLAlgorithm.java b/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/model/MLAlgorithm.java deleted file mode 100644 index 24b4bad..0000000 --- a/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/model/MLAlgorithm.java +++ /dev/null @@ -1,61 +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.eagle.ml.model; - -import java.io.Serializable; - -public class MLAlgorithm implements Serializable { - private static final long serialVersionUID = -223531147520123L; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - private String name; - private String evaluator; - private String description; - - public String getFeatures() { - return features; - } - - public void setFeatures(String features) { - this.features = features; - } - - private String features; - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public String getEvaluator() { - return evaluator; - } - - public void setEvaluator(String evaluator) { - this.evaluator = evaluator; - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0ea130ef/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/model/MLCallbackResult.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/model/MLCallbackResult.java b/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/model/MLCallbackResult.java deleted file mode 100644 index b457973..0000000 --- a/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/model/MLCallbackResult.java +++ /dev/null @@ -1,137 +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.eagle.ml.model; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -public class MLCallbackResult { - private boolean isAnomaly; - private List feature; - private double confidence; - private long timestamp; - private List datapoints; - private String id; - private String algorithmName; - - public Map getContext() { - return context; - } - - public void setContext(Map context) { - this.context = context; - } - - public void setAlgorithmName(String algorithmName) { - this.algorithmName = algorithmName; - } - - private Map context; - - public String getAlgorithmName() { - return algorithmName; - } - public void setAlgorithm(String algorithmName) { - this.algorithmName = algorithmName; - } - public MLCallbackResult(){ - feature = new ArrayList(); - setDatapoints(new ArrayList()); - } - public boolean isAnomaly() { - return isAnomaly; - } - public void setAnomaly(boolean isAnomaly) { - this.isAnomaly = isAnomaly; - } - public List getFeature() { - return feature; - } - public void setFeature(List feature) { - this.feature = feature; - } - - private boolean doesFeatureExist(String f){ - boolean alreadyExist = false; - for(String s:feature){ - if(s.equalsIgnoreCase(f)) - alreadyExist = true; - } - return alreadyExist; - } - public void setFeature(String aFeature) { - if(doesFeatureExist(aFeature) == false) - feature.add(aFeature); - } - public double getConfidence() { - return confidence; - } - public void setConfidence(double confidence) { - this.confidence = confidence; - } - public String toString(){ - StringBuffer resultStr = new StringBuffer(); - resultStr.append("datapoint :<"); - int i=0; - for(String d:datapoints){ - if(i < datapoints.size()-1){ - resultStr.append(d.trim()); - resultStr.append(","); - i++; - }else - resultStr.append(d.trim()); - } - resultStr.append("> for user: ").append(id).append(" is anomaly: ").append(this.isAnomaly).append(" at timestamp: ").append(this.timestamp); - if(this.isAnomaly){ - //resultStr.append(" with confidence: " + this.confidence); - resultStr.append(" with algorithm: " + algorithmName); - resultStr.append(" with features: "); - int p=0; - resultStr.append("["); - for(String s:feature){ - if(p < feature.size()-1){ - resultStr.append(s.trim()); - resultStr.append(","); - p++; - }else - resultStr.append(s.trim()); - } - resultStr.append("]"); - } - return resultStr.toString(); - } - - public long getTimestamp() { - return timestamp; - } - public void setTimestamp(long timestamp) { - this.timestamp = timestamp; - } - public List getDatapoints() { - return datapoints; - } - public void setDatapoints(List datapoints) { - this.datapoints = datapoints; - } - public String getId() { - return id; - } - public void setId(String id) { - this.id = id; - } -} http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0ea130ef/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/model/MLEntityRepository.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/model/MLEntityRepository.java b/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/model/MLEntityRepository.java deleted file mode 100644 index 883847a..0000000 --- a/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/model/MLEntityRepository.java +++ /dev/null @@ -1,25 +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.eagle.ml.model; - -import org.apache.eagle.log.entity.repo.EntityRepository; - -public class MLEntityRepository extends EntityRepository { - public MLEntityRepository() { - entitySet.add(MLModelAPIEntity.class); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0ea130ef/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/model/MLModelAPIEntity.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/model/MLModelAPIEntity.java b/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/model/MLModelAPIEntity.java deleted file mode 100644 index 6f91ca6..0000000 --- a/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/model/MLModelAPIEntity.java +++ /dev/null @@ -1,67 +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.eagle.ml.model; - -import org.apache.eagle.ml.MLConstants; -import org.codehaus.jackson.annotate.JsonIgnoreProperties; -import org.codehaus.jackson.map.annotate.JsonSerialize; - -import org.apache.eagle.log.base.taggedlog.TaggedLogAPIEntity; -import org.apache.eagle.log.entity.meta.Column; -import org.apache.eagle.log.entity.meta.ColumnFamily; -import org.apache.eagle.log.entity.meta.Prefix; -import org.apache.eagle.log.entity.meta.Service; -import org.apache.eagle.log.entity.meta.Table; -import org.apache.eagle.log.entity.meta.Tags; -import org.apache.eagle.log.entity.meta.TimeSeries; - -/** - * DDL for creating the table - * create 'mlmodel', {NAME => 'f', BLOOMFILTER => 'ROW', VERSIONS => '1', COMPRESSION => 'SNAPPY'} - */ -@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL) -@Table("mlmodel") -@ColumnFamily("f") -@Prefix("mlmodel") -@Service(MLConstants.ML_MODEL_SERVICE_NAME) -@JsonIgnoreProperties(ignoreUnknown = true) -@TimeSeries(false) -@Tags({"site","user", "algorithm"}) -public class MLModelAPIEntity extends TaggedLogAPIEntity{ - @Column("b") - private String content; - @Column("c") - private long version; - - public String getContent() { - return content; - } - - public void setContent(String content) { - this.content = content; - valueChanged("content"); - } - - public long getVersion() { - return version; - } - - public void setVersion(long version) { - this.version = version; - valueChanged("version"); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0ea130ef/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/model/MLPolicyDefinition.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/model/MLPolicyDefinition.java b/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/model/MLPolicyDefinition.java deleted file mode 100644 index 70e0f71..0000000 --- a/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/model/MLPolicyDefinition.java +++ /dev/null @@ -1,82 +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.eagle.ml.model; - -import org.apache.eagle.policy.config.AbstractPolicyDefinition; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonTypeInfo; - -import java.util.Properties; - -/** - { - "type":"MachineLearning", - "context":{ - "site":"dev", - "dataSource":"userprofile" - "component":"dev-component", - "description":"ML based user profile anomaly detection", - "severity":"WARNING", - "notificationByEmail":"true" - }, - "algorithms":[ - { - "name":"eagle.security.userprofile.util.EigenBasedAnomalyDetection", - "description":"EigenBasedAnomalyDetection", - "features":"getfileinfo, open, listStatus, setTimes, setPermission, rename, mkdirs, create, setReplication, contentSummary, delete" - }, - { - "name":"eagle.security.userprofile.util.KDEBasedAnomalyDetection", - "description":"DensityBasedAnomalyDetection", - "features":"getfileinfo, open, listStatus, setTimes, setPermission, rename, mkdirs, create, setReplication, contentSummary, delete" - } - ] -} - version field is used for model update, so eagle framework can understand that something changes. - - */ -@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "type", visible=true) -@JsonIgnoreProperties(ignoreUnknown = true) -public class MLPolicyDefinition extends AbstractPolicyDefinition{ - private String version; - private Properties context; - private MLAlgorithm[] algorithms; - - public MLAlgorithm[] getAlgorithms() { - return algorithms; - } - - public void setAlgorithms(MLAlgorithm[] algorithms) { - this.algorithms = algorithms; - } - - public String getVersion() { - return version; - } - - public void setVersion(String version) { - this.version = version; - } - - public Properties getContext() { - return context; - } - - public void setContext(Properties context) { - this.context = context; - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0ea130ef/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/utils/MLReflectionUtils.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/utils/MLReflectionUtils.java b/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/utils/MLReflectionUtils.java deleted file mode 100644 index fe70165..0000000 --- a/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/java/org/apache/eagle/ml/utils/MLReflectionUtils.java +++ /dev/null @@ -1,38 +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.eagle.ml.utils; - -import org.apache.eagle.ml.MLAlgorithmEvaluator; -import org.apache.eagle.ml.model.MLAlgorithm; - -/** - * @since 8/14/15 - */ -public class MLReflectionUtils { - /** - * Create a new MLAlgorithmEvaluator based on MLAlgorithm - * - * @param algorithm MLAlgorithm - * @return MLAlgorithmEvaluator object instance - * @throws ClassNotFoundException - * @throws IllegalAccessException - * @throws InstantiationException - */ - public static MLAlgorithmEvaluator newMLAlgorithmEvaluator(MLAlgorithm algorithm) throws ClassNotFoundException, IllegalAccessException, InstantiationException { - return (MLAlgorithmEvaluator) Class.forName(algorithm.getEvaluator()).newInstance(); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0ea130ef/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/resources/META-INF/services/org.apache.eagle.policy.PolicyEvaluatorServiceProvider ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/resources/META-INF/services/org.apache.eagle.policy.PolicyEvaluatorServiceProvider b/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/resources/META-INF/services/org.apache.eagle.policy.PolicyEvaluatorServiceProvider deleted file mode 100644 index d7a2754..0000000 --- a/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/main/resources/META-INF/services/org.apache.eagle.policy.PolicyEvaluatorServiceProvider +++ /dev/null @@ -1,16 +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. - -org.apache.eagle.ml.impl.MLPolicyEvaluatorServiceProviderImpl \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0ea130ef/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/test/resources/META-INF/services/org.apache.eagle.policy.PolicyEvaluatorServiceProvider ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/test/resources/META-INF/services/org.apache.eagle.policy.PolicyEvaluatorServiceProvider b/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/test/resources/META-INF/services/org.apache.eagle.policy.PolicyEvaluatorServiceProvider deleted file mode 100644 index d7a2754..0000000 --- a/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/test/resources/META-INF/services/org.apache.eagle.policy.PolicyEvaluatorServiceProvider +++ /dev/null @@ -1,16 +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. - -org.apache.eagle.ml.impl.MLPolicyEvaluatorServiceProviderImpl \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0ea130ef/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/test/resources/application.conf ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/test/resources/application.conf b/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/test/resources/application.conf deleted file mode 100644 index 2125cbc..0000000 --- a/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/test/resources/application.conf +++ /dev/null @@ -1,57 +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. - -{ - "envContextConfig" : { - "env" : "storm", - "topologyName" : "securityLogProcessTopology", - "mode" : "local", - "parallelismConfig" : { - } - }, - "dataSourceConfig": { - "flavor" : "stormhdfs", - "hdfsConnection" : "10.225.92.42:9000", - "hdfsPath" : "/tmp/user1", - "copyToPath" : "/Users/user1/Security/hive_files/weeks_file/MLDemo_testing/consolidated", - "fileFormat" : "CSV", - "typeOperation" : "user profile generation", - "userlist": "/UserList.txt", - "containsFileHeader": true - }, - "eagleProps" : { - "application" : "hdfsAuditLog-ML", - "env" : "test", - "mail.host" : "mailHost.com", - "mail.debug" : "true", - "eagleService": { - "host": "localhost", - "port": 9099, - "username": "admin", - "password": "secret" - } - }, - "alertExecutorConfigs" : { - "userAnomalousActivityDetectionAlertExecutor" : { - "parallelism" : 2, - "partitioner" : "org.apache.eagle.policy.DefaultPolicyPartitioner" - } - }, - "dynamicConfigSource" : { - "eagleServiceHost" : "localhost", - "eagleServicePort" : "8080", - "enabled" : "true" - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0ea130ef/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/test/resources/log4j.properties ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/test/resources/log4j.properties b/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/test/resources/log4j.properties deleted file mode 100644 index 71a5dac..0000000 --- a/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/test/resources/log4j.properties +++ /dev/null @@ -1,34 +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. - -log4j.rootLogger=INFO, DRFA, stdout -eagle.log.dir=./logs -eagle.log.file=eagle.log - -# standard output -log4j.appender.stdout=org.apache.log4j.ConsoleAppender -log4j.appender.stdout.layout=org.apache.log4j.PatternLayout -log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} %p [%t] %c{2}[%L]: %m%n - -# Daily Rolling File Appender -log4j.appender.DRFA=org.apache.log4j.DailyRollingFileAppender -log4j.appender.DRFA.File=${eagle.log.dir}/${eagle.log.file} -log4j.appender.DRFA.DatePattern=.yyyy-MM-dd -# 30-day backup -#log4j.appender.DRFA.MaxBackupIndex=30 -log4j.appender.DRFA.layout=org.apache.log4j.PatternLayout - -# Pattern format: Date LogLevel LoggerName LogMessage -log4j.appender.DRFA.layout.ConversionPattern=%d{ISO8601} %p [%t] %c{2}[%L]: %m%n \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0ea130ef/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/test/resources/ml-policyDef-UserProfile.txt ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/test/resources/ml-policyDef-UserProfile.txt b/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/test/resources/ml-policyDef-UserProfile.txt deleted file mode 100644 index 2f4bcb1..0000000 --- a/eagle-core/eagle-machinelearning/eagle-machinelearning-base/src/test/resources/ml-policyDef-UserProfile.txt +++ /dev/null @@ -1,51 +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. - */ - -{ - "type":"MachineLearning", - "fileTypes":[ - { - "type":"CSV", - "containsHeader":"true", - "fileParserClass":"eagle.ml.CSVFileFormatParser" - } - ], - "alertContext":{ - "cluster":"testCluster", - "datacenter":"testDataCenter", - "component":"testComponent", - "description":"ML based user profile anomaly detection", - "severity":"WARNING", - "notificationByEmail":"true" - }, - "algorithms":[ - { - "name":"org.apache.eagle.security.userprofile.util.EigenBasedAnomalyDetection", - "description":"EigenBasedAnomalyDetection", - "modelPath":"/models/", - "featureSet":"getfileinfo, open, listStatus, setTimes, setPermission, rename, mkdirs, create, setReplication, contentSummary, delete, setOwner, fsck", - "type":"CSV" - }, - { - "name":"org.apache.eagle.security.userprofile.util.KDEBasedAnomalyDetection", - "description":"DensityBasedAnomalyDetection", - "modelPath":"/models/", - "featureSet":"getfileinfo, open, listStatus, setTimes, setPermission, rename, mkdirs, create, setReplication, contentSummary, delete, setOwner, fsck", - "type":"CSV" - } - ] -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0ea130ef/eagle-core/eagle-machinelearning/pom.xml ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-machinelearning/pom.xml b/eagle-core/eagle-machinelearning/pom.xml deleted file mode 100644 index 24514d0..0000000 --- a/eagle-core/eagle-machinelearning/pom.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - eagle-core - eagle - 0.3.0 - ../pom.xml - - 4.0.0 - - eagle-machinelearning-parent - pom - - eagle-machinelearning-base - - \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0ea130ef/eagle-core/eagle-metric/pom.xml ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-metric/pom.xml b/eagle-core/eagle-metric/pom.xml deleted file mode 100644 index c12a2b9..0000000 --- a/eagle-core/eagle-metric/pom.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - - 4.0.0 - - eagle - eagle-core - 0.3.0 - ../pom.xml - - - eagle-metric - jar - eagle-metric - - - - io.dropwizard.metrics - metrics-core - 3.1.2 - - - eagle - eagle-entity-base - ${project.version} - - - eagle - eagle-client-base - ${project.version} - - - - http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0ea130ef/eagle-core/eagle-metric/src/main/java/org/apache/eagle/metric/MetricConstants.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-metric/src/main/java/org/apache/eagle/metric/MetricConstants.java b/eagle-core/eagle-metric/src/main/java/org/apache/eagle/metric/MetricConstants.java deleted file mode 100644 index 54c069d..0000000 --- a/eagle-core/eagle-metric/src/main/java/org/apache/eagle/metric/MetricConstants.java +++ /dev/null @@ -1,24 +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.eagle.metric; - -public class MetricConstants { - public static final String GENERIC_METRIC_ENTITY_ENDPOINT = "GenericMetricService"; -} http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0ea130ef/eagle-core/eagle-metric/src/main/java/org/apache/eagle/metric/reportor/EagleCounterMetric.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-metric/src/main/java/org/apache/eagle/metric/reportor/EagleCounterMetric.java b/eagle-core/eagle-metric/src/main/java/org/apache/eagle/metric/reportor/EagleCounterMetric.java deleted file mode 100644 index 0a7f70e..0000000 --- a/eagle-core/eagle-metric/src/main/java/org/apache/eagle/metric/reportor/EagleCounterMetric.java +++ /dev/null @@ -1,73 +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.eagle.metric.reportor; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.Arrays; - -public class EagleCounterMetric extends EagleMetric { - - private static final Logger LOG = LoggerFactory.getLogger(EagleCounterMetric.class); - - public EagleCounterMetric(long latestUserTimeClock, String name, double value, long granularity) { - super(latestUserTimeClock, name, value, granularity); - } - - public EagleCounterMetric(EagleCounterMetric metric) { - super(metric); - } - - public long trim(long latestUserTimeClock) { - return latestUserTimeClock / granularity * granularity; - } - - public void flush(long latestUserTimeClock) { - for (EagleMetricListener listener : metricListeners) { - EagleCounterMetric newEagleMetric = new EagleCounterMetric(this); - newEagleMetric.name = MetricKeyCodeDecoder.addTimestampToMetricKey(trim(latestUserTimeClock), newEagleMetric.name); - listener.onMetricFlushed(Arrays.asList((EagleMetric)newEagleMetric)); - } - } - - public boolean checkIfNeedFlush(long currentUserTimeClock) { - if (currentUserTimeClock - latestUserTimeClock > granularity) { - return true; - } - return false; - } - - public boolean update(double d, long currentUserTimeClock) { - Boolean readyToFlushed = checkIfNeedFlush(currentUserTimeClock); - if (!readyToFlushed) { - if (currentUserTimeClock < latestUserTimeClock) { - LOG.warn("Something must be wrong, event should come in order of userTimeClock"); - } - value.addAndGet(d); - } - else { - flush(latestUserTimeClock); - value.getAndSet(1); - latestUserTimeClock = currentUserTimeClock; - } - return readyToFlushed; - } -} http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0ea130ef/eagle-core/eagle-metric/src/main/java/org/apache/eagle/metric/reportor/EagleGaugeMetric.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-metric/src/main/java/org/apache/eagle/metric/reportor/EagleGaugeMetric.java b/eagle-core/eagle-metric/src/main/java/org/apache/eagle/metric/reportor/EagleGaugeMetric.java deleted file mode 100644 index e6fc098..0000000 --- a/eagle-core/eagle-metric/src/main/java/org/apache/eagle/metric/reportor/EagleGaugeMetric.java +++ /dev/null @@ -1,45 +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.eagle.metric.reportor; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.Arrays; -import java.util.Map; - -public class EagleGaugeMetric extends EagleMetric { - - private static final Logger LOG = LoggerFactory.getLogger(EagleGaugeMetric.class); - - public EagleGaugeMetric(long latestUserTimeClock, String name, double value) { - super(latestUserTimeClock, name, value, 0); - } - - public EagleGaugeMetric(EagleGaugeMetric metric) { - super(metric); - } - - public boolean update(double d, long currentUserTimeClock) { - value.getAndSet(d); - this.latestUserTimeClock = currentUserTimeClock; - return true; - } -} http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0ea130ef/eagle-core/eagle-metric/src/main/java/org/apache/eagle/metric/reportor/EagleMetric.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-metric/src/main/java/org/apache/eagle/metric/reportor/EagleMetric.java b/eagle-core/eagle-metric/src/main/java/org/apache/eagle/metric/reportor/EagleMetric.java deleted file mode 100644 index e45a8ce..0000000 --- a/eagle-core/eagle-metric/src/main/java/org/apache/eagle/metric/reportor/EagleMetric.java +++ /dev/null @@ -1,64 +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.eagle.metric.reportor; - -import com.google.common.util.concurrent.AtomicDouble; -import org.apache.commons.lang.time.DateUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.ArrayList; -import java.util.List; - -public abstract class EagleMetric implements IEagleMetric { - - public long latestUserTimeClock; - public AtomicDouble value; - public String name; - public long granularity; - public List metricListeners = new ArrayList<>(); - private static final Logger LOG = LoggerFactory.getLogger(EagleCounterMetric.class); - - public EagleMetric(EagleMetric metric) { - this.latestUserTimeClock = metric.latestUserTimeClock; - this.name = metric.name; - this.value = new AtomicDouble(metric.value.doubleValue()); - this.granularity = metric.granularity; - } - - public EagleMetric(long latestUserTimeClock, String name, double value, long granularity) { - this.latestUserTimeClock = latestUserTimeClock; - this.name = name; - this.value = new AtomicDouble(value); - this.granularity = granularity; - } - - public EagleMetric(long latestUserTimeClock, String metricName, double value) { - this(latestUserTimeClock, metricName, value, 5 * DateUtils.MILLIS_PER_MINUTE); - } - - public void registerListener(EagleMetricListener listener) { - metricListeners.add(listener); - } - - public Double getValue() { - return value.doubleValue(); - } -} http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0ea130ef/eagle-core/eagle-metric/src/main/java/org/apache/eagle/metric/reportor/EagleMetricKey.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-metric/src/main/java/org/apache/eagle/metric/reportor/EagleMetricKey.java b/eagle-core/eagle-metric/src/main/java/org/apache/eagle/metric/reportor/EagleMetricKey.java deleted file mode 100644 index daf6ddf..0000000 --- a/eagle-core/eagle-metric/src/main/java/org/apache/eagle/metric/reportor/EagleMetricKey.java +++ /dev/null @@ -1,28 +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.eagle.metric.reportor; - -import java.util.Map; - -public class EagleMetricKey { - public String metricName; - public Map tags; - public long timestamp; -} http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0ea130ef/eagle-core/eagle-metric/src/main/java/org/apache/eagle/metric/reportor/EagleMetricListener.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-metric/src/main/java/org/apache/eagle/metric/reportor/EagleMetricListener.java b/eagle-core/eagle-metric/src/main/java/org/apache/eagle/metric/reportor/EagleMetricListener.java deleted file mode 100644 index d8fe7b2..0000000 --- a/eagle-core/eagle-metric/src/main/java/org/apache/eagle/metric/reportor/EagleMetricListener.java +++ /dev/null @@ -1,31 +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.eagle.metric.reportor; - -import java.util.List; - -public interface EagleMetricListener { - - /** - * The method should be called in thread-safe mode - * @param metrics - */ - void onMetricFlushed(List metrics); -}