Commit Graph

376 Commits

Author SHA1 Message Date
Calum Lacroix
967e09a3a5 Checks environment variables for empty strings
If an environment variable is an empty string, cadvisor panics and fails to start
2017-02-08 18:44:56 +00:00
Derek Carr
4ad5c58f6a Ignore any .mount cgroup in docker handler 2017-01-16 11:02:37 -05:00
David Ashpole
9fdeefe3e4 Cadvisor now publishes per-container inode stats using the command 'find . -xdev printf '.'| wc -c' this is published in the v2 api using a new field 2016-10-12 13:16:21 -07:00
Tim St. Clair
afe67fec68
Cleanup comment style: // should be proceded by a space 2016-10-07 17:06:02 -07:00
derekwaynecarr
b84046f12c Look at all cgroup mounts 2016-09-22 15:34:59 -04:00
Chun Chen
844c98e073 GetSpec missing memory reservation 2016-08-16 23:26:46 +08:00
Florian Koch
3ce98a46c4 add cgropu swap usage and export as prometheus metric 2016-08-09 07:33:37 +02:00
Tobias Schmidt
1653733ea7 Expose cpu cgroup CFS prometheus metrics
If CPU quota is configured (cpu.cfs_quota != -1) the CFS will provide
stats about elapsed periods and throtting in cpu.stats. This change
makes these information available as container_cpu_cfs_* metrics.
2016-08-06 18:08:26 -04:00
Andy Goldstein
2b525ff87e Ensure minimum kernel version for thin_ls
Ensure that kernel >= 4.4.0 or RHEL/Centos 7 kernel >= 3.10.0-366 exists before starting the thin
pool watcher. Prior versions have a bug in which reserving and releasing the metadata snapshot can
cause thin pool corruption.
2016-08-04 16:14:40 -04:00
derekwaynecarr
6c114be580 Expose total inodes 2016-08-02 10:47:51 -04:00
Tim St. Clair
bbe54c0a10 Merge pull request #1368 from derekwaynecarr/inodes_pointer
Allow clients to know if inodes data is available
2016-07-29 10:10:30 -07:00
derekwaynecarr
cccf9d5fec Allow clients to know if inodes are supported on a filesystem 2016-07-26 11:15:07 -04:00
Andy Goldstein
d05098b314 Lower ThinPoolWatcher cache miss log level 2016-07-23 07:07:42 -04:00
Michael Taufen
307d1b1cb3 Modify working set memory stats calculation
Change working set calculation to usage - total_inactive_file, rather than
usage - total_inactive_anon - total_inactive_file. Since writes to tmpfs
get tracked as total_inactive_anon when swap is disabled, the old
calculation would under-report memory pressure.

