# 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.

cluster.name=cl1
logsearch.config.zk_connect_string=localhost:2181

logfeeder.metrics.collector.hosts=
logfeeder.checkpoint.folder=${LOGFEEDER_RELATIVE_LOCATION:}target/checkpoints
logfeeder.config.dir=${LOGFEEDER_RELATIVE_LOCATION:}target/classes/log-samples/shipper-conf/
logfeeder.config.files=${LOGFEEDER_RELATIVE_LOCATION:}target/classes/log-samples/shipper-conf/global.config.json,\
 ${LOGFEEDER_RELATIVE_LOCATION:}target/classes/log-samples/shipper-conf/output.config-sample.json

logfeeder.log.filter.enable=true
logfeeder.include.default.level=FATAL,ERROR,WARN,INFO,DEBUG,TRACE,UNKNOWN

logfeeder.solr.zk_connect_string=localhost:2181

logfeeder.cache.enabled=true
logfeeder.cache.size=100
logfeeder.cache.key.field=log_message
logfeeder.cache.dedup.interval=1000
logfeeder.cache.last.dedup.enabled=true

#logfeeder tmp dir
logfeeder.tmp.dir=${LOGFEEDER_RELATIVE_LOCATION:}target/tmp

#logfeeder.configs.local.enabled=true
#logfeeder.configs.filter.solr.enabled=true
#logfeeder.docker.registry.enabled=true

logfeeder.cloud.storage.mode=default
#logfeeder.cloud.storage.mode=cloud
logfeeder.cloud.storage.destination=s3
logfeeder.cloud.storage.uploader.interval.seconds=1
logfeeder.cloud.storage.upload.on.shutdown=true
logfeeder.cloud.storage.base.path=/apps/logfeeder
logfeeder.cloud.storage.use.hdfs.client=true
logfeeder.cloud.storage.use.filters=false

logfeeder.cloud.storage.bucket=logfeeder
logfeeder.cloud.storage.bucket.bootstrap=true

logfeeder.cloud.rollover.archive.base.dir=target/tmp
logfeeder.cloud.rollover.threshold.min=1000
logfeeder.cloud.rollover.threshold.size=1
logfeeder.cloud.rollover.threshold.size.unit=K
logfeeder.cloud.rollover.immediate.flush=true
logfeeder.cloud.rollover.use.gzip=true

logfeeder.hdfs.host=c7401.ambari.apache.org
logfeeder.hdfs.port=8020
logfeeder.hdfs.user=hdfs

logfeeder.s3.endpoint=http://localhost:4569
logfeeder.s3.secret.key=MySecretKey
logfeeder.s3.access.key=MyAccessKey
logfeeder.s3.object.acl=public-read
logfeeder.s3.path.style.access=true
logfeeder.s3.multiobject.delete.enable=false

fs.s3a.acl.default=PublicReadWrite
