Browse Source

force enable asynchronous I/O sending events to Fluentd

pull/2503/head
Konstantin Lebedev 3 years ago
parent
commit
34779e8f38
  1. 2
      weed/s3api/s3api_object_handlers.go
  2. 10
      weed/s3api/s3err/audit_fluent.go

2
weed/s3api/s3api_object_handlers.go

@ -261,7 +261,7 @@ func (s3a *S3ApiServer) DeleteMultipleObjectsHandler(w http.ResponseWriter, r *h
} }
if auditLog != nil { if auditLog != nil {
auditLog.Key = entryName auditLog.Key = entryName
go s3err.PostAccessLog(*auditLog)
s3err.PostAccessLog(*auditLog)
} }
} }

10
weed/s3api/s3err/audit_fluent.go

@ -67,6 +67,12 @@ func InitAuditLog(config string) {
if len(fluentConfig.TagPrefix) == 0 && len(environment) > 0 { if len(fluentConfig.TagPrefix) == 0 && len(environment) > 0 {
fluentConfig.TagPrefix = environment fluentConfig.TagPrefix = environment
} }
fluentConfig.Async = true
fluentConfig.AsyncResultCallback = func(data []byte, err error) {
if err != nil {
glog.Warning("Error while posting log: ", err)
}
}
var err error var err error
Logger, err = fluent.New(*fluentConfig) Logger, err = fluent.New(*fluentConfig)
if err != nil { if err != nil {
@ -162,11 +168,9 @@ func PostLog(r *http.Request, HTTPStatusCode int, errorCode ErrorCode) {
if Logger == nil { if Logger == nil {
return return
} }
go func(log *AccessLog) {
if err := Logger.Post(tag, *log); err != nil {
if err := Logger.Post(tag, *GetAccessLog(r, HTTPStatusCode, errorCode)); err != nil {
glog.Warning("Error while posting log: ", err) glog.Warning("Error while posting log: ", err)
} }
}(GetAccessLog(r, HTTPStatusCode, errorCode))
} }
func PostAccessLog(log AccessLog) { func PostAccessLog(log AccessLog) {

Loading…
Cancel
Save