parameters:
  fluentd:
    agent:
      config:
        label:
          notification_messages:
            filter:
              parse_publuisher_host:
                tag: notification
                type: parser
                key_name: publisher_id
                reserve_data: true
                parser:
                  type: regexp
                  format: (?<publisher>\w+).(?<hostname>\w+)
              save_hostname:
                tag: notification
                require:
                  - parse_publuisher_host
                type: record_transformer
                enable_ruby: true
                record:
                  - name: Hostname
                    value: ${fluentd:dollar}{ record["hostname"] }
              parse_source:
                tag: notification
                require:
                  - save_hostname
                type: parser
                key_name: event_type
                reserve_data: true
                parser:
                  type: regexp
                  format: (?<event_type_logger>\w+).+
              map_logger:
                tag: notification
                require:
                  - parse_source
                type: record_transformer
                enable_ruby: true
                remove_keys: event_type_logger
                record:
                  - name: Logger
                    value: ${fluentd:dollar}{ {'volume'=>'cinder', 'snapshot'=>'cinder', 'image'=>'glance', 'orchestration'=>'heat', 'identity'=>'keystone', 'compute'=>'nova', 'compute_task'=>'nova', 'scheduler'=>'nova', 'keypair'=>'nova', 'floatingip' =>'neutron', 'security_group' =>'neutron', 'security_group_rule' =>'neutron', 'network' =>'neutron', 'port' =>'neutron', 'router' =>'neutron', 'subnet' =>'neutron', 'sahara' =>'sahara'}[record["event_type_logger"]] }
              get_payload_values:
                tag: notification
                require:
                  - map_logger
                type: record_transformer
                enable_ruby: true
                record:
                  - name: Timestamp
                    value: ${fluentd:dollar}{ DateTime.strptime(record['timestamp'], '%Y-%m-%d %H:%M:%S.%N').strftime('%Y-%m-%dT%H:%M:%S.%3NZ') }
                  - name: severity_label
                    value: ${fluentd:dollar}{ record["priority"] }
                  - name: Severity
                    value: ${fluentd:dollar}{ {'TRACE'=>7,'DEBUG'=>7,'INFO'=>6,'AUDIT'=>6,'WARNING'=>4,'ERROR'=>3,'CRITICAL'=>2}[record['priority']].to_i }
                  - name: Hostname
                    value: '${fluentd:dollar}{ record["payload"].has_key?("host") ? record["payload"]["host"] : record["Hostname"] }'
                  - name: environment_label
                    value: ${_param:cluster_domain}

                  - name: tenant_id
                    value: ${fluentd:dollar}{ record.dig("payload", "tenant_id") }
                  - name: user_id
                    value: ${fluentd:dollar}{ record.dig("payload", "user_id") }
                  - name: display_name
                    value: ${fluentd:dollar}{ record.dig("payload", "display_name") }
                  - name: vcpus
                    value: ${fluentd:dollar}{ record.dig("payload", "vcpus") }
                  - name: availability_zone
                    value: ${fluentd:dollar}{ record.dig("payload", "availability_zone") }
                  - name: instance_id
                    value: ${fluentd:dollar}{ record.dig("payload", "instance_id") }
                  - name: instance_type
                    value: ${fluentd:dollar}{ record.dig("payload", "instance_type") }
                  - name: image_name
                    value: ${fluentd:dollar}{ record.dig("payload", "image_name") }
                  - name: memory_mb
                    value: ${fluentd:dollar}{ record.dig("payload", "memory_mb") }
                  - name: disk_gb
                    value: ${fluentd:dollar}{ record.dig("payload", "disk_gb") }
                  - name: state
                    value: ${fluentd:dollar}{ record.dig("payload", "state") }
                  - name: old_state
                    value: ${fluentd:dollar}{ record.dig("payload", "old_state") }
                  - name: old_task_state
                    value: ${fluentd:dollar}{ record.dig("payload", "old_task_state") }
                  - name: new_task_state
                    value: ${fluentd:dollar}{ record.dig("payload", "new_task_state") }
                  - name: network_id
                    value: ${fluentd:dollar}{ record.dig("payload", "network_id") }
                  - name: subnet_id
                    value: ${fluentd:dollar}{ record.dig("payload", "subnet_id") }
                  - name: port_id
                    value: ${fluentd:dollar}{ record.dig("payload", "port_id") }
                  - name: volume_id
                    value: ${fluentd:dollar}{ record.dig("payload", "volume_id") }
                  - name: size
                    value: ${fluentd:dollar}{ record.dig("payload", "size") }
                  - name: status
                    value: ${fluentd:dollar}{ record.dig("payload", "status") }
                  - name: replication_status
                    value: ${fluentd:dollar}{ record.dig("payload", "replication_status") }
              pack_payload_to_json:
                tag: notification
                require:
                  - get_payload_values
                type: record_transformer
                enable_ruby: true
                remove_keys: '["timestamp", "publisher_id", "priority", "notification_type", "payload"]'
                record:
                  - name: Payload
                    value: ${fluentd:dollar}{ record["payload"].to_json }
            match:
              notifications_output:
                tag: notification
                type: elasticsearch
                host: ${_param:fluentd_elasticsearch_host}
                port: ${_param:fluentd_elasticsearch_port}
                scheme: ${_param:fluentd_elasticsearch_scheme}
                es_index_name: notification
                tag_key: Type
