moby--moby/api/types/container
Brian Goff 054abff3b6 Implement optional ring buffer for container logs
This allows the user to set a logging mode to "blocking" (default), or
"non-blocking", which uses the ring buffer as a proxy to the real log
driver.

This allows a container to never be blocked on stdio at the cost of
dropping log messages.

Introduces 2 new log-opts that works for all drivers, `log-mode` and
`log-size`. `log-mode` takes a  value of "blocking", or "non-blocking"
I chose not to implement this as a bool since it is difficult to
determine if the mode was set to false vs just not set... especially
difficult when merging the default daemon config with the container config.
`log-size` takes a size string, e.g. `2MB`, which sets the max size
of the ring buffer. When the max size is reached, it will start
dropping log messages.

```
BenchmarkRingLoggerThroughputNoReceiver-8           	2000000000	        36.2 ns/op	 856.35 MB/s	       0 B/op	       0 allocs/op
BenchmarkRingLoggerThroughputWithReceiverDelay0-8   	300000000	       156 ns/op	 198.48 MB/s	      32 B/op	       0 allocs/op
BenchmarkRingLoggerThroughputConsumeDelay1-8        	2000000000	        36.1 ns/op	 857.80 MB/s	       0 B/op	       0 allocs/op
BenchmarkRingLoggerThroughputConsumeDelay10-8       	1000000000	        36.2 ns/op	 856.53 MB/s	       0 B/op	       0 allocs/op
BenchmarkRingLoggerThroughputConsumeDelay50-8       	2000000000	        34.7 ns/op	 894.65 MB/s	       0 B/op	       0 allocs/op
BenchmarkRingLoggerThroughputConsumeDelay100-8      	2000000000	        35.1 ns/op	 883.91 MB/s	       0 B/op	       0 allocs/op
BenchmarkRingLoggerThroughputConsumeDelay300-8      	1000000000	        35.9 ns/op	 863.90 MB/s	       0 B/op	       0 allocs/op
BenchmarkRingLoggerThroughputConsumeDelay500-8      	2000000000	        35.8 ns/op	 866.88 MB/s	       0 B/op	       0 allocs/op
```

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2017-02-01 13:52:37 -05:00
..
config.go api/types/container,client: gofmt 2016-12-05 17:00:36 +02:00
container_changes.go Set expected response headers for Ping. 2017-01-03 11:47:47 -05:00
container_create.go hack/swagger-gen.sh is not exist, it should be /hack/generate-swagger-api.sh 2016-11-22 16:32:32 +08:00
container_top.go Set expected response headers for Ping. 2017-01-03 11:47:47 -05:00
container_update.go hack/swagger-gen.sh is not exist, it should be /hack/generate-swagger-api.sh 2016-11-22 16:32:32 +08:00
container_wait.go hack/swagger-gen.sh is not exist, it should be /hack/generate-swagger-api.sh 2016-11-22 16:32:32 +08:00
host_config.go Implement optional ring buffer for container logs 2017-02-01 13:52:37 -05:00
hostconfig_unix.go add swarm type comments and fix nits 2016-09-26 17:17:52 +08:00
hostconfig_windows.go Add engine-api types to docker 2016-09-07 11:05:58 -07:00