See this Kubernetes issue for context:
https://github.com/kubernetes/kubernetes/issues/28619
2016-07-15 10:58:25 -07:00
Matt Wringe
213c254bb7 Add in the ability to expose the ip address of a container. 2016-07-13 13:58:43 -04:00
Tim St. Clair
35f7bc5ee7 Move mocks to testing package to remove +build tags
Some go tools (e.g. godef, gorename) don't handle +build tags well, so
I refactored some packages to remove the test tags from cAdvisor.
2016-07-06 14:15:43 -07:00
Seth Jennings
eafff745a5 only fail fs stat gather if metadata device not found 2016-06-21 16:05:37 -05:00
Paul Morie
c37d048e1b Check for thin_ls binary in path when using ThinPoolWatcher 2016-06-14 13:19:05 -04:00
Tim St. Clair
3fbe18de9a Merge pull request #1204 from pmorie/dm-support
devicemapper thin_ls support
2016-05-18 12:30:05 -07:00
Paul Morie
647224c95a Add devicemapper support for docker containers 2016-05-18 15:19:20 -04:00
Shaya Potter
6fa3687720 Polling rkt implementation of new watcher inteface (#1284)
polling rkt implementation of new watcher inteface
2016-05-17 10:34:56 -07:00
Shaya Potter
e02632463b Refactor container watching out of raw handler into its own inteface / package 2016-05-11 20:27:10 -07:00
Tim St. Clair
8404284c42 Merge pull request #1274 from timstclair/container
Delete unused ListThreads container method
2016-05-09 11:59:28 -07:00
Tim St. Clair
d1868287db Clean up docker root dir 2016-05-06 19:31:36 -07:00
Tim St. Clair
4c506006f2 Don't validate docker state file, since it's no longer used 2016-05-06 19:29:24 -07:00
Tim St. Clair
019bfaecc7 Delete unused ListThreads container method 2016-05-06 13:45:29 -07:00
Tim St. Clair
05fb225624 Merge pull request #1269 from sjpotter/update-rkt
version checking for rkt + godep changes
2016-05-06 12:40:40 -07:00
Shaya Potter
44795d7ce0 add version checking for rkt api service + godep changes 2016-05-06 01:01:20 -07:00
Vish Kannan
bebe18b67a Merge pull request #1261 from sjpotter/listToCommon
move ListContainers code to common and make rkt play nice
2016-05-03 10:12:54 -07:00
Shaya Potter
5ca11bb1a0 move ListContainers code to common and make rkt play nice
playing nice means not elliding the system.slice cgroup but allowing the
raw handler to handle it
2016-05-03 07:14:53 -07:00
Tim St. Clair
4d3ef349fb Move utils/machine -> machine 2016-05-02 15:56:49 -07:00
Tim St. Clair
f365c6a115 Move docker types to v1 API 2016-05-02 15:52:29 -07:00
Tim St. Clair
0c89fd1b71 Refactor docker-specific functions from manager to docker 2016-05-02 12:24:31 -07:00
Lantao Liu
ece4c555cc switch to the new engine-api 2016-04-25 19:22:05 -07:00
derekwaynecarr
d01934a3e4 on systemd, we should ignore .mount cgroups 2016-04-20 23:47:19 -04:00
Shaya Potter
5dc9fbad3c Dont block on grpc if nothing is listeing on rkt api service port (#1218)
attempt to connect to rkt api service with net before grpc
2016-04-15 16:11:49 -07:00
Tim St. Clair
9790a0d3f4 Fix docker GetSpec to include image, labels, and env vars 2016-04-15 15:34:24 -07:00
Tim St. Clair
dc6415aef7 Check docker container existance the same way as raw & rkt 2016-04-15 11:35:31 -07:00
Tim St. Clair
4a8f3e4c93 Read docker container spec from cgroupfs, rather than libcontainer spec 2016-04-14 17:10:03 -07:00
Tim St. Clair
4861405904 Refactor common container GetSpec
- Pull out the root container cases, since they're only relevant in the
  raw container handler
- Pass parameters rather than depending on AbstractContainerInterface
2016-04-14 16:57:52 -07:00
Tim St. Clair
7b1820b1d4 Look for container state in containerd path 2016-04-13 15:09:08 -07:00
Tim St. Clair
b768a9d1dc If docker /info does not include ServerVersion, fallback to /version 2016-04-08 17:05:26 -07:00
Tim St. Clair
b553e02476 Fix cAdivsor docker validation 2016-04-08 17:05:26 -07:00
Tim St. Clair
d9c864324b Fix usage of the latest go-dockerclient 2016-04-04 18:01:47 -07:00
Shaya Potter
ee52fdf4d1 address jon and vish comments 2016-03-23 18:19:31 -07:00
Shaya Potter
206670a655 first cut of rkt handler 2016-03-21 17:34:42 -07:00
Vishnu kannan
e2717d8bb7 Avoid collecting network stats for non root cgroups in raw handler.
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-03-15 12:16:11 -07:00
Shaya Potter
5e04a224ae pull out common parts of docker and raw container handlers for use by rkt handler 2016-03-02 16:12:04 -08:00
Vishnu Kannan
da888b11b2 Set spec.hasFilesystem to true by default for docker containers. 2016-03-01 09:58:28 -08:00
Seth Jennings
decac1ac15 nil pointer check 2016-02-29 11:37:25 -06:00
Vish Kannan
06ac85ca29 Merge pull request #1121 from vishh/opt-out-metrics
Support opt out for metrics.
2016-02-25 16:25:02 -08:00
Vishnu kannan
2defa0bddb Adding support for inodes.
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-02-25 15:13:58 -08:00
Vishnu kannan
36415f465a Support opt out for metrics.
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-02-24 15:57:31 -08:00
Vishnu kannan
18a2abc8e5 Ignore empty strings paths while calculting disk usage.
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-02-24 11:04:10 -08:00
Vishnu kannan
07136d4e90 Do not fail stats collection if cpu_cfs_quota is not enabled.
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-02-23 17:20:02 -08:00
Vishnu kannan
262ceb075c Fix docker storage path while calculating disk usage from within the container.
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-02-18 16:44:33 -08:00
Vishnu kannan
e009e64663 Adding an exponential backoff for fs usage tracking using du
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-02-16 16:27:16 -08:00
Vishnu kannan
110540b4fe Timeout du after a minute.
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-02-16 12:43:50 -08:00
Tim St. Clair
0bc286dc93 Stop leaking testing dependencies (and flags) in non-testing builds 2016-02-11 13:18:02 -08:00
Jimmi Dyson
31dcb5f3b7 Remove systemd docker container name check 2016-02-06 20:38:32 +00:00
Vishnu kannan
6a6abc19f4 remove unused var rwLayerIDDirTemplate
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-02-05 17:15:00 -08:00
Vishnu kannan
6f0c6d3667 add todo to cleanup variable names in docker handler
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-02-05 16:32:08 -08:00
Vishnu kannan
dabec0a6b2 Fix fs stats handling for non-aufs storage drivers.
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-02-05 16:32:07 -08:00
Jimmi Dyson
a8946729de Merge pull request #969 from f0/master
add support for cgroup  CPUQuota  and CPUPeriod prometheus limit
2016-02-04 16:51:38 +00:00
Vishnu kannan
3f75344053 Fallback to flag defined value for storage dir in case docker info
doesn't provide the storage dir.

Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-02-03 18:00:59 -08:00
Vishnu kannan
f5829b4744 Rework the v2.1 API to expose container Info.
Added a test for filesystem stats. Devicemapper backend is ignored

Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-02-03 17:02:49 -08:00
Florian Koch
669bc4abfa add cgroup quota and period support / add missing tests 2016-02-02 20:33:11 +01:00
Vishnu kannan
59c03672d0 Handle fs metrics for docker version >= 1.10.0
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-02-02 10:20:20 -08:00
Vishnu kannan
5ab2f45fc6 Use storage dir from docker info for filesystem usage tracking.
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-02-01 18:20:00 -08:00
Tim St. Clair
f5bceae3a2 Merge pull request #1033 from asteris-llc/master
Add the support for kafka in cAdvisor's storage, including output of container id and labels
2016-01-29 17:17:06 -05:00
Allison Richardet
80ba7e7db7 Add the support for kafka in cAdvisor's storage, including output of container id and labels
Addressing PR Feedback

Addressing PR Feedback
2016-01-27 21:33:57 -06:00
Jimmi Dyson
4c345b1989 Merge pull request #1063 from dqminh/fix-envs-handler
Initialize env mapping for labels when creating docker container
2016-01-27 10:46:24 +00:00
Vish Kannan
bef8522964 Merge pull request #1046 from jimmidyson/libcontainer-bump
bump(github.com/opencontainers/runc/libcontainer)
2016-01-26 14:35:46 -08:00
Jimmi Dyson
336821d28e Fix up networking stats for new docker network functionality 2016-01-26 11:32:39 +00:00
Jimmi Dyson
33386f899b bump(github.com/opencontainers/runc/libcontainer)
Fixes issues with breaking changes to ``GetPids` which is affecting
downstream consumers of cadvisor (e.g. Kubernetes).
2016-01-26 09:46:59 +00:00
Daniel Dao
127b09f5ae initialize env mapping
Signed-off-by: Daniel Dao <dqminh@cloudflare.com>
2016-01-18 15:58:45 +00:00
Vishnu Kannan
944201c86b Refactor api conversion methods. 2016-01-15 15:40:15 -08:00
Vishnu kannan
6dfdd8eca1 1. Update filesystem stats APIs.
2. Add BaseUsage to containers which includes only the rootfs usage, if available.

Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-01-15 15:39:17 -08:00
Shimin Guo
a26b58ec8e expose page cache size 2016-01-15 08:45:51 -08:00
Shimin Guo
1a867bdadd expose RSS 2016-01-15 08:45:51 -08:00
Jimmi Dyson
4e9d29a408 Fix FS usage goroutine leaks 2016-01-14 19:30:48 +00:00
Vish Kannan
01434a1c54 Merge pull request #1020 from miguel250/zfs-support
Add support ZFS filesystem
2016-01-13 11:52:37 -08:00
Daniel Dao
e5b6bfa94f add whitelisted env as container metadata
This add Envs to container spec as a metadata source. When using prometheus
exposition format, they will be merged into the list of metrics' labels.

Also changed the cli flag to docker_env_metadata_whitelist, and add refenrences
of whitelist envs to API

Signed-off-by: Daniel Dao <dqminh@cloudflare.com>
2016-01-13 11:22:13 +00:00
Florian Pfitzer
009761cb53 Export image name and env variables as prometheus labels 2016-01-05 10:49:20 +00:00
Miguel Perez
e0fef76668 Add support ZFS filesystem
- fix container usage stat not loading on first load
2015-12-15 15:41:19 -05:00
Vishnu kannan
a6daa760c8 Fix goroutine leak in docker fs handler logic.
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2015-12-04 11:19:49 -08:00
Jonathan Boulle
4965f069b7 Fix case statements dealing with storageDriver
cf0adcc817 introduced two switch
statements to facilitate the addition of the `overlayStorageDriver`;
unfortunately neither of them conform to the Go switch semantic, which
does not fallthrough unless explicitly requested. In one case this was
innocuous (because a `break` was effectively the same as a no-op) but in
the other it would cause the `HasFilesystem` bool to not be set
appropriately in the case of `aufsStorageDriver` being used.

IMHO it's also more idiomatic to perform the default behaviour in the
default case rather than pre-setting and overriding it.
2015-12-02 16:04:01 -08:00
Vishnu Kannan
cf0adcc817 Add support for Overlayfs.
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2015-12-02 15:43:34 -08:00
Lei Xue
15b34b0131 add test case for compatibility.go 2015-12-02 11:01:50 +08:00
Lei Xue
7343ae4583 fix unmarshal container config failure with Docker 1.8.3 2015-12-02 11:01:12 +08:00
Lei Xue
dbbe38dfed re-order the import package 2015-11-30 16:43:22 +08:00
Jimmi Dyson
1f679cee70 Clean up unused struct fields (via structcheck linter) 2015-11-27 22:06:16 +00:00
Jimmi Dyson
82810f13cd Remove unused code (via deadcode linter) 2015-11-27 21:48:33 +00:00
Jimmi Dyson
360c73c6fd Improve perf of interface stats parsing 2015-11-27 14:12:41 +00:00
Jimmi Dyson
f9eb56e800 Merge pull request #966 from afein/godep_update_runc
[Godeps] changed docker/libcontainer dependency to runc/libcontainer
2015-11-26 15:19:28 +00:00
Jimmi Dyson
cec96eb68b Merge pull request #978 from jimmidyson/regexp-perf
Regexp tidy up
2015-11-26 09:45:27 +00:00
Jimmi Dyson
d1fce20304 Regexp tidy up 2015-11-26 09:14:26 +00:00
Jimmi Dyson
17622ecba1 Rename readInt64 -> readUInt64 for clarity 2015-11-25 16:42:33 +00:00
Alex Mavrogiannis
4533dd7d18 changed libcontainer dependency to runc 2015-11-21 14:04:01 -08:00
Vishnu kannan
401cbbc48f Add a --nosystemd flag to avoid assuming systemd to be the cgroups
owner for docker containers.

Signed-off-by: Vishnu kannan <vishnuk@google.com>
2015-11-16 10:37:54 -08:00