From 1c017020c1dc21085fa508a3920254a78596bc75 Mon Sep 17 00:00:00 2001 From: Catherine Date: Thu, 4 Dec 2025 16:45:28 +0000 Subject: [PATCH] Update `-audit-log` to fetch records in parallel. This makes it *much* faster. --- src/main.go | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/src/main.go b/src/main.go index c50e751..e91a93e 100644 --- a/src/main.go +++ b/src/main.go @@ -421,14 +421,30 @@ func Main() { logc.Fatalln(ctx, err) } + ch := make(chan *AuditRecord) + ids := []AuditID{} for id, err := range backend.SearchAuditLog(ctx, SearchAuditLogOptions{}) { if err != nil { logc.Fatalln(ctx, err) } - record, err := backend.QueryAuditLog(ctx, id) - if err != nil { - logc.Fatalln(ctx, err) - } + go func() { + if record, err := backend.QueryAuditLog(ctx, id); err != nil { + logc.Fatalln(ctx, err) + } else { + ch <- record + } + }() + ids = append(ids, id) + } + + records := map[AuditID]*AuditRecord{} + for len(records) < len(ids) { + record := <-ch + records[record.GetAuditID()] = record + } + + for _, id := range ids { + record := records[id] fmt.Fprintf(color.Output, "%s %s %s %s %s\n", record.GetAuditID().String(), color.HiWhiteString(record.GetTimestamp().AsTime().UTC().Format(time.RFC3339)),