Commit Graph

318 Commits

Author SHA1 Message Date
Joe Shaw
cd5f6d7e84 Fix blocking select on container stop.
Add unit test to demonstrate fix.
2019-12-10 10:26:06 +00:00
Davanum Srinivas
b35086151a
Drop support for rkt - which is now archived
Change-Id: I4bc38990251fe12be521a242ff9b9c81e2d03501
2019-10-01 20:03:22 -04:00
Giuseppe Scrivano
60f064ee41
cgroup: initial support for cgroups v2
add some initial support for cgroups v2.  Not all the stats
supported on cgroups v1 are supported, e.g. it is not possible to read
percpu usage.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-09-06 21:26:35 +02:00
Jordan Liggitt
a022fa71b7 Split docker context initialization 2019-04-11 13:50:03 +00:00
Jordan Liggitt
e9a44a2984 Split crio context initialization 2019-04-11 13:50:03 +00:00
Jordan Liggitt
6757727a00 Split rkt context initialization 2019-04-11 13:50:03 +00:00
Jordan Liggitt
7dc4594b32 Add InitializeFSContext hook to plugins 2019-04-11 13:50:03 +00:00
Jordan Liggitt
e24fd90ae9 Move auto-registration to explicit install packages, register plugin interfaces 2019-04-11 13:50:03 +00:00
Jordan Liggitt
f7b509202d Restore manager.New signature, initialization code 2019-04-09 16:59:14 -04:00
Davanum Srinivas
40e6acb3bb
Reorganize code to allow conditional enablement of runtimes
Change-Id: I76583736d7ad39190a1a2bca820d4e957caadc84
2019-04-05 17:37:49 -04:00
David Ashpole
150629c099
Merge pull request #2147 from namreg/update-machine-info-periodically
Periodically updates machine info
2019-01-16 10:16:46 -08:00
Igor German
f2d9f42126 Run gofmt 2019-01-15 23:35:48 +03:00
Igor German
8b0ff0160c Periodically updates machine info 2019-01-15 18:17:19 +03:00
WanLinghao
4eab5b671e Add support to disable diskIO metrics 2019-01-15 09:43:33 +08:00
Davanum Srinivas
4da6d809be
Move from glog to klog
Change-Id: Ic92f57c2d7f268d8d985797974883c1a537d6993
2018-11-08 18:06:28 -05:00
Sashank Appireddy
02ecf721f5 Emit number of processes and file descriptors of a container 2018-10-29 16:55:34 -07:00
Yann Hodique
d8cdae8022 replace golang.org/x/exp/inotify with standalone library
context: kubernetes/kubernetes#68478

The inotify code was removed from golang.org/x/exp several years ago. Therefore
importing it from that path prevents downstream consumers from using any module
that makes use of more recent features of golang.org/x/exp.

