moby/api/types
Brian Goff ce1ceeb257 Add stats options to not prime the stats
Metrics collectors generally don't need the daemon to prime the stats
with something to compare since they already have something to compare
with.
Before this change, the API does 2 collection cycles (which takes
roughly 2s) in order to provide comparison for CPU usage over 1s. This
was primarily added so that `docker stats --no-stream` had something to
compare against.

Really the CLI should have just made a 2nd call and done the comparison
itself rather than forcing it on all API consumers.
That ship has long sailed, though.

With this change, clients can set an option to just pull a single stat,
which is *at least* a full second faster:

Old:
```
time curl --unix-socket
/go/src/github.com/docker/docker/bundles/test-integration-shell/docker.sock
http://./containers/test/stats?stream=false\&one-shot=false > /dev/null
2>&1

real0m1.864s
user0m0.005s
sys0m0.007s

time curl --unix-socket
/go/src/github.com/docker/docker/bundles/test-integration-shell/docker.sock
http://./containers/test/stats?stream=false\&one-shot=false > /dev/null
2>&1

real0m1.173s
user0m0.010s
sys0m0.006s
```

New:
```
time curl --unix-socket
/go/src/github.com/docker/docker/bundles/test-integration-shell/docker.sock
http://./containers/test/stats?stream=false\&one-shot=true > /dev/null
2>&1
real0m0.680s
user0m0.008s
sys0m0.004s

time curl --unix-socket
/go/src/github.com/docker/docker/bundles/test-integration-shell/docker.sock
http://./containers/test/stats?stream=false\&one-shot=true > /dev/null
2>&1

real0m0.156s
user0m0.007s
sys0m0.007s
```

This fixes issues with downstreams ability to use the stats API to
collect metrics.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2020-02-28 09:54:37 -08:00
..
backend Add stats options to not prime the stats 2020-02-28 09:54:37 -08:00
blkiodev Add canonical import comment 2018-02-05 16:51:57 -05:00
container api: normalize comment formatting 2019-11-27 15:37:30 +01:00
events Add canonical import comment 2018-02-05 16:51:57 -05:00
filters bump gotest.tools v3.0.1 for compatibility with Go 1.14 2020-02-11 00:06:42 +01:00
image api/types: re-generate with new template 2019-11-05 11:32:41 -08:00
mount mount: add BindOptions.NonRecursive (API v1.40) 2018-11-06 17:51:58 +09:00
network api: normalize comment formatting 2019-11-27 15:37:30 +01:00
plugins/logdriver Add partial log metadata to log driver proto 2018-08-10 20:44:30 -07:00
registry goimports: fix imports 2019-09-18 12:56:54 +02:00
strslice Format code with gofmt -s from go-1.11beta1 2018-09-06 15:24:16 -07:00
swarm Add swarm jobs 2020-01-13 13:21:12 -06:00
time Improve GetTimestamp parsing 2018-05-20 13:07:17 +02:00
versions Add canonical import comment 2018-02-05 16:51:57 -05:00
volume api/types: re-generate with new template 2019-11-05 11:32:41 -08:00
auth.go Add canonical import comment 2018-02-05 16:51:57 -05:00
client.go Exec inspect field should be "ID" not "ExecID" 2020-02-10 14:08:54 -08:00
configs.go Move network conversions out of API router 2018-06-27 17:11:29 -07:00
error_response.go Update to inline comments. 2016-10-31 11:13:41 -04:00
error_response_ext.go Make ErrorResponse implement Error 2019-07-02 10:17:03 -07:00
graph_driver_data.go Generate GraphDriver from spec, and fix up image spec. 2017-01-03 11:47:47 -05:00
id_response.go Add an IDResponse type 2016-10-31 11:16:02 -04:00
image_delete_response_item.go Generate ImageDeleteResponse from swagger spec. 2017-01-03 11:47:47 -05:00
image_summary.go Generate api/types:Image from the swagger spec 2016-10-20 13:24:23 -07:00
plugin.go Move plugin client creation to the extension point 2018-05-25 15:18:53 -04:00
plugin_device.go Generate plugin types from the swagger spec. 2016-10-20 13:24:23 -07:00
plugin_env.go Generate plugin types from the swagger spec. 2016-10-20 13:24:23 -07:00
plugin_interface_type.go Generate plugin types from the swagger spec. 2016-10-20 13:24:23 -07:00
plugin_mount.go Generate plugin types from the swagger spec. 2016-10-20 13:24:23 -07:00
plugin_responses.go Add canonical import comment 2018-02-05 16:51:57 -05:00
port.go Describe IP field of Port definition 2018-05-15 12:09:42 +02:00
seccomp.go seccomp: allow ptrace for 4.8+ kernels 2018-11-04 13:06:43 -08:00
service_update_response.go Return warnings from service create and service update when digest pinning fails 2016-11-18 09:31:31 -08:00
stats.go Fix dont typo 2018-09-08 16:58:03 +08:00
types.go API: omit classic swarm "SystemStatus" field if empty 2020-01-06 12:25:05 +01:00
volume.go Merge pull request #34186 from thaJeztah/api-update-example-data 2017-07-20 09:38:28 +02:00