Commit Graph

193 Commits

Author SHA1 Message Date
Rohit Jnagal
64b105db5a Make cpu load reader flag controlled. 2015-04-15 23:37:36 +00:00
Victor Marmol
fd1ff04f7f Split OOM event into OOM and OOM Kill.
This will allow to watch and differentiate that the OOM victim may not
equal the OOM'd container.
2015-04-15 13:30:08 -07:00
Katie Knister
00ce5ca367 Reenable netlink cpu tracking 2015-04-14 14:07:19 -07:00
Victor Marmol
11462d80bc Lowering log levels.
Reduce common logging using Kubernetes logging standards.
2015-04-13 15:05:41 -07:00
Katie Knister
ee4bdc2698 Improvements to events integration test 2015-04-10 13:33:22 -07:00
Victor Marmol
a21bf2555e Make EventData a concrete type.
Having this as an interface was giving us a lot of problems with
unmarshaling. Made into a union of concrete types.
2015-04-09 15:21:24 -07:00
Justin Santa Barbara
95e4953239 Simple fix to format string 2015-04-07 08:32:57 -07:00
Victor Marmol
4cb69036f8 Move Event to info since it is a public API object. 2015-04-01 09:17:43 -07:00
Rohit Jnagal
d1f21bb2fd Merge pull request #600 from kateknister/apiBranch
adding systemd oomparser functionality
2015-03-25 23:06:00 -07:00
Katie Knister
3c7e67991d Created a way to remove unused channels from an eventHandler's watchers list 2015-03-25 16:36:48 -07:00
Katie Knister
21e96ed61c adding systemd oomparser functionality 2015-03-24 12:33:57 -07:00
Clayton Coleman
3e7c1b3613 Reduce the level for a few common log messages
Following the Kubernetes convention of V(2) is normal verbosity (log
each request to a webserver).
2015-03-19 23:55:36 -04:00
Rohit Jnagal
6db3717426 Add recursive and type options (raw/docker) to spec and summary endpoints.
spec, stats, and summary now all support the same options (except count,
which is only parsed for stats).
2015-03-18 18:44:59 +00:00
Victor Marmol
67f6ee48f9 Return unique containers in Subcontainers().
Before this we'd return an instance for each alias we'd saved.

