#
# Cookbook:: irrigate-fluentd
# Recipe:: supervisor
#
# Copyright: The Orchard
#

include_recipe 'td-agent::default'

# Grant read access to supervisor logs and configure sources and filters for supervisor log files
if node['fluentd']['supervisor_logs'] && !node['fluentd']['supervisor_logs'].empty?
  node['fluentd']['supervisor_logs'].each do |log_name, log_info|
    logs_path = node['fluentd']['supervisor_logs_path']

    directory logs_path do
      mode '0755'
    end

    td_agent_source "source-supervisor-#{log_name}" do
      type 'tail'
      tag "supervisor.#{log_name}"
      parameters(
        format: log_info['format'],
        time_format: log_info['time_format'],
        path: "#{logs_path}/#{log_name}")
    end

    td_agent_filter "filter-supervisor-#{log_name}" do
      type 'record_transformer'
      tag "supervisor.#{log_name}"
      parameters(
        record: [{
          host_name: node['fqdn'],
          host_ip: node['ipaddress'],
          log_type: 'supervisor',
          log_name: log_name,
        }]
      )
    end
  end
end
