Hello
As the log is matching the program name in the pre-decoding phase, you need to use it in the decoder.
You can use the <program_name> in place of <prematch>
**Phase 1: Completed pre-decoding.
full event: '2025-11-12T08:46:03.118009+00:00—-----------------------
timestamp: '2025-11-12T08:46:03.118009+00:00'
program_name: 'hpe-restd'
The decoder only decodes the part of the log that pre-decdoder does not parse.
So you need to write the decoder for this part only.
Event|4634|LOG_INFO|AMM|-|Connection to Central on location device-eucentral2-d2.central.arubanetworks.com on VRF default and Source IP automatic has been closed by Central. Trying to reconnect.
This part is the syslog header, which is decoded by the pre-decoder.
2025-11-12T08:46:03.118009+00:00 SW01-UD hpe-restd[6974]
Also, the regexes are not accurate the parse the log.
For example, You need to use \| to define |, where you have used \\|
If you want to use PCRE regex, you need to define the type.
<regex type="pcre2">----------</regex>
Ref: Perl-compatible Regular Expressions
I have updated the decoders with the correct syntax.
<decoder name="aruba-hpe">
<program_name>hpe-restd</program_name>
<regex>Event\|(\d+)\|(\w+)\|(\w+)\|-\|(\.+)$</regex>
<order>event_id,log_level,module,message</order>
</decoder>
You can make more decoders and further changes to your decoder following these documents.
Decoders Syntax
Regular Expression Syntax
Custom decoders
Let me know if this works for you.