[INGEST:vendor="barracuda", product="cgfw", target_dataset="barracuda_cgfw_raw", no_hit=keep] filter _raw_log ~= "^.*(\d{10})\s.*BYF" OR _raw_log ~= "\S{3}\s+\S+\s\d{2}\:\d{2}\:\d{2}" | alter tmp_time1_get_epoch = arraystring(regextract(_raw_log, "^.*(\d{10})\s.*BYF"), ""), tmp_time2_gen_year = arraystring(regextract(to_string(_insert_time) , "^.{0,4}"),""), // 2023 tmp_time2_get_datetime_log = replace(arraystring(regextract(_raw_log , "\S{3}\s+\S+\s\d{2}\:\d{2}\:\d{2}"), ""), " ", " "), // Mar 13 07:11:42 parsedFields1 = if(_raw_log ~= "BYF", regexcapture(_raw_log, "\w{3}\s+\d{1,2}\s\d{2}\:\d{2}\:\d{2}\s(?P\S+)\s(?P\w+)\[(?Pd*)\]\:\s\S+\s\S+\s(?P\S+)\s(?P\S+)\s(?P\S+)\s\S+\s(?P\S+)\s\d+\s(?P\w+)\s(?P\w+)\s\w+\s+\d+\s\d+\s\d+\s(?P\d+)\s\d+\s\S+\s\d+\s+(?P\S+)\s\S+\s\S+\s(?P\S+)\s+.*\[(?P[^\]]+)"), regexcapture(_raw_log, "\w{3}\s+\d{1,2}\s\d{2}\:\d{2}\:\d{2}\s(?P\S+).+\:\s+(?P\w+)\s+(?P\S+)\s(?P\w+)\: type\=(?P\w+)\|proto\=(?P\w+)\|srcIF\=(?P\w*)\|srcIP\=(?P\S*?)\|srcPort\=(?P\d*)\|srcMAC\=(?P\S*?)\|dstIP\=(?P\S*?)\|dstPort\=(?P\d*)\|dstService\=(?P\S*?)\|dstIF\=(?P\w*?)\|rule\=(?P\S*?)\|info\=(?P.*?)\|srcNAT\=(?P\S*?)\|dstNAT\=(?P\S*?)\|duration\=(?P\d+)\|count\=(?P\d+)\|receivedBytes\=(?P\d+)\|sentBytes\=(?P\d+)\|receivedPackets\=(?P\d+)\|sentPackets\=(?P\d+)\|user\=(?P\S*?)\|protocol\=(?P\w*)\|application\=(?P.*?)\|target\=(?P.*?)\|content\=(?P.*?)\|urlcat\=(?P.*)")) | alter tmp_time2_unite_format = tmp_time2_gen_year + " " + tmp_time2_get_datetime_log, parsedFields2 = if(to_string(parsedFields1) = """{}""", regexcapture(_raw_log, "\w{3}\s+\d{1,2}\s\d{2}\:\d{2}\:\d{2}\s(?P\S+).+?\:\s+(?P\w+)\s+(?P\S+)\s(?P.+)")) | alter tmp_time2 = parse_timestamp("%Y %b %e %H:%M:%S", tmp_time2_unite_format) | alter tmp_time1_convert = if (tmp_time1_get_epoch ~= "\d{10}", to_timestamp(to_integer(tmp_time1_get_epoch), "SECONDS"),null) | alter tmp_final_time = coalesce(tmp_time1_convert, tmp_time2) | alter tmp_diff_time = timestamp_diff(tmp_final_time , _insert_time , "MILLISECOND") | alter tmp_time_after_check = if (tmp_diff_time > 0, parse_timestamp("%F %H:%M:%S%z", replace(to_string(tmp_time2), tmp_time2_gen_year, to_string(subtract (to_number(tmp_time2_gen_year), 1)))), tmp_final_time) | alter _time = tmp_time_after_check | fields -tmp_*;