|
@@ -27,6 +27,7 @@ const (
|
|
name = "fluentd"
|
|
name = "fluentd"
|
|
defaultHostName = "localhost"
|
|
defaultHostName = "localhost"
|
|
defaultPort = 24224
|
|
defaultPort = 24224
|
|
|
|
+ defaultTagPrefix = "docker"
|
|
defaultBufferLimit = 1 * 1024 * 1024 // 1M buffer by default
|
|
defaultBufferLimit = 1 * 1024 * 1024 // 1M buffer by default
|
|
)
|
|
)
|
|
|
|
|
|
@@ -52,24 +53,13 @@ func New(ctx logger.Context) (logger.Logger, error) {
|
|
if err != nil {
|
|
if err != nil {
|
|
return nil, err
|
|
return nil, err
|
|
}
|
|
}
|
|
- failOnStartupError, err := loggerutils.ParseFailOnStartupErrorFlag(ctx)
|
|
|
|
- if err != nil {
|
|
|
|
- return nil, err
|
|
|
|
- }
|
|
|
|
- bufferLimit, err := parseBufferLimit(ctx.Config["buffer-limit"])
|
|
|
|
- if err != nil {
|
|
|
|
- return nil, err
|
|
|
|
- }
|
|
|
|
extra := ctx.ExtraAttributes(nil)
|
|
extra := ctx.ExtraAttributes(nil)
|
|
logrus.Debugf("logging driver fluentd configured for container:%s, host:%s, port:%d, tag:%s, extra:%v.", ctx.ContainerID, host, port, tag, extra)
|
|
logrus.Debugf("logging driver fluentd configured for container:%s, host:%s, port:%d, tag:%s, extra:%v.", ctx.ContainerID, host, port, tag, extra)
|
|
// logger tries to reconnect 2**32 - 1 times
|
|
// logger tries to reconnect 2**32 - 1 times
|
|
// failed (and panic) after 204 years [ 1.5 ** (2**32 - 1) - 1 seconds]
|
|
// failed (and panic) after 204 years [ 1.5 ** (2**32 - 1) - 1 seconds]
|
|
- log, err := fluent.New(fluent.Config{FluentPort: port, FluentHost: host, RetryWait: 1000, MaxRetry: math.MaxInt32, BufferLimit: bufferLimit})
|
|
|
|
|
|
+ log, err := fluent.New(fluent.Config{FluentPort: port, FluentHost: host, RetryWait: 1000, MaxRetry: math.MaxInt32})
|
|
if err != nil {
|
|
if err != nil {
|
|
- if failOnStartupError {
|
|
|
|
- return nil, err
|
|
|
|
- }
|
|
|
|
- logrus.Warnf("fluentd cannot connect to configured endpoint. Ignoring as instructed. Error: %q", err)
|
|
|
|
|
|
+ return nil, err
|
|
}
|
|
}
|
|
return &fluentd{
|
|
return &fluentd{
|
|
tag: tag,
|
|
tag: tag,
|
|
@@ -112,8 +102,6 @@ func ValidateLogOpt(cfg map[string]string) error {
|
|
case "tag":
|
|
case "tag":
|
|
case "labels":
|
|
case "labels":
|
|
case "env":
|
|
case "env":
|
|
- case "fail-on-startup-error":
|
|
|
|
- case "buffer-limit":
|
|
|
|
default:
|
|
default:
|
|
return fmt.Errorf("unknown log opt '%s' for fluentd log driver", key)
|
|
return fmt.Errorf("unknown log opt '%s' for fluentd log driver", key)
|
|
}
|
|
}
|
|
@@ -145,14 +133,3 @@ func parseAddress(address string) (string, int, error) {
|
|
}
|
|
}
|
|
return host, portnum, nil
|
|
return host, portnum, nil
|
|
}
|
|
}
|
|
-
|
|
|
|
-func parseBufferLimit(bufferLimit string) (int, error) {
|
|
|
|
- if bufferLimit == "" {
|
|
|
|
- return defaultBufferLimit, nil
|
|
|
|
- }
|
|
|
|
- limit, err := strconv.Atoi(bufferLimit)
|
|
|
|
- if err != nil {
|
|
|
|
- return 0, fmt.Errorf("invalid buffer limit %s: %s", bufferLimit, err)
|
|
|
|
- }
|
|
|
|
- return limit, nil
|
|
|
|
-}
|
|
|