Event stream parsing for multiple lines

You can configure the probe to parse multiple line events with multiple clients connections.

To set the probe to expect multiple line event streams, set the ParserSingleLines property to false.

The probe needs a mechanism to demarcate alarms. This is implemented in two ways: an event terminator demarcates the events or a Java Regular Expression Pattern match is done for headers and footers. For the former approach, the character specified by the ParserNextAlarmDelimiter property indicates the end of each event. The probe will use the latter approach only if both the ParserAlarmStart and ParserAlarmEnd properties are set.

Example 1 - Start and End parsing with ParserParseAsLines set to true

In this example, set ParserAlarmStart to ALARM, ParserAlarmEnd to END, ParserSingleLines to false, and ParserParseAsLines to true, with ParserElementDelimiter set to , (or anything other than ; in this example). The probe receives the following line:

ALARM
DATA1 ;DATA1a ;DATA1b ;DATA1B;
DATA1 ;DATA1a ;DATA1b ;DATA1DD;
END

The probe then parses the line into the following tokens:

Line1: DATA1 ;DATA1a ;DATA1b ;DATA1B;
Line2: DATA1 ;DATA1a ;DATA1b ; DATA1DD;
line_n: 2

Example 2 - Start and End parsing with delimiter

In this example, set ParserAlarmStart to ALARM, ParserAlarmEnd to END, ParserSingleLines to false, ParserParseAsLines to false, and ParserElementDelimiter to ;. The probe receives the following line:

ALARM
DATA1;DATA1a;DATA1b;DATA1c;
DATA2;DATA2a;DATA2b;DATA2c;
END

The probe then parses the line into the following tokens:

Token7:    DATA2b
Token8:    DATA2c
Token5:    DATA2
Token6:    DATA2a
Token3:    DATA1b
Token4:    DATA1c
Token1:    DATA1
Token2:    DATA1a
TokenCount:    12
ALARM_START:   ALARM
ALARM_END:     END

Example 3 - Start and End parsing with Header property set

In this example, set ParserAlarmStart to EVENT FROM SYSTEM .*, ParserAlarmEnd to END OF EVENT, ParserAlarmHeader to Header.*, ParserSingleLines to false, ParserParseAsLines to false, and ParserElementDelimiter to " " (whitespace). The probe receives the following line:

EVENT FROM SYSTEM XYZ
HEADER 1 HEADER2
Value1a Value1b
Value2a Value2b
END OF EVENT

The probe then parses the line into the following tokens:

ALARM_START:  EVENT FROM SYSTEM XYZ
ALARM_END:    END OF EVENT
ALARM_HEADER: HEADER 1 HEADER2
Token1:    Value1a
Token2:    Value1b
Token3:    Value2a
Token4:    Value2b

Example 4 - Multi-line parsing using next alarm delimiter

In this example, set ParserNextAlarmDelimiter to ---, ParserAlarmStart to EVENT FROM SYSTEM .*, ParserAlarmEnd to END OF EVENT, ParserSingleLines to false, ParserParseAsLines to false, and ParserElementDelimiter to ;. The probe receives the following line:

EVENT FROM SYSTEM XYZ
ALARM1_LINE1_VALUE1;ALARM1_LINE1_VALUE2;
ALARM1_LINE2_VALUE1;ALARM1_LINE2_VALUE2;
ALARM1_LINE3_VALUE1;ALARM1_LINE3_VALUE2;
---
ALARM2_LINE1_VALUE1;ALARM2_LINE1_VALUE2;
ALARM2_LINE2_VALUE1;ALARM2_LINE2_VALUE2;
ALARM2_LINE3_VALUE1;ALARM2_LINE3_VALUE2;
---
END OF EVENT

The probe then parses the line into the following tokens (for Alarm 1):


Token1: ALARM1_LINE1_VALUE1
Token2: ALARM1_LINE1_VALUE2
Token3: ALARM1_LINE2_VALUE1
Token4: ALARM1_LINE2_VALUE2
Token5: ALARM1_LINE3_VALUE1
Token6: ALARM1_LINE3_VALUE2

The probe then parses the line into the following tokens (for Alarm 2):


Token1: ALARM2_LINE1_VALUE1
Token2: ALARM2_LINE1_VALUE2
Token3: ALARM2_LINE2_VALUE1
Token4: ALARM2_LINE2_VALUE2
Token5: ALARM2_LINE3_VALUE1
Token6: ALARM2_LINE3_VALUE2