<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--
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.
-->
<flowController>
  <maxTimerDrivenThreadCount>10</maxTimerDrivenThreadCount>
  <maxEventDrivenThreadCount>5</maxEventDrivenThreadCount>
  <rootGroup>
    <id>fe4a3a42-53b6-4af1-a80d-6fdfe60de97f</id>
    <name>NiFi Flow</name>
    <position x="0.0" y="0.0"/>
    <comment/>
    <processor>
      <id>291ee60c-0b91-4524-88c0-d71ee2498e02</id>
      <name>ListenSyslog</name>
      <position x="2489.369384765625" y="788.25244140625"/>
      <styles/>
      <comment/>
      <class>org.apache.nifi.processors.standard.ListenSyslog</class>
      <maxConcurrentTasks>1</maxConcurrentTasks>
      <schedulingPeriod>0 sec</schedulingPeriod>
      <penalizationPeriod>30 sec</penalizationPeriod>
      <yieldPeriod>1 sec</yieldPeriod>
      <bulletinLevel>WARN</bulletinLevel>
      <lossTolerant>false</lossTolerant>
      <scheduledState>RUNNING</scheduledState>
      <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
      <runDurationNanos>0</runDurationNanos>
      <property>
        <name>Protocol</name>
        <value>UDP</value>
      </property>
      <property>
        <name>Port</name>
        <value>514</value>
      </property>
      <property>
        <name>SSL Context Service</name>
      </property>
      <property>
        <name>Receive Buffer Size</name>
        <value>65507 B</value>
      </property>
      <property>
        <name>Max Size of Socket Buffer</name>
        <value>1 MB</value>
      </property>
      <property>
        <name>Max Number of TCP Connections</name>
        <value>2</value>
      </property>
      <property>
        <name>Max Batch Size</name>
        <value>10</value>
      </property>
      <property>
        <name>Message Delimiter</name>
        <value>\n</value>
      </property>
      <property>
        <name>Parse Messages</name>
        <value>false</value>
      </property>
      <property>
        <name>Character Set</name>
        <value>UTF-8</value>
      </property>
      <autoTerminatedRelationship>invalid</autoTerminatedRelationship>
    </processor>
    <processor>
      <id>12e3dece-dde5-44a2-8691-6d6bb2fab147</id>
      <name>LogAttribute</name>
      <position x="3236.369384765625" y="830.25244140625"/>
      <styles/>
      <comment/>
      <class>org.apache.nifi.processors.standard.LogAttribute</class>
      <maxConcurrentTasks>1</maxConcurrentTasks>
      <schedulingPeriod>0 sec</schedulingPeriod>
      <penalizationPeriod>30 sec</penalizationPeriod>
      <yieldPeriod>1 sec</yieldPeriod>
      <bulletinLevel>WARN</bulletinLevel>
      <lossTolerant>false</lossTolerant>
      <scheduledState>RUNNING</scheduledState>
      <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
      <runDurationNanos>0</runDurationNanos>
      <property>
        <name>Log Level</name>
        <value>info</value>
      </property>
      <property>
        <name>Log Payload</name>
        <value>false</value>
      </property>
      <property>
        <name>Attributes to Log</name>
      </property>
      <property>
        <name>Attributes to Ignore</name>
      </property>
      <property>
        <name>Log prefix</name>
      </property>
      <autoTerminatedRelationship>success</autoTerminatedRelationship>
    </processor>
    <connection>
      <id>c9e1cc50-2bc7-490d-9b5d-8c5dbc95a850</id>
      <name/>
      <bendPoints/>
      <labelIndex>1</labelIndex>
      <zIndex>0</zIndex>
      <sourceId>291ee60c-0b91-4524-88c0-d71ee2498e02</sourceId>
      <sourceGroupId>fe4a3a42-53b6-4af1-a80d-6fdfe60de97f</sourceGroupId>
      <sourceType>PROCESSOR</sourceType>
      <destinationId>12e3dece-dde5-44a2-8691-6d6bb2fab147</destinationId>
      <destinationGroupId>fe4a3a42-53b6-4af1-a80d-6fdfe60de97f</destinationGroupId>
      <destinationType>PROCESSOR</destinationType>
      <relationship>success</relationship>
      <maxWorkQueueSize>0</maxWorkQueueSize>
      <maxWorkQueueDataSize>0 MB</maxWorkQueueDataSize>
      <flowFileExpiration>0 sec</flowFileExpiration>
    </connection>
  </rootGroup>
  <controllerServices/>
  <reportingTasks/>
</flowController>
