1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00
moby--moby/daemon
Brian Goff e4c03623c2 Use counter for tracking container states
Container state counts are used for reporting in the `/info` endpoint.
Currently when `/info` is called, each container is iterated over and
the containers 'StateString()' is called. This is not very efficient
with lots of containers, and is also racey since `StateString()` is not
using a mutex and the mutex is not otherwise locked.

We could just lock the container mutex, but this is proven to be
problematic since there are frequent deadlock scenarios and we should
always have the `/info` endpoint available since this endpoint is used
to get general information about the docker host.

Really, these metrics on `/info` should be deprecated. But until then,
we can just keep a running tally in memory for each of the reported
states.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2017-04-29 17:10:14 -04:00
..
caps
cluster Merge pull request #32828 from cyli/external-ca-cert 2017-04-28 10:30:57 -04:00
config Remove pkg/testutil/assert in favor of testify 2017-04-14 12:03:21 -07:00
discovery The returned err should be printed 2017-03-29 09:00:50 +08:00
events Use distribution reference 2017-02-07 11:08:37 -08:00
exec Move StreamConfig out of runconfig 2016-11-14 15:15:09 -05:00
graphdriver Windows: Do not attempt to clean empty windowsfilter folder 2017-04-17 13:10:15 -07:00
initlayer Implement content addressability for plugins 2016-12-23 13:29:58 -08:00
links use t.Fatal() to output the err message where the values used for formatting 2017-02-23 10:16:22 +08:00
logger Merge pull request #31856 from jim-minter/more_races 2017-04-26 16:04:02 -07:00
network
stats Correct CPU usage calculation in presence of offline CPUs and newer Linux 2017-03-10 10:24:33 +00:00
apparmor_default.go daemon: switch to 'ensure' workflow for AppArmor profiles 2016-12-07 08:47:28 +11:00
apparmor_default_unsupported.go daemon: switch to 'ensure' workflow for AppArmor profiles 2016-12-07 08:47:28 +11:00
archive.go Refactor remote context parsing 2017-04-25 14:35:31 -07:00
archive_tarcopyoptions.go daemon/archive.go: Fix copy routines to preserve UID. 2017-04-12 10:33:19 +00:00
archive_tarcopyoptions_unix.go daemon/archive.go: Fix copy routines to preserve UID. 2017-04-12 10:33:19 +00:00
archive_tarcopyoptions_windows.go daemon/archive.go: Fix copy routines to preserve UID. 2017-04-12 10:33:19 +00:00
archive_unix.go Windows: Fail fs ops on running Hyper-V containers gracefully 2017-03-15 13:31:41 -07:00
archive_windows.go Windows: Fail fs ops on running Hyper-V containers gracefully 2017-03-15 13:31:41 -07:00
attach.go Close logger only after StartLogger call 2017-04-20 12:27:50 +01:00
auth.go
bindmount_solaris.go Add functional support for Docker sub commands on Solaris 2016-11-07 09:06:34 -08:00
bindmount_unix.go Add functional support for Docker sub commands on Solaris 2016-11-07 09:06:34 -08:00
cache.go Extract the daemon image cache to its own package 2017-01-03 19:19:27 +01:00
changes.go Windows: support docker diff 2016-10-28 11:06:54 -07:00
checkpoint.go 28755: Proper error handling for checkpoint conflict 2017-04-04 05:18:19 +00:00
cluster.go Add NetworkManager and ClusterStatus interfaces 2017-03-28 16:35:14 +02:00
commit.go Added start period option to health check. 2017-04-06 12:35:34 +02:00
container.go set 1ms as container duration minimum value 2017-04-12 15:45:29 -07:00
container_linux.go Added an apparmorEnabled boolean in the Daemon struct to indicate if AppArmor is enabled or not. It is set in NewDaemon using sysInfo information. 2017-01-30 16:23:23 +01:00
container_operations.go Do not error out on serv bind deactivation if no sbox is found 2017-04-10 09:13:41 -07:00
container_operations_solaris.go Add functional support for Docker sub commands on Solaris 2016-11-07 09:06:34 -08:00
container_operations_unix.go daemon: relabel secrets path 2017-04-11 17:43:23 +02:00
container_operations_windows.go (*) Support --net:container:<containername/id> for windows 2017-02-28 20:03:43 -08:00
container_windows.go Added an apparmorEnabled boolean in the Daemon struct to indicate if AppArmor is enabled or not. It is set in NewDaemon using sysInfo information. 2017-01-30 16:23:23 +01:00
create.go Use counter for tracking container states 2017-04-29 17:10:14 -04:00
create_unix.go
create_windows.go Windows: Revert 27884 2016-11-16 13:38:45 -08:00
daemon.go Use counter for tracking container states 2017-04-29 17:10:14 -04:00
daemon_experimental.go move plugins out of experimental 2016-11-10 15:51:32 -08:00
daemon_linux.go Add Windows specific exec root for plugins. 2017-02-02 14:00:12 -08:00
daemon_linux_test.go use t.Fatal() to output the err message where the values used for formatting 2017-02-23 10:16:22 +08:00
daemon_solaris.go Add daemon flag to set no_new_priv as default for unprivileged containers. 2017-02-16 19:05:14 +08:00
daemon_test.go rewrite reload code 2017-02-15 21:57:27 +08:00
daemon_unix.go Merge pull request #31827 from erikstmartin/master 2017-04-03 22:39:49 +02:00
daemon_unix_test.go use t.Fatal() to output the err message where the values used for formatting 2017-02-23 10:16:22 +08:00
daemon_unsupported.go
daemon_windows.go Fix scaling of NanoCPUs on Hyper-V containers 2017-04-12 16:54:27 -07:00
debugtrap.go Reduce spew data dumped 2016-11-17 13:10:48 -05:00
debugtrap_unix.go Spew debugging 2016-11-03 10:05:11 -07:00
debugtrap_unsupported.go Spew debugging 2016-11-03 10:05:11 -07:00
debugtrap_windows.go Spew debugging 2016-11-03 10:05:11 -07:00
delete.go Use counter for tracking container states 2017-04-29 17:10:14 -04:00
delete_test.go Use a test table in the daemon delete unit tests 2017-04-18 10:30:40 +03:00
disk_usage.go Prevent multiple parallel SystemDiskUsage call 2017-04-24 09:11:29 -07:00
errors.go Use distribution reference 2017-02-07 11:08:37 -08:00
events.go
events_test.go use t.Fatal() to output the err message where the values used for formatting 2017-02-23 10:16:22 +08:00
exec.go Fix #303111: dockerd leaks ExecIds on failed exec -i 2017-02-10 21:13:00 +02:00
exec_linux.go daemon: also ensureDefaultApparmorProfile in exec path 2017-03-13 15:20:05 +11:00
exec_solaris.go
exec_windows.go Windows: Plumb through user 2016-11-08 17:41:56 -08:00
export.go pkg/archive: remove unnecessary Archive and Reader type 2016-10-20 19:31:24 -07:00
getsize_unix.go Don’t hold container lock for size calculation 2017-02-18 18:11:48 -08:00
health.go Added start period option to health check. 2017-04-06 12:35:34 +02:00
health_test.go Added start period option to health check. 2017-04-06 12:35:34 +02:00
image.go Use distribution reference 2017-02-07 11:08:37 -08:00
image_delete.go Use distribution reference 2017-02-07 11:08:37 -08:00
image_exporter.go
image_history.go Use distribution reference 2017-02-07 11:08:37 -08:00
image_inspect.go Use distribution reference 2017-02-07 11:08:37 -08:00
image_pull.go Use distribution reference 2017-02-07 11:08:37 -08:00
image_push.go Use distribution reference 2017-02-07 11:08:37 -08:00
image_tag.go Use distribution reference 2017-02-07 11:08:37 -08:00
images.go Ignore layer does not exist error from docker images 2017-03-16 09:21:51 +08:00
import.go Fix the create API when fromSrc has a bad URL 2017-03-26 15:21:13 +03:00
info.go Use counter for tracking container states 2017-04-29 17:10:14 -04:00
info_unix.go Fix missing Init Binary in docker info output 2017-04-10 16:54:07 +05:30
info_unix_test.go Refactor "init" version parsing, and add unit-test 2017-04-08 11:28:37 +02:00
info_windows.go api: types: keep info.SecurityOptions a string slice 2016-11-19 13:21:16 +01:00
inspect.go Don’t hold container lock for size calculation 2017-02-18 18:11:48 -08:00
inspect_solaris.go Add functional support for Docker sub commands on Solaris 2016-11-07 09:06:34 -08:00
inspect_unix.go Don’t hold container lock for size calculation 2017-02-18 18:11:48 -08:00
inspect_windows.go
keys.go
keys_unsupported.go change minor mistake of spelling 2016-12-20 21:05:19 +08:00
kill.go fix nits in comments 2016-12-27 23:30:50 +08:00
links.go Windows: Factor out sqlite 2016-12-01 09:38:08 -08:00
list.go 28722: List of containers with networkID filter is not working 2017-03-31 08:57:09 +00:00
list_unix.go
list_windows.go
logdrivers_linux.go
logdrivers_windows.go Windows: Enable fluentd logdriver 2016-11-08 19:54:57 -08:00
logs.go Prevent ContainerLogs from hanging if container doesn't run for long 2017-04-20 12:27:51 +01:00
logs_test.go
metrics.go Use counter for tracking container states 2017-04-29 17:10:14 -04:00
monitor.go Use counter for tracking container states 2017-04-29 17:10:14 -04:00
monitor_linux.go
monitor_solaris.go
monitor_windows.go Move stdio attach from libcontainerd backend to callback 2016-10-24 00:20:36 -07:00
mounts.go
names.go Use quoted form of container name and container id 2017-01-17 08:26:05 +00:00
network.go improve error of docker network create -d overlay on non-Swarm node 2017-04-12 05:31:00 +00:00
oci_linux.go remove --init-path from client 2017-04-10 16:49:43 +02:00
oci_solaris.go Add functional support for Docker sub commands on Solaris 2016-11-07 09:06:34 -08:00
oci_windows.go Fix scaling of NanoCPUs on Hyper-V containers 2017-04-12 16:54:27 -07:00
pause.go
prune.go Prevent multiple identical parallel pruning operations 2017-04-24 09:13:05 -07:00
reload.go rewrite reload code 2017-02-15 21:57:27 +08:00
reload_test.go use t.Fatal() to output the err message where the values used for formatting 2017-02-23 10:16:22 +08:00
rename.go Fix rename error when sid is empty 2017-01-11 21:35:59 +08:00
resize.go
restart.go Allow providing a custom storage directory for docker checkpoints 2016-10-28 07:56:05 -04:00
search.go
search_test.go Remove redundant format 2016-12-27 21:46:52 +08:00
seccomp_disabled.go
seccomp_linux.go daemon: add a flag to override the default seccomp profile 2016-11-02 21:41:29 +01:00
seccomp_unsupported.go
secrets.go do not force target type for secret references 2016-11-17 15:49:02 -05:00
secrets_linux.go secrets: secret management for swarm 2016-11-09 14:27:43 -05:00
secrets_unsupported.go secrets: secret management for swarm 2016-11-09 14:27:43 -05:00
selinux_linux.go
selinux_unsupported.go
start.go Fix some data races 2017-02-01 14:43:58 -05:00
start_unix.go daemon: honor default runtime when starting containers 2017-01-12 20:36:22 +01:00
start_windows.go (*) Support --net:container:<containername/id> for windows 2017-02-28 20:03:43 -08:00
stats.go Send "Name" and "ID" when stating stopped containers 2017-02-09 09:46:59 +08:00
stats_collector.go Extract daemon statsCollector to its own package 2017-01-04 18:18:30 +01:00
stats_unix.go
stats_windows.go
stop.go fix nits in comments 2016-12-27 23:30:50 +08:00
top_unix.go Fixing issue of docker top command failure when dealing with -m option 2017-03-10 02:50:21 +00:00
top_unix_test.go Fixing issue of docker top command failure when dealing with -m option 2017-03-10 02:50:21 +00:00
top_windows.go Convert ContainerTopOKResponse from swagger spec. 2017-01-03 11:47:47 -05:00
unpause.go
update.go Fix update clear the restart policy of monitor 2016-12-16 20:57:05 -05:00
update_linux.go Add --cpus support for docker update 2017-04-06 15:40:12 -07:00
update_solaris.go
update_windows.go
volumes.go Add label filter for docker system prune 2017-04-06 09:11:25 -07:00
volumes_unit_test.go
volumes_unix.go close the file 2016-11-21 19:56:01 +08:00
volumes_windows.go fix some typos from module contrib to man 2017-02-18 10:08:55 +08:00
wait.go
workdir.go Ignore the daemon log config when building images. 2017-01-30 10:59:19 -05:00