server-info: Avoid initializing audit/log http/kafka targets (#18703)

This can cause unnecessary ServerInfo() call delay.
This commit is contained in:
Anis Eleuch 2023-12-22 10:25:08 -08:00 committed by GitHub
parent 9d7660b409
commit 8bd4f6568b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 17 deletions

View File

@ -1911,7 +1911,7 @@ func getServerInfo(ctx context.Context, poolsInfoEnabled bool, r *http.Request)
} }
} }
log, audit := fetchLoggerInfo() log, audit := fetchLoggerInfo(ctx)
// Get the notification target info // Get the notification target info
notifyTarget := fetchLambdaInfo() notifyTarget := fetchLambdaInfo()
@ -2660,19 +2660,26 @@ func fetchKMSStatusV2(ctx context.Context) []madmin.KMS {
return stats return stats
} }
func targetStatus(ctx context.Context, h logger.Target) madmin.Status {
if h.IsOnline(ctx) {
return madmin.Status{Status: string(madmin.ItemOnline)}
}
return madmin.Status{Status: string(madmin.ItemOffline)}
}
// fetchLoggerDetails return log info // fetchLoggerDetails return log info
func fetchLoggerInfo() ([]madmin.Logger, []madmin.Audit) { func fetchLoggerInfo(ctx context.Context) ([]madmin.Logger, []madmin.Audit) {
var loggerInfo []madmin.Logger var loggerInfo []madmin.Logger
var auditloggerInfo []madmin.Audit var auditloggerInfo []madmin.Audit
for _, tgt := range logger.SystemTargets() { for _, tgt := range logger.SystemTargets() {
if tgt.Endpoint() != "" { if tgt.Endpoint() != "" {
loggerInfo = append(loggerInfo, madmin.Logger{tgt.String(): logger.TargetStatus(GlobalContext, tgt)}) loggerInfo = append(loggerInfo, madmin.Logger{tgt.String(): targetStatus(ctx, tgt)})
} }
} }
for _, tgt := range logger.AuditTargets() { for _, tgt := range logger.AuditTargets() {
if tgt.Endpoint() != "" { if tgt.Endpoint() != "" {
auditloggerInfo = append(auditloggerInfo, madmin.Audit{tgt.String(): logger.TargetStatus(GlobalContext, tgt)}) auditloggerInfo = append(auditloggerInfo, madmin.Audit{tgt.String(): targetStatus(ctx, tgt)})
} }
} }

View File

@ -23,7 +23,6 @@ import (
"strings" "strings"
"sync" "sync"
"github.com/minio/madmin-go/v3"
"github.com/minio/minio/internal/logger/target/http" "github.com/minio/minio/internal/logger/target/http"
"github.com/minio/minio/internal/logger/target/kafka" "github.com/minio/minio/internal/logger/target/kafka"
"github.com/minio/minio/internal/logger/target/types" "github.com/minio/minio/internal/logger/target/types"
@ -57,18 +56,6 @@ var (
consoleTgt Target consoleTgt Target
) )
// TargetStatus returns status of the target (online|offline)
func TargetStatus(ctx context.Context, h Target) madmin.Status {
if h.IsOnline(ctx) {
return madmin.Status{Status: string(madmin.ItemOnline)}
}
// Previous initialization had failed. Try again.
if e := h.Init(ctx); e == nil {
return madmin.Status{Status: string(madmin.ItemOnline)}
}
return madmin.Status{Status: string(madmin.ItemOffline)}
}
// SystemTargets returns active targets. // SystemTargets returns active targets.
// Returned slice may not be modified in any way. // Returned slice may not be modified in any way.
func SystemTargets() []Target { func SystemTargets() []Target {