Fixes #592.
2015-03-15 09:58:04 -07:00
Vish Kannan
588b1498ac Merge pull request #587 from rjnagal/docker
Add alias and namespace information to /spec endpoint
2015-03-13 14:22:56 -07:00
Rohit Jnagal
53d25cc90e Add alias and namespace information to /spec endpoint 2015-03-13 21:13:23 +00:00
Rohit Jnagal
e685067a04 Merge pull request #579 from vmarmol/master
Start() exits gracefully when there are no factories.
2015-03-11 23:24:16 -07:00
Victor Marmol
ffdb6f5c7d Start() exits gracefully when there are no factories.
This allows us to handle the case where there are no factories as
happens when testing in a non-container environment. We will still serve
the machine information that is available.
2015-03-11 21:22:16 -07:00
Victor Marmol
5eeb6fdd40 Merge pull request #574 from kateknister/master
Fixed some bugs in oomparser streaming
2015-03-11 09:14:07 -07:00
Victor Marmol
8ae06b5c3d Merge pull request #573 from rjnagal/docker
Add /storage endpoint to 2.0 API.
2015-03-10 21:48:51 -07: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
Katie Knister
78f3029943 Fixed some bugs in oomparser streaming 2015-03-10 18:18:54 -07:00
Victor Marmol
c593620f47 Don't fail if the raw cgroup factory fails to register.
This will allow us to degrade gracefully in the environments where no
cgroups exist, but we'd still like cAdvisor to be running.
2015-03-10 15:41:15 -07:00
Rohit Jnagal
d3db8503f4 Move derived stats to v2. Add v2 container spec. 2015-03-04 18:27:57 +00:00
Katie Knister
6ffb8454b0 Added container event monitoring 2015-03-03 18:14:36 -08: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
Victor Marmol
5e6c11abd9 Merge pull request #549 from kateknister/master
Revised oomparser to not use all the cpu
2015-03-03 08:25:48 -08:00
Victor Marmol
7e7c433307 Register container handler factories in manager.New().
This lets us simplify the startup of the manager.
2015-03-02 17:31:20 -08:00
Katie Knister
412f27798e Revised oomparser to not use all the cpu 2015-03-02 14:22:53 -08:00
Katie Knister
a40a9fc912 disabling oomparser due to CPU usage 2015-02-26 18:03:23 -08:00
Katie Knister
6e14267c3c Added a basic api interface for events 2015-02-26 14:14:25 -08:00
Victor Marmol
4033f14b4a Merge pull request #525 from vmarmol/time-based
Add Start and End to ContainerInfoRequests.
2015-02-23 12:52:52 -08:00
Victor Marmol
1a3c40a1d3 Don't fail startup if OOM watching failed.
Fixes #527.
2015-02-23 11:51:24 -08:00
Victor Marmol
63f5714db8 Add Start and End to ContainerInfoRequests.
This will allow querying a certain time range.
2015-02-22 19:07:40 -08:00
Katie Knister
5f66cbc9bf Added a way for oom events to be handled by the manager 2015-02-20 16:26:34 -08:00
Katie Knister
3856690715 Added an oomwatcher function to manager 2015-02-19 16:22:37 -08:00
Rohit Jnagal
28984d7811 Add spec to v2.0 API. 2015-02-19 17:59:41 +00:00
Rohit Jnagal
7201af3ca5 Expose a minimal 2.0 API with the first summary endpoint.
Right now, we just do raw container name. More types to follow.
We'll re-do the older endpoint in 2.0 before we publish it.
2015-02-19 05:27:44 +00:00
Victor Marmol
99a48d8310 Make explicit the use of InMemoryStorage in Manager.
The current structure is a remnant of when the in memory storage was one
of the options for backing store. Today, we always have the memory
storage with an optional "backend storage" plugin. This commit makes the
InMemoryStorage use explicit.
2015-02-18 14:09:59 -08:00
Rohit Jnagal
52d4be1f9e Disable cpu load tracking temporarily.
I'd like to understand its resource usage and improve accuracy
before we ship it in an official release.
2015-02-09 15:16:45 -08:00
Rohit Jnagal
1375f451b2 Refactor netlink implementation.
This allows us to plug in a scheddebug based interface.
2015-01-23 23:07:50 +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
Vish Kannan
308f03f9b9 Merge pull request #440 from rjnagal/docker
Remove duplicate assignment.
2015-01-14 16:07:27 -08:00
Rohit Jnagal
bcd46d13cd Remove duplicate assignment. 2015-01-14 23:30:47 +00:00
Rohit Jnagal
ed155019ac Verify and fix error message nit :) 2015-01-14 01:15:13 +00:00
Rohit Jnagal
e5200948f5 Add a disk map to machine info.
This is read once at start of cAdvisor. We can use this to report
machine state as well as return logical name for block devices in UI.

Signed-off-by: Rohit Jnagal <jnagal@google.com> (github: rjnagal)
2014-12-17 00:15:50 +00:00
Victor Marmol
4b9861246f Remove unused code. 2014-11-20 15:22:47 +08:00
Victor Marmol
181e12dda2 Refactoring and fixes of /docker API endpoint.
This canges the output of the Docker endpoint to be a map so that it is
more consistent from single to multiple returns. It also refactors
internally how we handle both types of requests.

Without this PR the /docker API endpoint is broken completely so this
change in format has no effect anyways.

