EAGLE-79 Provide aggregation and persistence DSL support https://issues.apache.org/jira/browse/EAGLE-79
1. Support aggregation api 2. Support persist Api 3. Refactor AlertExecutor to be policy wide. Author: @RalphSu <suliang...@gmail.com> Reviewer: @haoch <h...@apache.org> Closes #52 Project: http://git-wip-us.apache.org/repos/asf/incubator-eagle/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-eagle/commit/da8f419c Tree: http://git-wip-us.apache.org/repos/asf/incubator-eagle/tree/da8f419c Diff: http://git-wip-us.apache.org/repos/asf/incubator-eagle/diff/da8f419c Branch: refs/heads/master Commit: da8f419c67b5ef42dcc480a19ca7ebce5a9a16b9 Parents: dd26aa4 Author: Hao Chen <h...@apache.org> Authored: Tue Jan 12 15:45:28 2016 +0800 Committer: Hao Chen <h...@apache.org> Committed: Tue Jan 12 15:45:28 2016 +0800 ---------------------------------------------------------------------- .gitignore | 4 + README.md | 2 +- eagle-assembly/src/assembly/eagle-bin.xml | 8 + .../src/main/bin/eagle-create-table.rb | 2 + .../sandbox-hbaseSecurityLog-application.conf | 2 +- .../conf/sandbox-hdfsAuditLog-application.conf | 2 +- .../conf/sandbox-hiveQueryLog-application.conf | 2 +- .../main/conf/sandbox-userprofile-topology.conf | 2 +- eagle-core/eagle-alert/eagle-alert-base/pom.xml | 5 + .../eagle/alert/common/AlertConstants.java | 64 --- .../eagle/alert/common/AlertEmailSender.java | 9 +- .../eagle/alert/dao/AlertDataSourceDAO.java | 25 -- .../eagle/alert/dao/AlertDataSourceDAOImpl.java | 63 --- .../eagle/alert/dao/AlertDefinitionDAO.java | 39 -- .../eagle/alert/dao/AlertDefinitionDAOImpl.java | 83 ---- .../eagle/alert/dao/AlertExecutorDAO.java | 26 -- .../eagle/alert/dao/AlertExecutorDAOImpl.java | 86 ---- .../apache/eagle/alert/dao/AlertStreamDAO.java | 25 -- .../eagle/alert/dao/AlertStreamDAOImpl.java | 62 --- .../eagle/alert/dao/AlertStreamSchemaDAO.java | 25 -- .../alert/dao/AlertStreamSchemaDAOImpl.java | 83 ---- .../eagle/alert/entity/AlertAPIEntity.java | 84 ---- .../alert/entity/AlertContextSerDeser.java | 98 ----- .../alert/entity/AlertDataSourceEntity.java | 67 --- .../alert/entity/AlertDefinitionAPIEntity.java | 181 -------- .../alert/entity/AlertEntityRepository.java | 32 -- .../eagle/alert/entity/AlertExecutorEntity.java | 45 -- .../eagle/alert/entity/AlertStreamEntity.java | 51 --- .../alert/entity/AlertStreamSchemaEntity.java | 111 ----- .../alert/config/AbstractPolicyDefinition.java | 42 -- .../dedup/AlertDeduplicationExecutorBase.java | 41 +- .../dedup/AlertEmailDeduplicationExecutor.java | 4 +- .../dedup/AlertEntityDeduplicationExecutor.java | 7 +- .../eagle/alert/executor/AlertExecutor.java | 41 ++ .../executor/AlertExecutorCreationUtils.java | 109 +++++ .../alert/notification/AlertEmailGenerator.java | 6 +- .../notification/AlertNotificationExecutor.java | 39 +- .../eagle/alert/notification/UrlBuilder.java | 64 --- .../alert/policy/DefaultPolicyPartitioner.java | 32 -- .../eagle/alert/policy/DynamicPolicyLoader.java | 270 ------------ .../eagle/alert/policy/PartitionUtils.java | 30 -- .../policy/PolicyDistStatsDAOLogReporter.java | 47 --- .../policy/PolicyDistributionReportMethods.java | 27 -- .../alert/policy/PolicyDistributionStats.java | 74 ---- .../policy/PolicyDistributionStatsDAO.java | 26 -- .../policy/PolicyDistroStatsLogReporter.java | 50 --- .../eagle/alert/policy/PolicyEvaluator.java | 47 --- .../policy/PolicyEvaluatorServiceProvider.java | 47 --- .../alert/policy/PolicyLifecycleMethods.java | 27 -- .../eagle/alert/policy/PolicyManager.java | 61 --- .../eagle/alert/policy/PolicyPartitioner.java | 26 -- .../eagle/alert/siddhi/AttributeType.java | 30 -- .../eagle/alert/siddhi/EagleAlertContext.java | 32 -- .../siddhi/SiddhiAlertAPIEntityRender.java | 109 +++++ .../siddhi/SiddhiAlertAPIEntityRendner.java | 100 ----- .../eagle/alert/siddhi/SiddhiAlertHandler.java | 26 -- .../alert/siddhi/SiddhiPolicyDefinition.java | 42 -- .../alert/siddhi/SiddhiPolicyEvaluator.java | 269 ------------ ...iddhiPolicyEvaluatorServiceProviderImpl.java | 45 -- .../alert/siddhi/SiddhiQueryCallbackImpl.java | 85 ---- .../alert/siddhi/SiddhiStreamMetadataUtils.java | 119 ------ .../alert/siddhi/StreamMetadataManager.java | 128 ------ .../extension/ContainsIgnoreCaseExtension.java | 87 ---- .../extension/EqualsIgnoreCaseExtension.java | 91 ---- .../RegexpIgnoreCaseFunctionExtension.java | 89 ---- .../apache/eagle/executor/AlertExecutor.java | 395 ------------------ .../executor/AlertExecutorCreationUtils.java | 134 ------ ....alert.policy.PolicyEvaluatorServiceProvider | 16 - ....eagle.policy.PolicyEvaluatorServiceProvider | 16 + .../src/main/resources/str.siddhiext | 35 -- .../eagle/alert/cep/TestSiddhiEvaluator.java | 37 +- .../alert/dao/TestAlertDefinitionDAOImpl.java | 8 +- .../dao/TestSiddhiStreamMetadataUtils.java | 7 +- .../alert/dao/TestStreamDefinitionDAOImpl.java | 4 +- .../alert/executor/TestPolicyExecutor.java | 85 ++++ .../alert/policy/TestDynamicPolicyLoader.java | 25 +- .../alert/policy/TestPolicyDistribution.java | 1 + .../policy/TestPolicyDistributionUpdater.java | 19 +- .../alert/policy/TestPolicyPartitioner.java | 1 + .../alert/siddhi/TestExternalBatchWindow.java | 307 ++++++++++++++ .../eagle/alert/siddhi/TestSiddhiEngine.java | 2 +- .../eagle/alert/siddhi/TestSiddhiStream.java | 3 +- .../src/test/resources/str.siddhiext | 6 +- .../src/test/resources/unittest.conf | 2 +- .../SiddhiAlertPolicyValidateProvider.java | 6 +- .../eagle-stream-process-api/pom.xml | 6 + .../impl/aggregate/AggregateExecutor.java | 46 ++ .../aggregate/AggregateExecutorFactory.java | 121 ++++++ .../impl/aggregate/AggregateResultRender.java | 45 ++ .../impl/aggregate/SimpleAggregateExecutor.java | 182 ++++++++ .../entity/AggregateDefinitionAPIEntity.java | 121 ++++++ .../impl/aggregate/entity/AggregateEntity.java | 43 ++ .../entity/AggregateEntityRepository.java | 28 ++ .../dataproc/impl/persist/IPersistService.java | 28 ++ .../dataproc/impl/persist/PersistExecutor.java | 84 ++++ .../druid/AggregateEntitySerializer.java | 66 +++ .../impl/persist/druid/KafkaPersistService.java | 122 ++++++ .../JavaStormExecutorForAlertWrapper.java | 8 +- .../eagle/datastream/ExecutionEnvironment.scala | 134 ++++++ .../datastream/ExecutionEnvironments.scala | 134 ------ .../datastream/core/ExecutionEnvironment.scala | 2 + .../core/StreamAggregateExpansion.scala | 82 ++++ .../datastream/core/StreamAlertExpansion.scala | 77 ++-- .../eagle/datastream/core/StreamProducer.scala | 31 +- .../eagle/datastream/core/StreamProtocol.scala | 16 +- .../datastream/storm/StormBoltFactory.scala | 6 + .../storm/StormExecutorForAlertWrapper.scala | 7 +- .../utils/AlertExecutorConsumerUtils.scala | 6 +- .../eagle/datastream/TestStreamAggregate.java | 152 +++++++ .../src/test/resources/application.conf | 19 +- .../org/apache/eagle/ml/MLAnomalyCallback.java | 4 +- .../org/apache/eagle/ml/MLPolicyEvaluator.java | 25 +- .../eagle/ml/impl/MLAnomalyCallbackImpl.java | 39 +- .../MLPolicyEvaluatorServiceProviderImpl.java | 10 +- .../eagle/ml/model/MLPolicyDefinition.java | 2 +- ....alert.policy.PolicyEvaluatorServiceProvider | 16 - ....eagle.policy.PolicyEvaluatorServiceProvider | 16 + ....alert.policy.PolicyEvaluatorServiceProvider | 16 - ....eagle.policy.PolicyEvaluatorServiceProvider | 16 + .../src/test/resources/application.conf | 2 +- .../eagle-policy/eagle-policy-base/pom.xml | 62 +++ .../entity/AbstractPolicyDefinitionEntity.java | 27 ++ .../eagle/alert/entity/AlertAPIEntity.java | 93 +++++ .../alert/entity/AlertContextSerDeser.java | 98 +++++ .../alert/entity/AlertDataSourceEntity.java | 67 +++ .../alert/entity/AlertDefinitionAPIEntity.java | 179 ++++++++ .../alert/entity/AlertEntityRepository.java | 32 ++ .../eagle/alert/entity/AlertExecutorEntity.java | 45 ++ .../eagle/alert/entity/AlertStreamEntity.java | 51 +++ .../alert/entity/AlertStreamSchemaEntity.java | 111 +++++ .../eagle/policy/DefaultPolicyPartitioner.java | 32 ++ .../eagle/policy/DynamicPolicyLoader.java | 268 ++++++++++++ .../org/apache/eagle/policy/PartitionUtils.java | 31 ++ .../policy/PolicyDistStatsDAOLogReporter.java | 47 +++ .../policy/PolicyDistributionReportMethods.java | 27 ++ .../eagle/policy/PolicyDistributionStats.java | 74 ++++ .../policy/PolicyDistributionStatsDAO.java | 26 ++ .../policy/PolicyDistroStatsLogReporter.java | 50 +++ .../eagle/policy/PolicyEvaluationContext.java | 34 ++ .../apache/eagle/policy/PolicyEvaluator.java | 51 +++ .../policy/PolicyEvaluatorServiceProvider.java | 49 +++ .../eagle/policy/PolicyLifecycleMethods.java | 27 ++ .../org/apache/eagle/policy/PolicyManager.java | 61 +++ .../apache/eagle/policy/PolicyPartitioner.java | 26 ++ .../org/apache/eagle/policy/ResultRender.java | 32 ++ .../apache/eagle/policy/common/Constants.java | 70 ++++ .../apache/eagle/policy/common/UrlBuilder.java | 63 +++ .../policy/config/AbstractPolicyDefinition.java | 42 ++ .../eagle/policy/dao/AlertDataSourceDAO.java | 25 ++ .../policy/dao/AlertDataSourceDAOImpl.java | 61 +++ .../policy/dao/AlertDefinitionDAOImpl.java | 85 ++++ .../eagle/policy/dao/AlertExecutorDAO.java | 26 ++ .../eagle/policy/dao/AlertExecutorDAOImpl.java | 88 ++++ .../apache/eagle/policy/dao/AlertStreamDAO.java | 25 ++ .../eagle/policy/dao/AlertStreamDAOImpl.java | 60 +++ .../eagle/policy/dao/AlertStreamSchemaDAO.java | 25 ++ .../policy/dao/AlertStreamSchemaDAOImpl.java | 84 ++++ .../eagle/policy/dao/PolicyDefinitionDAO.java | 42 ++ .../dao/PolicyDefinitionEntityDAOImpl.java | 96 +++++ .../eagle/policy/executor/IPolicyExecutor.java | 29 ++ .../policy/executor/PolicyProcessExecutor.java | 418 +++++++++++++++++++ .../eagle/policy/siddhi/AttributeType.java | 30 ++ .../policy/siddhi/SiddhiEvaluationHandler.java | 27 ++ .../policy/siddhi/SiddhiPolicyDefinition.java | 56 +++ .../policy/siddhi/SiddhiPolicyEvaluator.java | 270 ++++++++++++ ...iddhiPolicyEvaluatorServiceProviderImpl.java | 46 ++ .../policy/siddhi/SiddhiQueryCallbackImpl.java | 98 +++++ .../siddhi/SiddhiStreamMetadataUtils.java | 119 ++++++ .../policy/siddhi/StreamMetadataManager.java | 128 ++++++ .../extension/ContainsIgnoreCaseExtension.java | 87 ++++ .../extension/EqualsIgnoreCaseExtension.java | 91 ++++ .../ExternalTimeBatchWindowProcessor.java | 184 ++++++++ .../RegexpIgnoreCaseFunctionExtension.java | 89 ++++ ....eagle.policy.PolicyEvaluatorServiceProvider | 16 + .../src/main/resources/eagle.siddhiext | 1 + .../src/main/resources/str.siddhiext | 35 ++ .../apache/eagle/policy/dao/TestSchemaDao.java | 37 ++ eagle-core/eagle-policy/pom.xml | 37 ++ .../entity/repo/EntityRepositoryScanner.java | 2 +- .../TestHBaseWriteEntitiesPerformance.java | 2 + eagle-core/pom.xml | 1 + eagle-samples/eagle-persist-sample/pom.xml | 70 ++++ .../assembly/eagle-persist-sample-assembly.xml | 63 +++ .../eagle/persist/test/MetricSerializer.java | 31 ++ .../eagle/persist/test/PersistTopoTestMain.java | 115 +++++ .../persist/test/PersistTopoTestMain2.java | 58 +++ .../src/main/resources/application.conf | 86 ++++ .../src/main/resources/log4j.properties | 40 ++ .../main/resources/persist-test-topo-init.sh | 194 +++++++++ .../src/main/resources/persit-test-storm.yaml | 18 + eagle-samples/pom.xml | 19 + .../src/main/resources/application.conf | 2 +- .../HdfsUserCommandPatternByFileImpl.java | 1 - .../auditlog/HdfsUserCommandReassembler.java | 4 +- .../src/main/resources/application.conf | 2 +- .../src/main/resources/application.conf | 2 +- .../UserProfileMLAlgorithmEvaluator.java | 7 +- ....alert.policy.PolicyEvaluatorServiceProvider | 16 - ....eagle.policy.PolicyEvaluatorServiceProvider | 16 + .../src/main/resources/application-batch.conf | 2 +- .../src/main/resources/application-stream.conf | 2 +- ....alert.policy.PolicyEvaluatorServiceProvider | 16 - ....eagle.policy.PolicyEvaluatorServiceProvider | 16 + ....alert.policy.PolicyEvaluatorServiceProvider | 17 - ....eagle.policy.PolicyEvaluatorServiceProvider | 17 + .../src/main/resources/application.conf | 4 +- pom.xml | 1 + 207 files changed, 7231 insertions(+), 4261 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/.gitignore ---------------------------------------------------------------------- diff --git a/.gitignore b/.gitignore index fd68dd6..c51d955 100644 --- a/.gitignore +++ b/.gitignore @@ -71,3 +71,7 @@ logs/ *.log* # Mac files .DS_Store + +*.cache-tests + +*.orig http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/README.md ---------------------------------------------------------------------- diff --git a/README.md b/README.md index e92104e..c41a3bd 100755 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ Apache Eagle is an open source monitoring solution to instantly identify access For more details, please visit [https://eagle.incubator.apache.org](https://eagle.incubator.apache.org) ## Documentation -You can find the latest Eagle documentation on [https://eagle.incubator.apache.org](https://eagle.incubator.apache.org/docs). This [README](README) file only contains basic setup instructions. +You can find the latest Eagle documentation on [https://eagle.incubator.apache.org](https://eagle.incubator.apache.org/docs). This [README](README.md) file only contains basic setup instructions. ## Getting Started The fastest way to get started with Eagle is to run with [docker](https://github.com/docker/docker) by one of following options: http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-assembly/src/assembly/eagle-bin.xml ---------------------------------------------------------------------- diff --git a/eagle-assembly/src/assembly/eagle-bin.xml b/eagle-assembly/src/assembly/eagle-bin.xml index af8612c..d03af36 100644 --- a/eagle-assembly/src/assembly/eagle-bin.xml +++ b/eagle-assembly/src/assembly/eagle-bin.xml @@ -210,6 +210,14 @@ </excludes> </fileSet> + <!--<fileSet>--> + <!--<directory>${project.basedir}/../eagle-samples/eagle-persist-sample/target/</directory>--> + <!--<outputDirectory>lib/topology</outputDirectory>--> + <!--<includes>--> + <!--<include>eagle-persist-sample-*-assembly.jar</include>--> + <!--</includes>--> + <!--</fileSet>--> + <fileSet> <directory>${project.basedir}/../eagle-external/eagle-ambari</directory> <outputDirectory>lib/ambari</outputDirectory> http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-assembly/src/main/bin/eagle-create-table.rb ---------------------------------------------------------------------- diff --git a/eagle-assembly/src/main/bin/eagle-create-table.rb b/eagle-assembly/src/main/bin/eagle-create-table.rb index 2b6454b..185deb9 100644 --- a/eagle-assembly/src/main/bin/eagle-create-table.rb +++ b/eagle-assembly/src/main/bin/eagle-create-table.rb @@ -21,6 +21,7 @@ import org.apache.hadoop.hbase.client.HBaseAdmin def createEagleTable(admin, tableName) if !admin.tableExists(tableName) + # create tableName, {NAME => 'f', VERSIONS => '1', BLOOMFILTER => 'ROW', COMPRESSION => 'GZ'} create tableName, {NAME => 'f', VERSIONS => '1', BLOOMFILTER => 'ROW', COMPRESSION => 'SNAPPY'} puts "Create Table #{tableName} successfully" elsif admin.isTableDisabled(tableName) @@ -52,5 +53,6 @@ createEagleTable(admin, 'mlmodel') createEagleTable(admin, 'userprofile') createEagleTable(admin, 'hfdsusercommandpattern') createEagleTable(admin, 'serviceAudit') +createEagleTable(admin, 'aggregatedef') exit http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-assembly/src/main/conf/sandbox-hbaseSecurityLog-application.conf ---------------------------------------------------------------------- diff --git a/eagle-assembly/src/main/conf/sandbox-hbaseSecurityLog-application.conf b/eagle-assembly/src/main/conf/sandbox-hbaseSecurityLog-application.conf index 7fe2866..9909d75 100644 --- a/eagle-assembly/src/main/conf/sandbox-hbaseSecurityLog-application.conf +++ b/eagle-assembly/src/main/conf/sandbox-hbaseSecurityLog-application.conf @@ -40,7 +40,7 @@ "alertExecutorConfigs" : { "hbaseSecurityLogAlertExecutor" : { "parallelism" : 1, - "partitioner" : "org.apache.eagle.alert.policy.DefaultPolicyPartitioner" + "partitioner" : "org.apache.eagle.policy.DefaultPolicyPartitioner" "needValidation" : "true" } }, http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-assembly/src/main/conf/sandbox-hdfsAuditLog-application.conf ---------------------------------------------------------------------- diff --git a/eagle-assembly/src/main/conf/sandbox-hdfsAuditLog-application.conf b/eagle-assembly/src/main/conf/sandbox-hdfsAuditLog-application.conf index cffec42..2814890 100644 --- a/eagle-assembly/src/main/conf/sandbox-hdfsAuditLog-application.conf +++ b/eagle-assembly/src/main/conf/sandbox-hdfsAuditLog-application.conf @@ -40,7 +40,7 @@ "alertExecutorConfigs" : { "hdfsAuditLogAlertExecutor" : { "parallelism" : 1, - "partitioner" : "org.apache.eagle.alert.policy.DefaultPolicyPartitioner", + "partitioner" : "org.apache.eagle.policy.DefaultPolicyPartitioner", "needValidation" : "true" } }, http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-assembly/src/main/conf/sandbox-hiveQueryLog-application.conf ---------------------------------------------------------------------- diff --git a/eagle-assembly/src/main/conf/sandbox-hiveQueryLog-application.conf b/eagle-assembly/src/main/conf/sandbox-hiveQueryLog-application.conf index 08aed6f..f5ee0be 100644 --- a/eagle-assembly/src/main/conf/sandbox-hiveQueryLog-application.conf +++ b/eagle-assembly/src/main/conf/sandbox-hiveQueryLog-application.conf @@ -50,7 +50,7 @@ "alertExecutorConfigs" : { "hiveAccessAlertByRunningJob" : { "parallelism" : 1, - "partitioner" : "org.apache.eagle.alert.policy.DefaultPolicyPartitioner", + "partitioner" : "org.apache.eagle.policy.DefaultPolicyPartitioner", "needValidation" : "true" } }, http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-assembly/src/main/conf/sandbox-userprofile-topology.conf ---------------------------------------------------------------------- diff --git a/eagle-assembly/src/main/conf/sandbox-userprofile-topology.conf b/eagle-assembly/src/main/conf/sandbox-userprofile-topology.conf index 8b432de..e955f23 100644 --- a/eagle-assembly/src/main/conf/sandbox-userprofile-topology.conf +++ b/eagle-assembly/src/main/conf/sandbox-userprofile-topology.conf @@ -37,7 +37,7 @@ "alertExecutorConfigs" : { "userProfileAnomalyDetectionExecutor" : { "parallelism" : 1, - "partitioner" : "org.apache.eagle.alert.policy.DefaultPolicyPartitioner", + "partitioner" : "org.apache.eagle.policy.DefaultPolicyPartitioner", "needValidation":true } }, http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/pom.xml ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-alert/eagle-alert-base/pom.xml b/eagle-core/eagle-alert/eagle-alert-base/pom.xml index e9868a5..ce05d83 100644 --- a/eagle-core/eagle-alert/eagle-alert-base/pom.xml +++ b/eagle-core/eagle-alert/eagle-alert-base/pom.xml @@ -42,6 +42,11 @@ <artifactId>eagle-client-base</artifactId> <version>${project.version}</version> </dependency> + <dependency> + <groupId>eagle</groupId> + <artifactId>eagle-policy-base</artifactId> + <version>${project.version}</version> + </dependency> </dependencies> </project> http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/common/AlertConstants.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/common/AlertConstants.java b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/common/AlertConstants.java deleted file mode 100644 index 44728ea..0000000 --- a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/common/AlertConstants.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.alert.common; - -public class AlertConstants { - public final static String ALERT_SERVICE_ENDPOINT_NAME = "AlertService"; - public final static String ALERT_DEFINITION_SERVICE_ENDPOINT_NAME = "AlertDefinitionService"; - public final static String ALERT_STREAM_SCHEMA_SERVICE_ENDPOINT_NAME = "AlertStreamSchemaService"; - public final static String ALERT_DATA_SOURCE_SERVICE_ENDPOINT_NAME = "AlertDataSourceService"; - public final static String ALERT_EXECUTOR_SERVICE_ENDPOINT_NAME = "AlertExecutorService"; - public final static String ALERT_STREAM_SERVICE_ENDPOINT_NAME = "AlertStreamService"; - public static final String ALERT_EMAIL_ORIGIN_PROPERTY = "alertEmailOrigin"; - public static final String ALERT_TIMESTAMP_PROPERTY = "alertTimestamp"; - - public static final String ALERT_EMAIL_TIME_PROPERTY = "timestamp"; - public static final String ALERT_EMAIL_COUNT_PROPERTY = "count"; - public static final String ALERT_EMAIL_ALERTLIST_PROPERTY = "alertList"; - - public static final String URL = "url"; - public static final String ALERT_SOURCE = "alertSource"; - public static final String ALERT_MESSAGE = "alertMessage"; - public static final String SUBJECT = "subject"; - public static final String ALERT_EXECUTOR_ID = "alertExecutorId"; - public static final String POLICY_NAME = "policyName"; - public static final String POLICY_ID = "policyId"; - public static final String SOURCE_STREAMS = "sourceStreams"; - public static final String ALERT_EVENT = "alertEvent"; - public static final String POLICY_DETAIL_URL = "policyDetailUrl"; - public static final String ALERT_DETAIL_URL = "alertDetailUrl"; - - public static final String POLICY_DEFINITION = "policyDefinition"; - public static final String POLICY_TYPE = "policyType"; - public static final String STREAM_NAME = "streamName"; - public static final String ATTR_NAME = "attrName"; - - public static final String ALERT_EXECUTOR_CONFIGS = "alertExecutorConfigs"; - public static final String PARALLELISM = "parallelism"; - public static final String PARTITIONER = "partitioner"; - public static final String SOURCE = "source"; - public static final String PARTITIONSEQ = "partitionSeq"; - - public enum policyType { - siddhiCEPEngine, - MachineLearning; - - policyType() { - } - } - -} http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/common/AlertEmailSender.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/common/AlertEmailSender.java b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/common/AlertEmailSender.java index c812f0e..faea5be 100644 --- a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/common/AlertEmailSender.java +++ b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/common/AlertEmailSender.java @@ -22,6 +22,7 @@ import java.util.List; import java.util.Map; import org.apache.eagle.alert.email.AlertEmailContext; +import org.apache.eagle.policy.common.Constants; import org.apache.velocity.VelocityContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -146,10 +147,10 @@ public class AlertEmailSender implements Runnable { } private void generateCommonContext(VelocityContext context) { - context.put(AlertConstants.ALERT_EMAIL_TIME_PROPERTY, DateTimeUtil.millisecondsToHumanDateWithSeconds( System.currentTimeMillis() )); - context.put(AlertConstants.ALERT_EMAIL_COUNT_PROPERTY, alertContexts.size()); - context.put(AlertConstants.ALERT_EMAIL_ALERTLIST_PROPERTY, alertContexts); - context.put(AlertConstants.ALERT_EMAIL_ORIGIN_PROPERTY, origin); + context.put(Constants.ALERT_EMAIL_TIME_PROPERTY, DateTimeUtil.millisecondsToHumanDateWithSeconds( System.currentTimeMillis() )); + context.put(Constants.ALERT_EMAIL_COUNT_PROPERTY, alertContexts.size()); + context.put(Constants.ALERT_EMAIL_ALERTLIST_PROPERTY, alertContexts); + context.put(Constants.ALERT_EMAIL_ORIGIN_PROPERTY, origin); } public boolean sentSuccessfully(){ http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertDataSourceDAO.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertDataSourceDAO.java b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertDataSourceDAO.java deleted file mode 100644 index 4196d7f..0000000 --- a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertDataSourceDAO.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.alert.dao; - -import org.apache.eagle.alert.entity.AlertDataSourceEntity; - -import java.util.List; - -public interface AlertDataSourceDAO { - List<AlertDataSourceEntity> findAlertDataSourceBySite(String site) throws Exception; -} http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertDataSourceDAOImpl.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertDataSourceDAOImpl.java b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertDataSourceDAOImpl.java deleted file mode 100644 index cd125f3..0000000 --- a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertDataSourceDAOImpl.java +++ /dev/null @@ -1,63 +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.alert.dao; - -import com.typesafe.config.Config; -import org.apache.eagle.alert.common.AlertConstants; -import org.apache.eagle.alert.entity.AlertDataSourceEntity; -import org.apache.eagle.log.entity.GenericServiceAPIResponseEntity; -import org.apache.eagle.common.config.EagleConfigConstants; -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 AlertDataSourceDAOImpl implements AlertDataSourceDAO{ - private final Logger LOG = LoggerFactory.getLogger(AlertDataSourceDAOImpl.class); - private final EagleServiceConnector connector; - - public AlertDataSourceDAOImpl(EagleServiceConnector connector){ - this.connector = connector; - } - - @Override - public List<AlertDataSourceEntity> findAlertDataSourceBySite(String site) throws Exception{ - try { - IEagleServiceClient client = new EagleServiceClientImpl(connector); - String query = AlertConstants.ALERT_STREAM_SERVICE_ENDPOINT_NAME + "[@site=\"" + site + "\"]{*}"; - GenericServiceAPIResponseEntity<AlertDataSourceEntity> response = client.search() - .startTime(0) - .endTime(10 * DateUtils.MILLIS_PER_DAY) - .pageSize(Integer.MAX_VALUE) - .query(query) - .send(); - client.close(); - if (response.getException() != null) { - throw new Exception("Got an exception when query eagle service: " + response.getException()); - } - return response.getObj(); - } - catch (Exception ex) { - LOG.error("Got an exception when query stream metadata service ", ex); - throw new IllegalStateException(ex); - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertDefinitionDAO.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertDefinitionDAO.java b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertDefinitionDAO.java deleted file mode 100644 index 44f081a..0000000 --- a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertDefinitionDAO.java +++ /dev/null @@ -1,39 +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.alert.dao; - -import java.io.Serializable; -import java.util.List; -import java.util.Map; - -import org.apache.eagle.alert.entity.AlertDefinitionAPIEntity; - -public interface AlertDefinitionDAO extends Serializable{ - /** - * find list of active alert definitions for one specific site and dataSource - * @return - */ - List<AlertDefinitionAPIEntity> findActiveAlertDefs(String site, String dataSource) throws Exception; - - /** - * find map from alertExecutorId to map from policy Id to alert definition for one specific site and dataSource - * Map from alertExecutorId to map from policyId to policy definition - (site,dataSource) => Map[alertExecutorId,Map[policyId,alertDefinition]] - * @return - */ - Map<String, Map<String, AlertDefinitionAPIEntity>> findActiveAlertDefsGroupbyAlertExecutorId(String site, String dataSource) throws Exception; -} http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertDefinitionDAOImpl.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertDefinitionDAOImpl.java b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertDefinitionDAOImpl.java deleted file mode 100644 index b6f865c..0000000 --- a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertDefinitionDAOImpl.java +++ /dev/null @@ -1,83 +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.alert.dao; - -import org.apache.eagle.alert.common.AlertConstants; -import org.apache.eagle.alert.entity.AlertDefinitionAPIEntity; -import org.apache.eagle.log.entity.GenericServiceAPIResponseEntity; -import org.apache.eagle.service.client.EagleServiceConnector; -import org.apache.eagle.service.client.IEagleServiceClient; -import org.apache.eagle.service.client.impl.EagleServiceClientImpl; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * Utility methods to load alert definitions for a program - */ -public class AlertDefinitionDAOImpl implements AlertDefinitionDAO { - private final Logger LOG = LoggerFactory.getLogger(AlertDefinitionDAOImpl.class); - private final EagleServiceConnector connector; - - public AlertDefinitionDAOImpl(EagleServiceConnector connector){ - this.connector = connector; - } - - @Override - public List<AlertDefinitionAPIEntity> findActiveAlertDefs(String site, String dataSource) throws Exception { - try { - IEagleServiceClient client = new EagleServiceClientImpl(connector); - String query = AlertConstants.ALERT_DEFINITION_SERVICE_ENDPOINT_NAME + "[@site=\"" + site + "\" AND @dataSource=\"" + dataSource + "\"]{*}"; - GenericServiceAPIResponseEntity<AlertDefinitionAPIEntity> response = client.search() - .pageSize(Integer.MAX_VALUE) - .query(query) - .send(); - client.close(); - if (response.getException() != null) { - throw new Exception("Got an exception when query eagle service: " + response.getException()); - } - List<AlertDefinitionAPIEntity> list = response.getObj(); - List<AlertDefinitionAPIEntity> enabledList = new ArrayList<AlertDefinitionAPIEntity>(); - for (AlertDefinitionAPIEntity entity : list) { - if (entity.isEnabled()) enabledList.add(entity); - } - return enabledList; - } - catch (Exception ex) { - LOG.error("Got an exception when query alert Def service", ex); - throw new IllegalStateException(ex); - } - } - - @Override - public Map<String, Map<String, AlertDefinitionAPIEntity>> findActiveAlertDefsGroupbyAlertExecutorId(String site, String dataSource) throws Exception { - List<AlertDefinitionAPIEntity> list = findActiveAlertDefs(site, dataSource); - Map<String, Map<String, AlertDefinitionAPIEntity>> map = new HashMap<String, Map<String, AlertDefinitionAPIEntity>>(); - for (AlertDefinitionAPIEntity entity : list) { - String executorID = entity.getTags().get(AlertConstants.ALERT_EXECUTOR_ID); - if (map.get(executorID) == null) { - map.put(executorID, new HashMap<String, AlertDefinitionAPIEntity>()); - } - map.get(executorID).put(entity.getTags().get("policyId"), entity); - } - return map; - } -} http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertExecutorDAO.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertExecutorDAO.java b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertExecutorDAO.java deleted file mode 100644 index 7fc1469..0000000 --- a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertExecutorDAO.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.alert.dao; - -import org.apache.eagle.alert.entity.AlertExecutorEntity; - -import java.util.List; - -public interface AlertExecutorDAO { - List<AlertExecutorEntity> findAlertExecutorByDataSource(String dataSource) throws Exception; - List<AlertExecutorEntity> findAlertExecutor(String dataSource, String alertExecutorId) throws Exception; -} http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertExecutorDAOImpl.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertExecutorDAOImpl.java b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertExecutorDAOImpl.java deleted file mode 100644 index 590a9db..0000000 --- a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertExecutorDAOImpl.java +++ /dev/null @@ -1,86 +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.alert.dao; - -import org.apache.eagle.alert.common.AlertConstants; -import org.apache.eagle.alert.entity.AlertExecutorEntity; -import org.apache.eagle.log.entity.GenericServiceAPIResponseEntity; -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 AlertExecutorDAOImpl implements AlertExecutorDAO{ - private final Logger LOG = LoggerFactory.getLogger(AlertExecutorDAOImpl.class); - private final EagleServiceConnector connector; - - public AlertExecutorDAOImpl(EagleServiceConnector connector){ - this.connector = connector; - } - - @Override - public List<AlertExecutorEntity> findAlertExecutorByDataSource(String dataSource) throws Exception{ - try { - IEagleServiceClient client = new EagleServiceClientImpl(connector); - String query = AlertConstants.ALERT_EXECUTOR_SERVICE_ENDPOINT_NAME + "[@dataSource=\"" + dataSource + "\"]{*}"; - GenericServiceAPIResponseEntity<AlertExecutorEntity> response = client.search() - .startTime(0) - .endTime(10 * DateUtils.MILLIS_PER_DAY) - .pageSize(Integer.MAX_VALUE) - .query(query) - .send(); - client.close(); - if (response.getException() != null) { - throw new Exception("Got an exception when query eagle service: " + response.getException()); - } - return response.getObj(); - } - catch (Exception ex) { - LOG.error("Got an exception when query stream metadata service ", ex); - throw new IllegalStateException(ex); - } - } - - @Override - public List<AlertExecutorEntity> findAlertExecutor(String dataSource, String alertExecutorId) throws Exception{ - try { - IEagleServiceClient client = new EagleServiceClientImpl(connector); - String query = AlertConstants.ALERT_EXECUTOR_SERVICE_ENDPOINT_NAME + "[@dataSource=\"" + dataSource + "\"" - + " AND @alertExecutorId=\"" + alertExecutorId + "\"" - + "]{*}"; - GenericServiceAPIResponseEntity<AlertExecutorEntity> response = client.search() - .startTime(0) - .endTime(10 * DateUtils.MILLIS_PER_DAY) - .pageSize(Integer.MAX_VALUE) - .query(query) - .send(); - client.close(); - if (response.getException() != null) { - throw new Exception("Got an exception when query eagle service: " + response.getException()); - } - return response.getObj(); - } - catch (Exception ex) { - LOG.error("Got an exception when query stream metadata service ", ex); - throw new IllegalStateException(ex); - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertStreamDAO.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertStreamDAO.java b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertStreamDAO.java deleted file mode 100644 index 17bdef0..0000000 --- a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertStreamDAO.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.alert.dao; - -import org.apache.eagle.alert.entity.AlertStreamEntity; - -import java.util.List; - -public interface AlertStreamDAO { - List<AlertStreamEntity> findAlertStreamByDataSource(String dataSource) throws Exception; -} http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertStreamDAOImpl.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertStreamDAOImpl.java b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertStreamDAOImpl.java deleted file mode 100644 index 95ac2a9..0000000 --- a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertStreamDAOImpl.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.alert.dao; - -import com.typesafe.config.Config; -import org.apache.eagle.alert.common.AlertConstants; -import org.apache.eagle.alert.entity.AlertStreamEntity; -import org.apache.eagle.common.config.EagleConfigConstants; -import org.apache.eagle.log.entity.GenericServiceAPIResponseEntity; -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 AlertStreamDAOImpl implements AlertStreamDAO{ - private final Logger LOG = LoggerFactory.getLogger(AlertStreamDAOImpl.class); - private final EagleServiceConnector connector; - - public AlertStreamDAOImpl(EagleServiceConnector connector){ - this.connector = connector; - } - - public List<AlertStreamEntity> findAlertStreamByDataSource(String dataSource) throws Exception{ - try { - IEagleServiceClient client = new EagleServiceClientImpl(connector); - String query = AlertConstants.ALERT_STREAM_SERVICE_ENDPOINT_NAME + "[@dataSource=\"" + dataSource + "\"]{*}"; - GenericServiceAPIResponseEntity<AlertStreamEntity> response = client.search() - .startTime(0) - .endTime(10 * DateUtils.MILLIS_PER_DAY) - .pageSize(Integer.MAX_VALUE) - .query(query) - .send(); - client.close(); - if (response.getException() != null) { - throw new Exception("Got an exception when query eagle service: " + response.getException()); - } - return response.getObj(); - } - catch (Exception ex) { - LOG.error("Got an exception when query stream metadata service ", ex); - throw new IllegalStateException(ex); - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertStreamSchemaDAO.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertStreamSchemaDAO.java b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertStreamSchemaDAO.java deleted file mode 100644 index 0e69d89..0000000 --- a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertStreamSchemaDAO.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.alert.dao; - -import java.util.List; - -import org.apache.eagle.alert.entity.AlertStreamSchemaEntity; - -public interface AlertStreamSchemaDAO { - List<AlertStreamSchemaEntity> findAlertStreamSchemaByDataSource(String dataSource) throws Exception; -} http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertStreamSchemaDAOImpl.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertStreamSchemaDAOImpl.java b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertStreamSchemaDAOImpl.java deleted file mode 100644 index 4c252b7..0000000 --- a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertStreamSchemaDAOImpl.java +++ /dev/null @@ -1,83 +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.alert.dao; - -import com.typesafe.config.Config; -import org.apache.eagle.alert.common.AlertConstants; -import org.apache.eagle.alert.entity.AlertStreamSchemaEntity; -import org.apache.eagle.common.config.EagleConfigConstants; -import org.apache.eagle.log.entity.GenericServiceAPIResponseEntity; -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 AlertStreamSchemaDAOImpl implements AlertStreamSchemaDAO { - private final Logger LOG = LoggerFactory.getLogger(AlertStreamSchemaDAOImpl.class); - - private final String eagleServiceHost; - private final Integer eagleServicePort; - private String username; - private String password; - - public AlertStreamSchemaDAOImpl(String eagleServiceHost, Integer eagleServicePort) { - this(eagleServiceHost, eagleServicePort, null, null); - } - - public AlertStreamSchemaDAOImpl(String eagleServiceHost, Integer eagleServicePort, String username, String password) { - this.eagleServiceHost = eagleServiceHost; - this.eagleServicePort = eagleServicePort; - this.username = username; - this.password = password; - } - - public AlertStreamSchemaDAOImpl(Config config) { - this.eagleServiceHost = config.getString(EagleConfigConstants.EAGLE_PROPS + "." + EagleConfigConstants.EAGLE_SERVICE + "." + EagleConfigConstants.HOST); - this.eagleServicePort = config.getInt(EagleConfigConstants.EAGLE_PROPS + "." + EagleConfigConstants.EAGLE_SERVICE + "." + EagleConfigConstants.PORT); - if (config.hasPath(EagleConfigConstants.EAGLE_PROPS + "." + EagleConfigConstants.EAGLE_SERVICE + "." + EagleConfigConstants.USERNAME) && - config.hasPath(EagleConfigConstants.EAGLE_PROPS + "." + EagleConfigConstants.EAGLE_SERVICE + "." + EagleConfigConstants.PASSWORD)) { - this.username = config.getString(EagleConfigConstants.EAGLE_PROPS + "." + EagleConfigConstants.EAGLE_SERVICE + "." + EagleConfigConstants.USERNAME); - this.password = config.getString(EagleConfigConstants.EAGLE_PROPS + "." + EagleConfigConstants.EAGLE_SERVICE + "." + EagleConfigConstants.PASSWORD); - } - } - - @Override - public List<AlertStreamSchemaEntity> findAlertStreamSchemaByDataSource(String dataSource) throws Exception { - try { - IEagleServiceClient client = new EagleServiceClientImpl(eagleServiceHost, eagleServicePort, username, password); - String query = AlertConstants.ALERT_STREAM_SCHEMA_SERVICE_ENDPOINT_NAME + "[@dataSource=\"" + dataSource + "\"]{*}"; - GenericServiceAPIResponseEntity<AlertStreamSchemaEntity> response = client.search() - .startTime(0) - .endTime(10 * DateUtils.MILLIS_PER_DAY) - .pageSize(Integer.MAX_VALUE) - .query(query) - .send(); - client.close(); - if (response.getException() != null) { - throw new Exception("Got an exception when query eagle service: " + response.getException()); - } - return response.getObj(); - } - catch (Exception ex) { - LOG.error("Got an exception when query stream metadata service ", ex); - throw new IllegalStateException(ex); - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertAPIEntity.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertAPIEntity.java b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertAPIEntity.java deleted file mode 100644 index 7b51f8d..0000000 --- a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertAPIEntity.java +++ /dev/null @@ -1,84 +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.alert.entity; - -import org.apache.eagle.alert.common.AlertConstants; -import org.apache.eagle.common.metric.AlertContext; -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.TimeSeries; - -@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL) -@Table("alertdetail") -@ColumnFamily("f") -@Prefix("hadoop") -@Service(AlertConstants.ALERT_SERVICE_ENDPOINT_NAME) -@TimeSeries(true) -@JsonIgnoreProperties(ignoreUnknown = true) -public class AlertAPIEntity extends TaggedLogAPIEntity{ - @Column("description") - private String description; - @Column("remediationID") - private String remediationID; - @Column("remediationCallback") - private String remediationCallback; - @Column("alertContext") - private AlertContext alertContext; - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - _pcs.firePropertyChange("description", null, null); - } - - public String getRemediationID() { - return remediationID; - } - - public void setRemediationID(String remediationID) { - this.remediationID = remediationID; - _pcs.firePropertyChange("remediationID", null, null); - } - - public String getRemediationCallback() { - return remediationCallback; - } - - public void setRemediationCallback(String remediationCallback) { - this.remediationCallback = remediationCallback; - _pcs.firePropertyChange("remediationCallback", null, null); - } - - public AlertContext getAlertContext() { - return alertContext; - } - - public void setAlertContext(AlertContext alertContext) { - this.alertContext = alertContext; - _pcs.firePropertyChange("alertContext", null, null); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertContextSerDeser.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertContextSerDeser.java b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertContextSerDeser.java deleted file mode 100644 index f001725..0000000 --- a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertContextSerDeser.java +++ /dev/null @@ -1,98 +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.alert.entity; - -import java.util.HashMap; -import java.util.Map; -import java.util.Map.Entry; - -import org.apache.eagle.common.metric.AlertContext; -import org.apache.hadoop.hbase.util.Bytes; - -import org.apache.eagle.log.entity.meta.EntitySerDeser; - -public class AlertContextSerDeser implements EntitySerDeser<AlertContext> { - - @Override - public AlertContext deserialize(byte[] bytes) { - AlertContext context = new AlertContext(); - Map<String, String> properties = new HashMap<String, String>(); - final int length = bytes.length; - if (length < 4) { return context; } - int size = Bytes.toInt(bytes, 0, 4); - - int offset = 4; - for (int i = 0; i < size; i++) { - int keySize = Bytes.toInt(bytes, offset, 4); - offset += 4; - int valueSize = Bytes.toInt(bytes, offset, 4); - offset += 4; - String key = Bytes.toString(bytes, offset, keySize); - offset += keySize; - String value =Bytes.toString(bytes, offset, valueSize); - offset += valueSize; - properties.put(key, value); - } - context.addAll(properties); - return context; - } - - @Override - public byte[] serialize(AlertContext context) { - - final Map<String, String> pair = context.getProperties(); - int totalSize = 4; - for (Entry<String, String> entry : pair.entrySet()) { - String key = entry.getKey(); - String value = entry.getValue(); - int keySize = 0; - if(key!=null) keySize = key.getBytes().length; - int valueSize = 0; - if(value!=null) valueSize = value.getBytes().length; - totalSize += keySize + valueSize + 8; - } - byte[] buffer = new byte[totalSize]; - - Bytes.putInt(buffer, 0, pair.size()); - int offset = 4; - for (Entry<String, String> entry : pair.entrySet()) { - String key = entry.getKey(); - String value = entry.getValue(); - - int keySize = key !=null ? key.getBytes().length : 0; - int valueSize = value != null ? value.getBytes().length:0; - - Bytes.putInt(buffer, offset, keySize); - offset += 4; - Bytes.putInt(buffer, offset, valueSize); - offset += 4; - - - Bytes.putBytes(buffer, offset, key != null ? key.getBytes() : new byte[0], 0, keySize); - offset += keySize; - Bytes.putBytes(buffer, offset, value != null ? value.getBytes() : new byte[0], 0, valueSize); - offset += valueSize; - } - return buffer; - } - - - @Override - public Class<AlertContext> type(){ - return AlertContext.class; - } -} http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertDataSourceEntity.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertDataSourceEntity.java b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertDataSourceEntity.java deleted file mode 100644 index ec7d432..0000000 --- a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertDataSourceEntity.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.alert.entity; - -import org.apache.eagle.alert.common.AlertConstants; -import org.apache.eagle.log.base.taggedlog.TaggedLogAPIEntity; -import org.apache.eagle.log.entity.meta.*; -import org.codehaus.jackson.annotate.JsonIgnoreProperties; -import org.codehaus.jackson.map.annotate.JsonSerialize; - -@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL) -@Table("alertDataSource") -@ColumnFamily("f") -@Prefix("alertDataSource") -@Service(AlertConstants.ALERT_DATA_SOURCE_SERVICE_ENDPOINT_NAME) -@JsonIgnoreProperties(ignoreUnknown = true) -@TimeSeries(false) -@Tags({"site", "dataSource"}) -public class AlertDataSourceEntity extends TaggedLogAPIEntity{ - @Column("a") - private boolean enabled; - @Column("b") - private String config; - @Column("c") - private String desc; - - public String getConfig() { - return config; - } - - public void setConfig(String config) { - this.config = config; - valueChanged("config"); - } - - public boolean isEnabled() { - return enabled; - } - - public void setEnabled(boolean enabled) { - this.enabled = enabled; - valueChanged("enabled"); - } - - public String getDesc() { - return desc; - } - - public void setDesc(String desc) { - this.desc = desc; - valueChanged("desc"); - } -} http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertDefinitionAPIEntity.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertDefinitionAPIEntity.java b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertDefinitionAPIEntity.java deleted file mode 100644 index 61a5ae2..0000000 --- a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertDefinitionAPIEntity.java +++ /dev/null @@ -1,181 +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.alert.entity; - -import org.apache.eagle.alert.common.AlertConstants; -import org.apache.commons.lang.builder.HashCodeBuilder; -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.Index; -import org.apache.eagle.log.entity.meta.Indexes; -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; - -/** - * site: site name - * dataSource: data source name - * - * alertExecutorId: Group Policy by alertExecutorId, the policy definition with the sample ["site", "dataSource", "alertExecutorId"] should run on the sample alert executor - * - * policyId: policy name, should be unique - * policyType: policy engine implementation type - */ -@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL) -@Table("alertdef") -@ColumnFamily("f") -@Prefix("alertdef") -@Service(AlertConstants.ALERT_DEFINITION_SERVICE_ENDPOINT_NAME) -@JsonIgnoreProperties(ignoreUnknown = true) -@TimeSeries(false) -@Tags({"site", "dataSource", "alertExecutorId", "policyId", "policyType"}) -@Indexes({ - @Index(name="Index_1_alertExecutorId", columns = { "alertExecutorID" }, unique = true), -}) -public class AlertDefinitionAPIEntity extends TaggedLogAPIEntity{ - @Column("a") - private String desc; - @Column("b") - private String policyDef; - @Column("c") - private String dedupeDef; - @Column("d") - private String notificationDef; - @Column("e") - private String remediationDef; - @Column("f") - private boolean enabled; - @Column("g") - private String owner; - @Column("h") - private long lastModifiedDate; - @Column("i") - private long severity; - @Column("j") - private long createdTime; - - public String getDesc() { - return desc; - } - public void setDesc(String desc) { - this.desc = desc; - valueChanged("desc"); - } - public String getPolicyDef() { - return policyDef; - } - public void setPolicyDef(String policyDef) { - this.policyDef = policyDef; - valueChanged("policyDef"); - } - public String getDedupeDef() { - return dedupeDef; - } - public void setDedupeDef(String dedupeDef) { - this.dedupeDef = dedupeDef; - valueChanged("dedupeDef"); - } - public String getNotificationDef() { - return notificationDef; - } - public void setNotificationDef(String notificationDef) { - this.notificationDef = notificationDef; - valueChanged("notificationDef"); - } - public String getRemediationDef() { - return remediationDef; - } - public void setRemediationDef(String remediationDef) { - this.remediationDef = remediationDef; - valueChanged("remediationDef"); - } - public boolean isEnabled() { - return enabled; - } - public void setEnabled(boolean enabled) { - this.enabled = enabled; - valueChanged("enabled"); - } - public String getOwner() { - return owner; - } - public void setOwner(String owner) { - this.owner = owner; - valueChanged("owner"); - } - public long getLastModifiedDate() { - return lastModifiedDate; - } - public void setLastModifiedDate(long lastModifiedDate) { - this.lastModifiedDate = lastModifiedDate; - valueChanged("lastModifiedDate"); - } - public long getSeverity() { - return severity; - } - public void setSeverity(long severity) { - this.severity = severity; - valueChanged("severity"); - } - public long getCreatedTime() { - return createdTime; - } - public void setCreatedTime(long createdTime) { - this.createdTime = createdTime; - valueChanged("createdTime"); - } - public boolean equals(Object o){ - if(o == this) - return true; - if(!(o instanceof AlertDefinitionAPIEntity)) - return false; - AlertDefinitionAPIEntity that = (AlertDefinitionAPIEntity)o; - if(that.enabled == this.enabled && - compare(that.policyDef, this.policyDef) && - compare(that.dedupeDef, this.dedupeDef) && - compare(that.notificationDef, this.notificationDef) && - compare(that.remediationDef, this.remediationDef)) - return true; - return false; - } - - private boolean compare(String a, String b){ - if(a == b) - return true; - if(a == null || b == null) - return false; - if(a.equals(b)) - return true; - return false; - } - - public int hashCode(){ - HashCodeBuilder builder = new HashCodeBuilder(); - builder.append(enabled); - builder.append(policyDef); - builder.append(dedupeDef); - builder.append(notificationDef); - builder.append(remediationDef); - return builder.toHashCode(); - } -} http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertEntityRepository.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertEntityRepository.java b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertEntityRepository.java deleted file mode 100644 index ad518e9..0000000 --- a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertEntityRepository.java +++ /dev/null @@ -1,32 +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.alert.entity; - -import org.apache.eagle.common.metric.AlertContext; -import org.apache.eagle.log.entity.repo.EntityRepository; - -public class AlertEntityRepository extends EntityRepository { - public AlertEntityRepository() { - serDeserMap.put(AlertContext.class, new AlertContextSerDeser()); - entitySet.add(AlertAPIEntity.class); - entitySet.add(AlertDefinitionAPIEntity.class); - entitySet.add(AlertStreamSchemaEntity.class); - entitySet.add(AlertStreamEntity.class); - entitySet.add(AlertDataSourceEntity.class); - entitySet.add(AlertExecutorEntity.class); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertExecutorEntity.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertExecutorEntity.java b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertExecutorEntity.java deleted file mode 100644 index 60d51c7..0000000 --- a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertExecutorEntity.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.alert.entity; - -import org.apache.eagle.alert.common.AlertConstants; -import org.apache.eagle.log.base.taggedlog.TaggedLogAPIEntity; -import org.apache.eagle.log.entity.meta.*; -import org.codehaus.jackson.annotate.JsonIgnoreProperties; -import org.codehaus.jackson.map.annotate.JsonSerialize; - -@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL) -@Table("alertExecutor") -@ColumnFamily("f") -@Prefix("alertExecutor") -@Service(AlertConstants.ALERT_EXECUTOR_SERVICE_ENDPOINT_NAME) -@JsonIgnoreProperties(ignoreUnknown = true) -@TimeSeries(false) -@Tags({"dataSource", "alertExecutorId", "streamName"}) -public class AlertExecutorEntity extends TaggedLogAPIEntity{ - @Column("a") - private String desc; - - public String getDesc() { - return desc; - } - - public void setDesc(String desc) { - this.desc = desc; - valueChanged("desc"); - } -} http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertStreamEntity.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertStreamEntity.java b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertStreamEntity.java deleted file mode 100644 index f0f2c7b..0000000 --- a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertStreamEntity.java +++ /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. - */ -package org.apache.eagle.alert.entity; - -import org.apache.eagle.alert.common.AlertConstants; -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; - -@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL) -@Table("alertStream") -@ColumnFamily("f") -@Prefix("alertStream") -@Service(AlertConstants.ALERT_STREAM_SERVICE_ENDPOINT_NAME) -@JsonIgnoreProperties(ignoreUnknown = true) -@TimeSeries(false) -@Tags({"dataSource", "streamName"}) -public class AlertStreamEntity extends TaggedLogAPIEntity{ - @Column("a") - private String desc; - - public String getDesc() { - return desc; - } - public void setDesc(String desc) { - this.desc = desc; - valueChanged("desc"); - } -} http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertStreamSchemaEntity.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertStreamSchemaEntity.java b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertStreamSchemaEntity.java deleted file mode 100644 index 76b6097..0000000 --- a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertStreamSchemaEntity.java +++ /dev/null @@ -1,111 +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.alert.entity; - -import org.apache.eagle.alert.common.AlertConstants; -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 to create streammetadata table - * - * create 'alertStreamSchema', {NAME => 'f', BLOOMFILTER => 'ROW', VERSIONS => '1', COMPRESSION => 'SNAPPY'} - */ -@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL) -@Table("alertStreamSchema") -@ColumnFamily("f") -@Prefix("alertStreamSchema") -@Service(AlertConstants.ALERT_STREAM_SCHEMA_SERVICE_ENDPOINT_NAME) -@JsonIgnoreProperties(ignoreUnknown = true) -@TimeSeries(false) -@Tags({"dataSource", "streamName", "attrName"}) -public class AlertStreamSchemaEntity extends TaggedLogAPIEntity{ - @Column("a") - private String attrType; - @Column("b") - private String category; - @Column("c") - private String attrValueResolver; - /* all tags form the key for alert de-duplication */ - @Column("d") - private Boolean usedAsTag; - @Column("e") - private String attrDescription; - @Column("f") - private String attrDisplayName; - @Column("g") - private String defaultValue; - - public String getAttrType() { - return attrType; - } - public void setAttrType(String attrType) { - this.attrType = attrType; - valueChanged("attrType"); - } - public String getCategory() { - return category; - } - public void setCategory(String category) { - this.category = category; - valueChanged("category"); - } - public String getAttrValueResolver() { - return attrValueResolver; - } - public void setAttrValueResolver(String attrValueResolver) { - this.attrValueResolver = attrValueResolver; - valueChanged("attrValueResolver"); - } - public Boolean getUsedAsTag() { - return usedAsTag; - } - public void setUsedAsTag(Boolean usedAsTag) { - this.usedAsTag = usedAsTag; - valueChanged("usedAsTag"); - } - public String getAttrDescription() { - return attrDescription; - } - public void setAttrDescription(String attrDescription) { - this.attrDescription = attrDescription; - valueChanged("attrDescription"); - } - public String getAttrDisplayName() { - return attrDisplayName; - } - public void setAttrDisplayName(String attrDisplayName) { - this.attrDisplayName = attrDisplayName; - valueChanged("attrDisplayName"); - } - public String getDefaultValue() { - return defaultValue; - } - public void setDefaultValue(String defaultValue) { - this.defaultValue = defaultValue; - valueChanged("defaultValue"); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-process/src/main/java/org/apache/eagle/alert/config/AbstractPolicyDefinition.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-alert/eagle-alert-process/src/main/java/org/apache/eagle/alert/config/AbstractPolicyDefinition.java b/eagle-core/eagle-alert/eagle-alert-process/src/main/java/org/apache/eagle/alert/config/AbstractPolicyDefinition.java deleted file mode 100644 index 9a9a9e2..0000000 --- a/eagle-core/eagle-alert/eagle-alert-process/src/main/java/org/apache/eagle/alert/config/AbstractPolicyDefinition.java +++ /dev/null @@ -1,42 +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.alert.config; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonTypeInfo; - -/** - * base fields for all policy definition - */ -@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "type", visible=true) -@JsonIgnoreProperties(ignoreUnknown = true) -public class AbstractPolicyDefinition { - private String type; - /** - * @return type in string - */ - public String getType() { - return type; - } - - /** - * @param type set type value - */ - public void setType(String type) { - this.type = type; - } -} \ No newline at end of file