mirror of
https://github.com/minio/minio.git
synced 2025-05-04 08:16:59 -04:00
Send deployment id and minio version in http header (#14378)
This commit is contained in:
parent
27f64dd9a4
commit
25144fedd5
@ -161,7 +161,7 @@ func StartGateway(ctx *cli.Context, gw Gateway) {
|
|||||||
signal.Notify(globalOSSignalCh, os.Interrupt, syscall.SIGTERM, syscall.SIGQUIT)
|
signal.Notify(globalOSSignalCh, os.Interrupt, syscall.SIGTERM, syscall.SIGQUIT)
|
||||||
// This is only to uniquely identify each gateway deployments.
|
// This is only to uniquely identify each gateway deployments.
|
||||||
globalDeploymentID = env.Get("MINIO_GATEWAY_DEPLOYMENT_ID", mustGetUUID())
|
globalDeploymentID = env.Get("MINIO_GATEWAY_DEPLOYMENT_ID", mustGetUUID())
|
||||||
logger.SetDeploymentID(globalDeploymentID)
|
xhttp.SetDeploymentID(globalDeploymentID)
|
||||||
|
|
||||||
if gw == nil {
|
if gw == nil {
|
||||||
logger.FatalIf(errUnexpected, "Gateway implementation not initialized")
|
logger.FatalIf(errUnexpected, "Gateway implementation not initialized")
|
||||||
|
@ -493,7 +493,8 @@ func serverMain(ctx *cli.Context) {
|
|||||||
logFatalErrs(err, Endpoint{}, true)
|
logFatalErrs(err, Endpoint{}, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.SetDeploymentID(globalDeploymentID)
|
xhttp.SetDeploymentID(globalDeploymentID)
|
||||||
|
xhttp.SetMinIOVersion(Version)
|
||||||
|
|
||||||
// Enable background operations for erasure coding
|
// Enable background operations for erasure coding
|
||||||
if globalIsErasure {
|
if globalIsErasure {
|
||||||
|
@ -191,3 +191,9 @@ const (
|
|||||||
|
|
||||||
UploadID = "uploadId"
|
UploadID = "uploadId"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// http headers sent to webhook targets
|
||||||
|
const (
|
||||||
|
// Reports the version of MinIO server
|
||||||
|
MinIOVersion = "x-minio-version"
|
||||||
|
)
|
||||||
|
@ -33,6 +33,14 @@ import (
|
|||||||
humanize "github.com/dustin/go-humanize"
|
humanize "github.com/dustin/go-humanize"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
// GlobalMinIOVersion - is sent in the header to all http targets
|
||||||
|
GlobalMinIOVersion string
|
||||||
|
|
||||||
|
// GlobalDeploymentID - is sent in the header to all http targets
|
||||||
|
GlobalDeploymentID string
|
||||||
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
serverShutdownPoll = 500 * time.Millisecond
|
serverShutdownPoll = 500 * time.Millisecond
|
||||||
|
|
||||||
@ -196,3 +204,13 @@ func NewServer(addrs []string) *Server {
|
|||||||
httpServer.MaxHeaderBytes = DefaultMaxHeaderBytes
|
httpServer.MaxHeaderBytes = DefaultMaxHeaderBytes
|
||||||
return httpServer
|
return httpServer
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SetMinIOVersion -- MinIO version from the main package is set here
|
||||||
|
func SetMinIOVersion(minioVer string) {
|
||||||
|
GlobalMinIOVersion = minioVer
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetDeploymentID -- Deployment Id from the main package is set here
|
||||||
|
func SetDeploymentID(deploymentID string) {
|
||||||
|
GlobalDeploymentID = deploymentID
|
||||||
|
}
|
||||||
|
@ -28,6 +28,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/klauspost/compress/gzhttp"
|
"github.com/klauspost/compress/gzhttp"
|
||||||
|
xhttp "github.com/minio/minio/internal/http"
|
||||||
"github.com/minio/minio/internal/logger/message/audit"
|
"github.com/minio/minio/internal/logger/message/audit"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -146,7 +147,7 @@ func GetAuditEntry(ctx context.Context) *audit.Entry {
|
|||||||
}
|
}
|
||||||
r = &audit.Entry{
|
r = &audit.Entry{
|
||||||
Version: audit.Version,
|
Version: audit.Version,
|
||||||
DeploymentID: globalDeploymentID,
|
DeploymentID: xhttp.GlobalDeploymentID,
|
||||||
Time: time.Now().UTC(),
|
Time: time.Now().UTC(),
|
||||||
}
|
}
|
||||||
SetAuditEntry(ctx, r)
|
SetAuditEntry(ctx, r)
|
||||||
@ -170,7 +171,7 @@ func AuditLog(ctx context.Context, w http.ResponseWriter, r *http.Request, reqCl
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
entry = audit.ToEntry(w, r, reqClaims, globalDeploymentID)
|
entry = audit.ToEntry(w, r, reqClaims, xhttp.GlobalDeploymentID)
|
||||||
// indicates all requests for this API call are inbound
|
// indicates all requests for this API call are inbound
|
||||||
entry.Trigger = "incoming"
|
entry.Trigger = "incoming"
|
||||||
|
|
||||||
|
@ -32,6 +32,7 @@ import (
|
|||||||
|
|
||||||
"github.com/minio/highwayhash"
|
"github.com/minio/highwayhash"
|
||||||
"github.com/minio/minio-go/v7/pkg/set"
|
"github.com/minio/minio-go/v7/pkg/set"
|
||||||
|
xhttp "github.com/minio/minio/internal/http"
|
||||||
"github.com/minio/minio/internal/logger/message/log"
|
"github.com/minio/minio/internal/logger/message/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -53,8 +54,6 @@ const (
|
|||||||
|
|
||||||
var trimStrings []string
|
var trimStrings []string
|
||||||
|
|
||||||
var globalDeploymentID string
|
|
||||||
|
|
||||||
// TimeFormat - logging time format.
|
// TimeFormat - logging time format.
|
||||||
const TimeFormat string = "15:04:05 MST 01/02/2006"
|
const TimeFormat string = "15:04:05 MST 01/02/2006"
|
||||||
|
|
||||||
@ -130,11 +129,6 @@ func uniqueEntries(paths []string) []string {
|
|||||||
return m.ToSlice()
|
return m.ToSlice()
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetDeploymentID -- Deployment Id from the main package is set here
|
|
||||||
func SetDeploymentID(deploymentID string) {
|
|
||||||
globalDeploymentID = deploymentID
|
|
||||||
}
|
|
||||||
|
|
||||||
// Init sets the trimStrings to possible GOPATHs
|
// Init sets the trimStrings to possible GOPATHs
|
||||||
// and GOROOT directories. Also append github.com/minio/minio
|
// and GOROOT directories. Also append github.com/minio/minio
|
||||||
// This is done to clean up the filename, when stack trace is
|
// This is done to clean up the filename, when stack trace is
|
||||||
@ -319,7 +313,7 @@ func logIf(ctx context.Context, err error, errKind ...interface{}) {
|
|||||||
// Get the cause for the Error
|
// Get the cause for the Error
|
||||||
message := fmt.Sprintf("%v (%T)", err, err)
|
message := fmt.Sprintf("%v (%T)", err, err)
|
||||||
if req.DeploymentID == "" {
|
if req.DeploymentID == "" {
|
||||||
req.DeploymentID = globalDeploymentID
|
req.DeploymentID = xhttp.GlobalDeploymentID
|
||||||
}
|
}
|
||||||
|
|
||||||
objects := make([]log.ObjectVersion, 0, len(req.Objects))
|
objects := make([]log.ObjectVersion, 0, len(req.Objects))
|
||||||
|
@ -144,6 +144,8 @@ func (h *Target) logEntry(entry interface{}) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
req.Header.Set(xhttp.ContentType, "application/json")
|
req.Header.Set(xhttp.ContentType, "application/json")
|
||||||
|
req.Header.Set(xhttp.MinIOVersion, xhttp.GlobalMinIOVersion)
|
||||||
|
req.Header.Set(xhttp.MinioDeploymentID, xhttp.GlobalDeploymentID)
|
||||||
|
|
||||||
// Set user-agent to indicate MinIO release
|
// Set user-agent to indicate MinIO release
|
||||||
// version to the configured log endpoint
|
// version to the configured log endpoint
|
||||||
|
Loading…
x
Reference in New Issue
Block a user