source | extend TimeGenerated = todatetime(ls_timestamp), HostName = tostring(host.name), FilePath = tostring(log.file.path), Msg = tostring(message) | where Msg !startswith "Record format:" and Msg !startswith "====" | parse Msg with BucketOwner " " Bucket " [" WasabiTime "] " RemoteIP " " Requester " " RequestId " " Operation " " Key " " Tail | parse Tail with "\"" RequestURI "\" " HttpStatus: int " " ErrorCode " " BytesSent " " ObjectSize " " TotalTime: int " " TurnAroundTime: int " \"" Referrer "\" \"" UserAgent "\" " VersionId | extend ErrorCode = iff(ErrorCode == "-", "", tostring(ErrorCode)), BytesSent = tolong(iif(BytesSent == "-" or isempty(BytesSent), "0", BytesSent)), ObjectSize = tolong(iif(ObjectSize == "-" or isempty(ObjectSize), "0", ObjectSize)), Key = iff(Key == "-", "", tostring(Key)) | project TimeGenerated, HostName, FilePath, BucketOwner, Bucket, WasabiTime, RemoteIP, Requester, RequestId, Operation, Key, RequestURI, HttpStatus, ErrorCode, BytesSent, ObjectSize, TotalTime, TurnAroundTime, Referrer, UserAgent, VersionId