# 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",
    "mode" : "local",
    "topologyName" : "SpadesMonitorTopology",
    "stormConfigFile" : "spades-monitor-storm.yaml",
    "parallelismConfig" : {
      "SpadesMonitorStream" : 1,
      "SpadesMonitorExecutor*" : 1
    }
  },
  "dataSourceConfig": {
    "topic" : "spades_monitor_sandbox",
    "zkConnection" : "sandbox.hortonworks.com:2181",
    "zkConnectionTimeoutMS" : 15000,
    "consumerGroupId" : "eagle.consumer",
    "fetchSize" : 1048586,
    "transactionZKServers" : "sandbox.hortonworks.com",
    "transactionZKPort" : 2181,
    "transactionZKRoot" : "/consumers",
    "transactionStateUpdateMS" : 2000
  },
  "alertExecutorConfigs" : {
    "SpadesMonitorExecutor" : {
      "parallelism" : 1,
      "partitioner" : "org.apache.eagle.policy.DefaultPolicyPartitioner"
      "needValidation" : "true"
    }
  },
  "eagleProps" : {
    "site" : "sandbox",
    "application": "SpadesMonitor",
    "dataJoinPollIntervalSec" : 30,
    "mailHost" : "mailHost.com",
    "mailSmtpPort":"25",
    "mailDebug" : "true",
    "balancePartitionEnabled" : true,
    #"partitionRefreshIntervalInMin" : 60,
    #"kafkaStatisticRangeInMin" : 60,
    "eagleService": {
      "host": "localhost",
      "port": 9099,
      "username": "admin",
      "password": "secret"
    }
    "readHdfsUserCommandPatternFrom" : "file"
  },
  "dynamicConfigSource" : {
    "enabled" : true,
    "initDelayMillis" : 0,
    "delayMillis" : 30000
  },
  "eagleNotificationProps" : {
    "eagleStoreEnabled": true,
    "kafka_broker":"127.0.0.1:6667"
  }
}