# Copyright 2017-present Open Networking Foundation
#
# Licensed 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.

apiVersion: v1
data:
  fluentd.conf: |

    #   Uncomment this source in environments where voltha services are forwarding logs to the fluentd port directly.
    #    <source>
    #      @type forward
    #      port 24224
    #    </source>

    <source>
      @id fluentd-containers.log
      @type tail
      path /var/log/containers/*.log
      exclude_path ["/var/log/containers/*kube-system*.log"]
      pos_file /var/log/containers/ag-containers.log.pos
      time_format %Y-%m-%dT%H:%M:%S.%NZ
      tag voltha.*
      log_level debug
      format json
      read_from_head true
    </source>
    <match **>
      @type forward
      heartbeat_type tcp

      # primary host
      <server>
        host fluentdactv
        port 24224
      </server>
      # use secondary host
      <server>
        host fluentdstby
        port 24224
        standby
      </server>
      # use longer flush_interval to reduce CPU usage.
      # note that this is a trade-off against latency.
      flush_interval 60s
    </match>

  fluentd-agg.conf: |
    <source>
      @type forward
      port 24224
    </source>
    <match **>
      @type file

      path /fluentd/log/voltha
      buffer_path /fluentd/log/*.log
      append true
      time_slice_wait 10m
      time_format %Y%m%dT%H%M%S%z
      time_slice_format %Y%m%d%H
    </match>
kind: ConfigMap
metadata:
  name: fluentd-config
  namespace: {{ .Values.global.namespace }}
