Vishnu kannan
dd8345ab32
Perform separate housekeeping for docker container filesystem stats.
2015-10-08 15:58:57 -07:00
Vishnu kannan
6e51487236
Compute fs usage for docker containers less often.
...
`du` can cause a lot of cpu usage.
2015-10-08 15:01:57 -07:00
Bas van der Lei
f8eb8cc982
validate name with isContainerName func
2015-10-02 13:49:27 +02:00
Bas van der Lei
9931854585
remove dead code
2015-10-02 13:42:40 +02:00
Bas van der Lei
13674cf06c
optimize dockerCgroupRegexp
2015-09-27 00:20:52 +02:00
Bas van der Lei
7788c8bd27
Ignore systemd 'containers' in the docker driver
2015-09-23 23:55:35 +02:00
Jimmi Dyson
b8fc8cd2ae
Add container specs & cadvisor version info to prometheus metrics
2015-09-09 14:28:54 +01:00
Jimmi Dyson
7e10398a50
Use proc fs to get network stats.
...
Reasons discussed in
https://github.com/google/cadvisor/issues/822#issuecomment-135811901 &
following.
2015-08-29 00:20:07 +01:00
Jimmi Dyson
ff0796712b
Add image name to container spec & prometheus metrics
...
Fixes #848
2015-08-28 12:38:16 +01:00
Jimmi Dyson
d5fa97c998
Get network stats by switching network namespace on newer Docker
...
versions.
Fixes #822
2015-08-25 23:27:01 +01:00
Rohit Jnagal
7a2f508b50
Fix network info for docker containers running with --net=host.
...
Docker still reports a loop device for these. Need to check for
more than one device to mark network as available.
2015-08-24 02:58:03 +00:00
Rohit Jnagal
a123fd72d8
Add logic to read custom metric config files from container root.
...
Docker does not provide the rootfs path through docker inspect or statefile
and the path is dependent on the storage driver being used.
Instead of enumerating the storage drivers, we pick a pid from the container
and get the config from /proc/pid/root. Although a bit expensive, this method
works for non-docker containers too.
2015-07-22 15:45:07 +00:00
Victor Marmol
fc62b8c384
Copy stats before we convert them.
...
Fix # 782
2015-06-25 11:30:36 -07:00
Ananya Kumar
aaad776d5d
1 line fix for net host bug
2015-06-10 11:00:49 -07:00
Victor Marmol
b923eff11c
Expose multiple network interfaces in API.
...
Part of #686
2015-06-07 17:01:53 -07:00
Victor Marmol
53bcd977b5
Detect systemd with cgroup hierarchy.
...
The previous approach was brittle from within a container and was inconsistend.
Fixes #666
2015-06-02 13:11:46 -07:00
Victor Marmol
0525d40a4a
Add DebugInfo() API and put the information on /validate
2015-05-21 14:46:35 -07:00
Rohit Jnagal
379e5aac57
Add manager methods to get docker status and images.
...
This is only meant to populate /docker UI page.
2015-05-13 22:07:09 +00:00
Rohit Jnagal
5e10989a78
Add an api to support ps/top.
2015-05-12 00:06:47 +00:00
Victor Marmol
1e09f9012d
Adding container labels
2015-04-30 23:09:03 -07:00
Rohit Jnagal
d0424eca0f
Add --docker_only flag to enable tracking for only docker containers and root.
...
This reduces unnecessary load on the system and also cleans up the UI clutter.
Currently defaulted to false.
2015-04-30 23:34:44 +00:00
Rohit Jnagal
dfcc05a953
Fix networking stats by switching Tx and Rx stats.
...
A better fix is to directly use stats collected by libcontainer.
2015-04-13 17:01:06 +00:00
Victor Marmol
64c0d3d8c3
Migrating cAdvisor to new libcontainer.
...
Backwards compatability is maintained with older versions of
libcontainer.
2015-04-10 14:51:29 -07:00
Clayton Coleman
9ce178f707
Lazily init DBus only when it is needed
...
OpenShift has some cAdvisor packages in its import chain. The init() here
invokes Dbus start even when cAdvisor is not actively running or being
used (in our packages). This change makes the systemd check and dbus
initialization and connection lazy, occuring only the first time someone
invokes UseSystemd().
2015-03-19 16:35:48 -04:00
Rohit Jnagal
a0a419614f
Add /storage endpoint to 2.0 API.
...
/storage returns {device, mountpoint, capacity, usage} for all filesystems.
In addition, it also detect and applies label for each filesystem - currently two - "root", "docker-images".
/storage/<label> returns info about the filesystem with specific label. eg. /storage/root returns info for root filesystem.
2015-03-11 01:49:58 +00:00
Rohit Jnagal
872546ba3a
Bulk move current info api to info/v1. Making room for info/v2.
2015-03-04 00:47:28 +00:00
Rohit Jnagal
e09f9684e6
Fix cpuset returned in spec on a single core machine.
...
Switch from "0-0" to "0".
2015-02-19 18:54:23 +00:00
Victor Marmol
131a0c21ea
Detect Docker containers by asking the Docker.
...
No longer do deduction from the cgroup path (only to get the Docker
container ID).
Fixes #450 .
2015-02-06 09:15:59 -08:00
Victor Marmol
45ba276ae8
Add container creation time to ContainerSpec.
2015-02-05 09:52:10 -08:00
Victor Marmol
86238d0179
Allow partial success of GetStats().
...
This should make us more robust in the face of failure (at the cost of
making the failures less prominent). We allow GetStats() to return an
error and a partial result. We will process the result and report the
error.
Fixes #306 .
2015-02-03 15:26:31 -08:00
Victor Marmol
01b456c129
Fix detection of AUFS layers.
...
We were using the container name instead of the Docker ID which breaks
in systemd systems.
Fixes #475 .
2015-02-03 10:06:19 -08:00
Vishnu Kannan
aedf42ba8c
Adding 'HasDiskIo' to Container Spec to indicate if diskio stats are available for a given container.
2015-01-20 05:06:57 +00:00
Victor Marmol
909fa133e1
Merge pull request #445 from rjnagal/docker
...
Add task load stats to containers.
2015-01-16 16:00:50 -08:00
Rohit Jnagal
cbdd96a554
Add task load stats to containers.
...
The stats are only populated when cAdvisor is running outside network namespaces.
We'll add a different backend to retrieve the same data from within namespaces.
2015-01-16 23:25:22 +00:00
Rohit Jnagal
ed155019ac
Verify and fix error message nit :)
2015-01-14 01:15:13 +00:00
Victor Marmol
adfccb7c1c
Updating to latest libcontainer.
2015-01-08 12:15:03 -08:00
Victor Marmol
643d647761
Gofmt all files.
2015-01-05 11:26:23 -08:00
Rohit Jnagal
cdd355421f
Add check for state directory to validator.
2014-12-28 18:04:32 +00:00
Rohit Jnagal
275b3ed653
Don't use state.json from libcontainer to get cgroup paths.
...
This confuses cadvisor on systems where cadvisor doesn't see cgroup mounts at the same place as root namespace view.
2014-12-24 00:25:11 +00:00
Victor Marmol
7ca63db2c5
Handle old versions of the libcontainer config.
...
Libcontainer recently changed its config by changing the type of a
field. This commit tries parsing the config as the new and old types.
2014-12-16 17:52:44 -08:00
Rohit Jnagal
8eec529106
Merge pull request #358 from vmarmol/update-libcontainer
...
Update libcontainer dependency
2014-12-15 17:01:44 -08:00
Victor Marmol
91c974e913
Generate CgroupPaths when not available.
...
This happens always for non-Docker containers and sometimes with older Docker
containers.
2014-12-15 16:57:30 -08:00
Victor Marmol
084e809507
Merge pull request #356 from rjnagal/rename
...
Add systemd information to validate output.
2014-12-16 07:35:30 +08:00
Rohit Jnagal
4ec9894ea2
Add systemd information to validate output.
2014-12-15 23:26:30 +00:00
Victor Marmol
0123fe1d07
Merge pull request #355 from rjnagal/syst
...
Fix Docker handler for machines that use systemd just as a naming service
2014-12-16 07:07:42 +08:00
Rohit Jnagal
f585e4bc5e
Fix Docker handler for machines that use systemd just as a naming service without controlling cgroups.
2014-12-15 22:58:44 +00:00
Rohit Jnagal
1953bd0e94
Bump minimum docker supported version to 1.0.
2014-12-15 16:57:22 +00:00
Victor Marmol
cb0387b41e
Try to detect systemd by checking for its named cgroup hierarchy.
...
Fixes #342
2014-12-11 17:30:33 -08:00
Victor Marmol
e3ab15417c
Ignore update errors for dead containers.
...
This adds an Exists() interface to detect when the container is dead.
Before reporting an update error we check is Exists() is true.
Some documentation was added as well.
2014-11-22 05:31:11 +08:00
Victor Marmol
0e603d2709
Let the raw driver handle the /docker container.
...
This will give us stats on this container and since the /docker UI
endpoint, it no longer serves the purpose it once did.
2014-11-20 06:44:35 +08:00
Victor Marmol
f97e57df88
Simplify how the Docker containers are handled.
...
This is done by introducting the concept of "namespaces" of container
names. The aliases of a container are under this namespace. Namespace
names are of the form:
//<namespace>/<alias>
This allows us to (within cAdvisor) query all docker containers as
//docker regardless of whether this is a systemd or a non-systemd system.
This does break our ability to handle Docker aliases with the /container
endpoint. I think this is acceptable as our support there was not
consistent between system types.
2014-11-12 18:01:47 -08:00
Victor Marmol
6e89bdef9f
Add /docker/ UI endpoint.
...
Fixes #294
2014-11-07 08:53:52 -08:00
Victor Marmol
e695c3820e
Only overwrite the Name and Parent in the libcontainer Cgroup.
...
Fixes #287
2014-10-29 11:41:23 -07:00
Victor Marmol
8aa05b0c39
Add API version v1.2 with /docker endpoint.
...
The /docker endpoint lists all Docker containers under one unified
namespace.
2014-10-20 22:24:01 -07:00
Vishnu Kannan
0699e7029d
Avoid storage usagge calculations when aufs driver is not being used.
2014-10-07 11:48:10 +00:00
Vishnu Kannan
5e8fecea6a
Adding filesystem usage calculation for docker containers. This patch also includes some internal refactoring.
...
'machine' api now exports a list of all existing 'ext*' filesystems along with the capacity.
2014-10-06 09:51:32 +00:00
Vish Kannan
1ed9d122c1
Merge pull request #220 from vmarmol/coreos
...
Fix name resolution in Systemd systems
2014-09-29 11:28:23 -07:00
Satnam Singh
7ddc75c41b
Squashed commit of the following:
...
commit 6bf9fe89f6
Author: Satnam Singh <satnam@google.com>
Date: Fri Sep 26 10:23:16 2014 -0700
Change error to warning during handling check.
commit c580907183
Author: Satnam Singh <satnam@google.com>
Date: Fri Sep 26 10:21:41 2014 -0700
Decapatalise fmt.Errorf error messages.
commit 3ecc5745d6
Author: Satnam Singh <satnam@google.com>
Date: Fri Sep 26 10:19:15 2014 -0700
Fix misunderstanding about when CanHandle fails.
commit adce0c5433
Author: Satnam Singh <satnam@google.com>
Date: Fri Sep 26 10:13:32 2014 -0700
Change the interface of CanHandle to return error information.
2014-09-26 18:06:58 -07:00
Victor Marmol
ebf231e4df
Fix name resolution in Systemd systems
2014-09-23 20:01:35 -07:00
Victor Marmol
6f35cf8e6c
Supporting graceful signal shutdown.
...
Adding a signal handler and gracefully shutting down all threads.
2014-09-23 14:13:58 -07:00
Victor Marmol
e22831f1bd
Flatten ContainerSpec.
2014-09-19 10:14:22 -07:00
Victor Marmol
b63d61ca97
Use inotify to watch for new containers.
...
This reduces cAdvisor CPU usage below 1% in my CoreOS system.
We also reduce global housekeeping to every 60s as a fallback in case we
miss an event.
2014-09-18 12:52:09 -07:00
Victor Marmol
f9c45094ab
Only register the Docker driver in systems using libcontainer.
2014-09-05 13:37:18 -07:00
Victor Marmol
b75dea4021
Adding --docekr_root to customize where Docker stores state.
...
Fixes #199
2014-08-29 14:54:40 -07:00
Vishnu Kannan
3e390e0f33
Use glog instead of 'log' library.
...
Docker-DCO-1.1-Signed-off-by: Vishnu Kannan <vishnuk@google.com> (github: vishh)
2014-08-07 18:38:58 +00:00
Victor Marmol
00f4f840ea
Move from filepath -> path for Join.
2014-08-03 10:06:39 -07:00
Victor Marmol
56054e3e31
Remove SplitName().
...
This is possible thanks to the new libcontainer interface that allows
the use of absolute paths.
2014-08-02 11:36:10 -07:00
Nan Monnand Deng
d6551d888b
list processes
2014-07-29 01:20:19 -04:00
Victor Marmol
7a3f7b9a29
Return an empty state for old versions of Docker.
...
Fixes #127 .
2014-07-25 08:20:55 -07:00
Rohit Jnagal
1fa48e8c39
Fix handling of cpumask for docker driver. Raw driver still reports all
...
cpus. Will fix it to read cpumask for cgroup seperately.
Docker-DCO-1.1-Signed-off-by: Rohit Jnagal <jnagal@google.com> (github: rjnagal)
2014-07-24 01:50:32 +00:00
Victor Marmol
239f4bad11
Added parent prefix to all Docker containers.
2014-07-23 13:23:27 -07:00
Victor Marmol
2e9176ae64
Fix Docker container slice in systemd systems.
...
It should be in /system.slice/docker-*.
2014-07-23 07:46:46 -07:00
Victor Marmol
eef8c01e4e
Better handle nested containers and libcontainer.
2014-07-22 18:04:08 -07:00
Vishnu Kannan
a748b53743
Docker ListContainers will work only for the '/docker' container.
2014-07-22 19:55:14 +00:00
Vishnu Kannan
f147996e9d
Ignore non '/docker' containers in the docker driver.
2014-07-22 19:55:14 +00:00
Vishnu Kannan
5dfa7b64ba
Removed NotActive error message from container package.
...
Imporved error messages.
2014-07-22 19:55:14 +00:00
Vishnu Kannan
ef13440034
Addressed comments. Another series of bug fixes.
...
Modified the docker driver and lmctfy driver to skip containers they cannot handle.
2014-07-22 19:55:14 +00:00
Vishnu Kannan
1edb798de5
Features:
...
Added Network Stats to Container Info. It still not exposed via the HTTP UI.
Bug fixes:
1. Modified docker handler to use libcontainer.GetStats instead of quering the fs package.
2. cAdvisor will not stall if any of its core operations fail.
3. cAdvisor will safely ignore any inactive or leaked docker containers. When containers are leaked cgroup state exists but docker is not aware of them.
2014-07-22 18:58:16 +00:00
Victor Marmol
a187d74e5b
Enable the simple raw driver.
...
It doesn't yet get the spec, but it is functional enough to use.
This removed the registration of lmctfy, the code will be removed in a
future PR once raw GetSpec() is complete.
2014-07-21 19:02:07 -07:00
Victor Marmol
a8863e6367
Initial version of the raw container driver.
2014-07-17 10:45:59 -07:00
Victor Marmol
1636c3e759
Change ContainerHandlerFactories to decide what containers they support.
...
This allows a ContainerHandlerFactory to register a CanHandle() function
which is called to determine whether the factory can handle a particular
container.
This commit disables being able to run cAdvisor without lmctfy. This
should be enabled again with a "no-op" global factory which I would like
to do in a separate PR.
2014-07-16 16:48:45 -07:00
Victor Marmol
c4c604c278
Handle systemd when it is present.
2014-07-14 10:00:21 -07:00
Nan Monnand Deng
304a166d7a
working set = usage - inactive
2014-06-27 14:47:02 -04:00
Nan Monnand Deng
875146e396
calculate working set based on #. pages in active LRU.
2014-06-27 13:03:05 -04:00
Victor Marmol
dcedfe3c9d
Rename libcontainer.Container -> libcontainer.Config
2014-06-24 14:54:30 -07:00
Nan Deng
3718b139b3
remove StatsPercentiles in container handler
2014-06-17 12:55:51 -07:00
Rohit Jnagal
54fbc922a5
Merge remote-tracking branch 'upstream/master'
...
Docker-DCO-1.1-Signed-off-by: Rohit Jnagal <jnagal@google.com> (github: rjnagal)
2014-06-16 17:22:48 +00:00
Rohit Jnagal
26a5cdabca
Add version information for components we depend on.
...
Docker-DCO-1.1-Signed-off-by: Rohit Jnagal <jnagal@google.com> (github: rjnagal)
2014-06-16 17:20:09 +00:00
Victor Marmol
410c27a84f
Track a container by all of its aliases
2014-06-13 18:24:59 -07:00
Nan Monnand Deng
6250bf3d0f
Add ContainerReference() to ContainerHandler().
2014-06-13 18:18:26 -04:00
Victor Marmol
b9738e6ee6
Switching from using Docker config to libcontainer config for ContainerSpec
2014-06-13 12:06:26 -07:00
Nan Deng
312bcae2db
gofmt -r "ContainerRef->ContainerReference" -w -l .
2014-06-12 17:32:46 -07:00
Nan Deng
89b5484734
changed actual handlers
2014-06-12 17:31:26 -07:00
Victor Marmol
e9ed0bfea5
Move to using the libcontainer repo directly.
...
Return empty stats for / and /docker in the docker driver
2014-06-12 17:11:01 -07:00
Victor Marmol
712f9fb32f
Migrating cAdvisor code from lmctfy
2014-06-09 12:12:07 -07:00