From 8c53a4405a8a3dc26e9fa96c8bb8e30a87ed1160 Mon Sep 17 00:00:00 2001 From: Anis Eleuch Date: Thu, 22 Feb 2024 17:18:13 +0100 Subject: [PATCH] Add audit for folder excess (#19109) Also replace ilm:expiry with scanner to avoid user confusion --- cmd/data-scanner.go | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/cmd/data-scanner.go b/cmd/data-scanner.go index df0647eed..8ccd3854b 100644 --- a/cmd/data-scanner.go +++ b/cmd/data-scanner.go @@ -529,17 +529,27 @@ func (f *folderScanner) scanFolder(ctx context.Context, folder cachedFolder, int len(existingFolders)+len(newFolders) >= dataScannerCompactAtFolders || len(existingFolders)+len(newFolders) >= dataScannerForceCompactAtFolders - if len(existingFolders)+len(newFolders) > int(scannerExcessFolders.Load()) { + if totalFolders := len(existingFolders) + len(newFolders); totalFolders > int(scannerExcessFolders.Load()) { + prefixName := strings.TrimSuffix(folder.name, "/") + "/" sendEvent(eventArgs{ EventName: event.PrefixManyFolders, BucketName: f.root, Object: ObjectInfo{ - Name: strings.TrimSuffix(folder.name, "/") + "/", - Size: int64(len(existingFolders) + len(newFolders)), + Name: prefixName, + Size: int64(totalFolders), }, - UserAgent: "scanner", + UserAgent: "Scanner", Host: globalMinioHost, }) + auditLogInternal(context.Background(), AuditLogOptions{ + Event: "scanner:manyprefixes", + APIName: "Scanner", + Bucket: f.root, + Object: prefixName, + Tags: map[string]interface{}{ + "x-minio-prefixes-total": strconv.Itoa(totalFolders), + }, + }) } if !into.Compacted && shouldCompact { into.Compacted = true @@ -1107,18 +1117,18 @@ func (i *scannerItem) applyVersionActions(ctx context.Context, o ObjectLayer, fi Object: ObjectInfo{ Name: i.objectPath(), }, - UserAgent: "Internal: [Scanner]", + UserAgent: "Scanner", Host: globalLocalNodeName, - RespElements: map[string]string{"x-minio-versions": strconv.Itoa(len(fivs))}, + RespElements: map[string]string{"x-minio-versions": strconv.Itoa(len(objInfos))}, }) auditLogInternal(context.Background(), AuditLogOptions{ Event: "scanner:manyversions", - APIName: ILMExpiry, + APIName: "Scanner", Bucket: i.bucket, Object: i.objectPath(), Tags: map[string]interface{}{ - "x-minio-versions": strconv.Itoa(len(fivs)), + "x-minio-versions": strconv.Itoa(len(objInfos)), }, }) }