These changes are tested by the upcoming integration tests.
2014-11-19 03:36:18 -08:00
Victor Marmol
742bb8c724 Do not duplicate Docker container output.
Since Docker containers are known by more than one name we were
returning them once for every name they're known by. This change makes
the returned containers unique.
2014-11-17 10:40:28 -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
cb80366c6d Fix logic for deciding if Docker container was not found.
This is currently broken for all searches of Docker containers.
2014-10-29 13:32:14 -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
Victor Marmol
62b37eca1d Adding --log_cadvisor_usage flag to log the resource usage of cAdvisor.
This helps during performance analysis.
2014-10-15 08:18:38 -07:00
Satnam Singh
833feae28b Fix assignment error in haste. 2014-09-24 11:07:48 -07:00
Satnam Singh
f3c92c381a More if undos. 2014-09-24 11:07:48 -07:00
Satnam Singh
1bdbb73c0e And a few more capatalization undos. 2014-09-24 11:07:48 -07:00
Satnam Singh
3f45b35768 Undo changed to Errorf in manager.go re: capatalization. 2014-09-24 10:59:18 -07:00
Satnam Singh
8551d376d8 Undo changes to if statements as requested by vmarmol. Fix typos in my changes. 2014-09-24 10:59:18 -07:00
Satnam Singh
bae82a583d A few minor Go style suggestions. 2014-09-24 10:53:52 -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
Vish Kannan
195772a1bc Merge pull request #245 from vmarmol/tests
Refactor and dependency inject containerData deps
2014-09-22 10:39:55 -07:00
Victor Marmol
e759059a09 Refactor and dependency inject containerData deps 2014-09-22 10:20:54 -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
42add2409a Removing sampling and percentiles from interface.
Also removing all implementations.
2014-09-15 14:13:07 -07:00
Victor Marmol
3d10fc747c Make the duration of housekeeping flag configurable. 2014-08-30 19:57:53 -07:00
Victor Marmol
4187dc3bcb Fix capitalization in log files. 2014-08-07 11:51:15 -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
41e27e40ef Adding v1.1 remote API.
Main addition is the "subcontainers" resource which provides
ContainerInfo for all subcontainers (recursively and including
self) of the specified container.
2014-08-01 16:17:43 -07:00
Nan Deng
9401d35ce2 gofmt -r "MemoryUsagePercentages->MemoryUsagePercentiles" 2014-07-23 17:58:50 -07:00
Nan Deng
2ac720aa3f remove FillDefaults() 2014-07-23 17:55:25 -07: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
Nan Deng
6818ac9b9f gofmt -r "ContainerInfoQuery->ContainerInfoRequest" 2014-07-08 18:04:57 -07:00
Nan Deng
d8e9f8e5a9 gofmt -r "FillWithDefaultValues->FillDefaults" 2014-07-08 17:20:47 -07:00
Nan Deng
f2a0365766 gofmt -r "CpuUsagePercentages->CpuUsagePercentiles" 2014-07-08 17:20:04 -07:00
Nan Deng
4d0b365d43 let users decide how many stats/samples they want to retrieve 2014-07-07 22:04:30 -07:00
Nan Deng
e18c7fbf8f report error if there's a nil storage driver 2014-06-17 15:07:41 -07:00
Nan Deng
e1dcc93231 use in memory storage to do stats 2014-06-17 13:13:50 -07:00
Nan Deng
3718b139b3 remove StatsPercentiles in container handler 2014-06-17 12:55:51 -07:00
Victor Marmol
fbf6e85fc7 Renaming StatsSummary to StatsPercentiles 2014-06-16 17:49:37 -07:00
Nan Deng
dc9f4422b4 rename 2014-06-16 14:51:35 -07:00
Nan Deng
a8401c422e stats writers 2014-06-16 14:49:59 -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
14028a1cf6 Remove all of a container's aliases on destroy 2014-06-13 18:28:40 -07:00
Victor Marmol
410c27a84f Track a container by all of its aliases 2014-06-13 18:24:59 -07:00
Nan Deng
90fc23fe61 rename var 2014-06-12 17:36:42 -07:00
Nan Deng
312bcae2db gofmt -r "ContainerRef->ContainerReference" -w -l . 2014-06-12 17:32:46 -07:00
Nan Deng
163179a84e changed pages and manager. 2014-06-12 17:31:26 -07:00
Victor Marmol
712f9fb32f Migrating cAdvisor code from lmctfy 2014-06-09 12:12:07 -07:00