{%- if pillar.get('fluentd', {}).get('agent', {}).get('enabled', False) %}
{%- from "nova/map.jinja" import controller with context %}
{%- set positiondb = pillar.fluentd.agent.dir.positiondb %}
{%- set apache_wsgi = controller.get('enabled') and controller.version not in ('juno', 'kilo', 'liberty', 'mitaka', 'newton') %}
agent:
  config:
    label:
      forward_input:
        input:
          generic_forward_input:
            type: forward
            bind: 0.0.0.0
            port: 24224
        match:
          route_openstack_nova:
            tag: openstack.nova.**
            type: relabel
            label: openstack_nova
{%- if apache_wsgi %}
      openstack_nova_wsgi:
        input:
          nova_placement_api_wsgi_in_tail:
            type: tail
            path: /var/log/apache2/nova_placement_access.log
            tag: openstack.nova
            pos_file: {{ positiondb }}/nova_placement.wsgi.pos
            parser:
              type: regexp
              time_key: Timestamp
              time_format: '%d/%b/%Y:%H:%M:%S %z'
              keep_time_key: false
              # Apache access log custom format: https://regex101.com/r/WeCT7s/5
              format: '/(?<hostname>[\w\.\-]+)\:(?<port>\d+)\s(?<http_client_ip_address>[\d\.]+)\s\-\s\-\s\[(?<Timestamp>.*)\]\s(?<Payload>\"(?<http_method>[A-Z]+)\s(?<http_url>\S+)\s(?<http_version>[.\/\dHTFSP]+)\"\s(?<http_status>\d{3})\s(?<http_response_time>\d+)\s(?<http_response_size>\d+)\s\"(?<http_referer>.*)\"\s\"(?<user_agent>.*)\")/'
        filter:
          add_nova_palcement_wsgi_record_fields:
            tag: openstack.nova
            type: record_transformer
            enable_ruby: true
            record:
              - name: Severity
                value: 6
              - name: severity_label
                value: INFO
              - name: programname
                value: nova-placement-wsgi
                # Apache logs response time in microseconds
              - name: http_response_time
                value: ${ record['http_response_time'].to_i/10**6.to_f }
        match:
          send_to_default:
            tag: openstack.nova
            type: copy
            store:
              - type: relabel
                label: default_output
              - type: rewrite_tag_filter
                rule:
                  - name: severity_label
                    regexp: '.'
                    result: metric.nova_log_messages
              - type: rewrite_tag_filter
                rule:
                  - name: http_status
                    regexp: '.'
                    result: metric.nova_openstack_http_response
          push_to_metric:
            tag: 'metric.**'
            type: relabel
            label: default_metric
{%- endif %}
      openstack_nova:
        filter:
          set_nova_programname:
            tag: openstack.nova.*
            type: record_transformer
            enable_ruby: true
            record:
              - name: programname
                value: nova-${ tag_parts[2] }
          set_nova_fields:
            tag: openstack.nova
            type: record_transformer
            enable_ruby: true
            record:
              - name: Severity
                value: ${ {'TRACE'=>7,'DEBUG'=>7,'INFO'=>6,'AUDIT'=>6,'WARNING'=>4,'ERROR'=>3,'CRITICAL'=>2}[record['level']].to_i }
              - name: severity_label
                value: ${ record['level'] }
              - name: Payload
                value: ${ record['message'] }
              - name: python_module
                value: ${ record['name'] }
              - name: programname
                value: '${ record["programname"] ? record["programname"] : "nova" }'
          parse_http_stats:
            tag: openstack.nova
            type: parser
            key_name: Payload
            reserve_data: true
            emit_invalid_record_to_error: false
            parser:
              type: regexp
              # Parse openstack http stats: https://regex101.com/r/Tf0XUK/1/
              format: '\"(?<http_method>GET|POST|OPTIONS|DELETE|PUT|HEAD|TRACE|CONNECT|PATCH)\s(?<http_url>\S+)\s(?<http_version>[.\/\dHTFSP]+)\"\sstatus:\s(?<http_status>\d{3})\slen:\s(?<http_response_size>\d+)\stime:\s(?<http_response_time>\d+\.\d+)'
              types: http_response_time:float
        match:
          unify_tag:
            tag: openstack.nova.*
            type: rewrite_tag_filter
            rule:
              - name: level
                regexp: '.*'
                result: openstack.nova
          send_to_default:
            tag: openstack.nova
            type: copy
            store:
              - type: relabel
                label: default_output
              - type: rewrite_tag_filter
                rule:
                  - name: severity_label
                    regexp: '.'
                    result: metric.nova_log_messages
              - type: rewrite_tag_filter
                rule:
                  - name: http_status
                    regexp: '.'
                    result: metric.nova_openstack_http_response
          push_to_metric:
            tag: 'metric.**'
            type: relabel
            label: default_metric
      default_metric:
        filter:
          nova_logs_per_severity:
            tag: metric.nova_log_messages
            require:
              - add_general_fields
            type: prometheus
            metric:
              - name: log_messages
                type: counter
                desc: Total number of log lines by severity
            label:
              - name: service
                value: nova
              - name: level
                value: ${severity_label}
              - name: host
                value: ${Hostname}
          nova_openstack_http_response_times:
            tag: metric.nova_openstack_http_response
            require:
              - add_general_fields
            type: prometheus
            metric:
              - name: openstack_http_response_times
                type: summary
                desc: Total number of requests per method and status
                key: http_response_time
            label:
              - name: http_method
                value: ${http_method}
              - name: http_status
                value: ${http_status}
              - name: service
                value: nova
              - name: host
                value: ${Hostname}
{% endif %}