Given that this code is by definition frozen and that the long term path should
be to migrate to fsnotify, replacing the current code by an identical standalone
copy doesn't have maintenance cost, and will unlock other activities for
kubernetes for example.
2018-10-22 11:53:17 -07:00
Yann Hodique
b36e6fb63a fix minor errors revealed by go 1.11 (#2039)
minor fixes for go 1.11
2018-09-10 13:49:37 -07:00
Mikhail Shaverdo
fcc77c654b Get rid of lock during list containers (#2024)
* Get rid of lock during list containers
2018-08-29 13:06:28 -07:00
David Ashpole
c225d06adf don't emit prometheus metrics that are ignored 2018-07-09 13:17:49 -07:00
lichuqiang
791138b01e Return best-effort result when AllDockerContainers hits the cache not synced issue 2018-07-04 09:58:48 +08:00
Sashank Appireddy
ed0e3f0f43 Add mesos containerizer support
This commit includes support for collecting container stats
launched by mesos containerizer.
2018-06-28 22:07:55 +00:00
David Ashpole
b1535b8a39
Merge pull request #1926 from andyxning/add_docker-only_whitelist
add docker_only_prefix_whitelist
2018-06-21 11:27:17 -07:00
David Ashpole
bc7e1cbb4f dont watch .mount cgroups 2018-06-14 10:17:50 -07:00
David Ashpole
8335af9d6b Revert "Switch from Inotify to Fsnotify"
This reverts commit c1a6d6090b.
2018-06-11 10:50:23 -07:00
Andy Xie
ed6521013f add raw container cgroup path prefix whitelist 2018-04-16 12:05:51 +08:00
David Ashpole
c1a6d6090b Switch from Inotify to Fsnotify 2018-04-09 11:09:40 -07:00
David Ashpole
4e32e6ea97 upon discovering a subdirectory, add a creation event for it 2018-03-27 17:46:25 -07:00
David Ashpole
436d75ce8d
fix #1902 bug with retryDockerStatus (#1903) 2018-03-14 16:58:57 -07:00
David Ashpole
c094ef0d2a
Merge pull request #1859 from andyxning/reduce_labels_for_container_info
reduce labels for container info
2018-02-21 08:33:17 -08:00
James Ravn
e660d8b8b7 Retry docker status on startup
For https://github.com/google/cadvisor/issues/1866.
2018-02-06 10:31:11 +00:00
Davanum Srinivas
b1656b253f Fix Warning->Warningf for better logging 2018-02-02 19:19:07 -05:00
Andy Xie
1ccbe6fdd0 reduce labels for container info 2018-01-12 00:14:01 +08:00
James Ravn
57e17d8be2 Add timeouts for docker queries
As these can otherwise block indefinitely due to docker issues.

This is to fix https://github.com/kubernetes/kubernetes/issues/53207,
where kubelet relies on cadvisor for gathering docker information as
part of its periodic node status update.
2017-12-05 13:50:48 +00:00
Tim Allclair
5b435b4b70
Clean up cAdvisor logging 2017-11-27 19:48:05 -08:00
Tim Allclair
3a40bbfc5c
Raise verbosity on runtime registration failure 2017-11-27 19:48:04 -08:00
David Ashpole
3166cdae87 add utils/clock dependency 2017-11-21 16:19:57 -08:00
David Ashpole
3d6ad6dd86 on demand metrics 2017-11-20 14:51:04 -08:00
David Ashpole
6988e70a3d Revert "fix #1708; move from inotify to fsnotify"
This reverts commit e6b6a1ac57.
2017-11-17 10:28:28 -08:00
abhi
6ad15431f4 Integrating containerd to cadvisor
This commit includes changes to integrate containerd
runtime to cadvisor to collect container stats

Signed-off-by: abhi <abhi@docker.com>

Test cases and minor changes

This commit include test cases and minor fixes
for the same

Signed-off-by: abhi <abhi@docker.com>
2017-11-14 17:37:36 -08:00
Rohit Agarwal
4a35130019 Collect container-level GPU metrics using NVML.
When cAdvisor starts up, it would read the `vendor` files in
`/sys/bus/pci/devices/*` to see if any NVIDIA devices (vendor ID: 0x10de) are
attached to the node. If no NVIDIA devices are found, this code path would
become dormant for the rest of cAdvisor lifetime. If NVIDIA devices are found,
we would start a goroutine that would check for the presence of NVML by trying
to dynamically load it at regular intervals. We need to do this regular
checking instead of doing it just once because it may happen that cAdvisor is
started before the NVIDIA drivers and NVML are installed.  Once the NVML
dynamic loading succeeds, we would use NVML’s query methods to find out how
many devices exist on the node and create a map from their minor numbers to
their handles and cache that map. The goroutine would exit at this point.

If we detected the presence of NVML in the previous step, whenever a new
container is detected by cAdvisor, cAdvisor would read the `devices.list` file
from the container's devices cgroup. The `devices.list` file lists the
major:minor number of all the devices that the container is allowed to access.
If we find any device with major number 195 (which is the major number assigned
to NVIDIA devices), we would cache the list of corresponding minor numbers for
that container.

During every housekeeping operation, in addition to collecting all the existing
metrics, we will use the cached NVIDIA device minor numbers and the map from
minor numbers to device handles to get metrics for GPU devices attached to the
container.
2017-11-06 11:54:59 -08:00
David Ashpole
53820123e6 Merge pull request #1336 from ronnielai/test
Don't rely on the returned value when there's an error
2017-10-24 15:56:55 -07:00
David Ashpole
e6b6a1ac57 fix #1708; move from inotify to fsnotify 2017-09-28 10:57:49 -07:00
Antonio Murdaca
4b002b3bd3
*: add CRI-O handler
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2017-09-05 17:01:58 +02:00
Yang Guo
a5adaad26d Add an API to get FsStats from filesystem UUID 2017-08-23 12:33:42 -07:00
Seth Jennings
2ab9f25f4e fixup manager after runc bump 2017-08-22 16:38:37 -05:00
Seth Jennings
3ba4699c12 skip subcontainer update on v2 calls 2017-08-17 12:36:38 -05:00
Chris Bui
cdf78981fb Allow finding docker containers by short name
Allow docker containers to be found by a short prefix name to match
the behavior of the docker daemon. This change now matches the
examples on the API docs.

Return an error if the given short name of a container is not unique.
2017-05-18 11:56:48 -05:00
Manjunath A Kumatagi
8fb1158353 Add Docker API version 2017-04-04 10:56:11 +05:30
David Ashpole
696b82ae97 do not log multiple filesystems if root container 2017-01-09 10:55:41 -08:00