Commit Graph

54 Commits

Author SHA1 Message Date
luhualin
e88534ca70 fix timestamp error for container_last_seen 2019-01-04 10:12:38 +08:00
luhualin
5c41c694a8 add prometheus metrics timestamp 2018-12-11 11:44:17 +08:00
hangongithub
70b83b9ac4 Ensure tcp6 and udp6 metrics are published via Prometheu (#2102)
add tcp6 and udp6 metrics to the prometheus endpoint

Change-Id: I17bcfee653527fe07d4791019e0e864ca88aeda3
2018-12-07 10:27:46 -08:00
Mikkel Oscar Lyderik Larsen
c097b20fba Add flag to white list container labels for prometheus metrics (#2113)
Add white_listed_container_labels flag to white list container labels for prometheus metrics

Signed-off-by: Mikkel Oscar Lyderik Larsen <mikkel.larsen@zalando.de>
2018-12-05 11:19:53 -08:00
David Ashpole
e4d403193f remove unused interface method 2018-11-09 09:29:26 -08:00
Davanum Srinivas
4da6d809be
Move from glog to klog
Change-Id: Ic92f57c2d7f268d8d985797974883c1a537d6993
2018-11-08 18:06:28 -05:00
Sashank Appireddy
da29418c31 cache process metrics 2018-11-06 13:29:14 -08:00
Sashank Appireddy
02ecf721f5 Emit number of processes and file descriptors of a container 2018-10-29 16:55:34 -07:00
Sashank Appireddy
e98f28b7c0 Rename extraLabel "type" to "failure_type" for memory_failures_total 2018-09-26 18:25:54 +00:00
David Ashpole
2fa6c624a2
Merge pull request #2034 from usabilla/mapped_file
Adds mapped_file metric
2018-08-29 10:25:29 -07:00
zhangjianweibj
cb8a808089 networkUdpMetrics error if condition 2018-08-15 14:58:02 +08:00
Gijs Kunze
9e175e9ea9 Adds mapped_file metric 2018-08-09 15:14:46 +02:00
Guoliang Wang
910de81342 Check the length before using container.Stats 2018-07-19 13:40:26 +08:00
David Ashpole
c225d06adf don't emit prometheus metrics that are ignored 2018-07-09 13:17:49 -07:00
Joseph Lorenzini
4bd335b8fd Control whether container labels are exported as prometheus metrics.
when cadvisor exports metrics for docker containers, there is a root cgroup (/) and cgroup for a docker container (/docker/uuid).
If docker container has a label on it, then this label is applied to all containers including the root container.
Because some containers don't have that label, the label will have an empty value. The reason for this is that Prometheus
does not allow sending a metric with the same name, but different labels, so cadvisor uses empty label values based on
the set of all labels for a given metric. This can result in many docker containers getting a large number of empty labels
because another container has that label.

If large number of docker labels vary a lot across images, then the set of labels will be enormous, where most of the labels
will be empty and have no value as prometheus metrics. To avoid this problem, a flag is provided that allows a user to
disable exporting docker labels as metrics.
2018-07-04 10:53:08 -05:00
nielsole
08f0c2397c Adding /proc/<pid>/schedstat (#1872)
Add /proc/<pid>/schedstat metrics for scheduler metrics
2018-03-08 09:27:06 -08:00
Bryan Boreham
ec6da3acae Prometheus metrics: optionally export total CPU instead of per-CPU
Per-CPU stats are more expensive to transport and store, and that
level of detail is not required in many cases.

We export overall total cpu in the same metric as per-cpu, so that
dashboards which previously summed over cpu will work identically.
2018-02-20 13:58:44 +00:00
Brian Brazil
27f103b266 Ensure all Prometheus metrics have the same labelnames.
Fixes #1704
2017-11-30 16:33:37 +00:00
Rohit Agarwal
126fb2232e Add accelerator metrics to the API.
The structure is generic to support most hardware accelerators like
GPUs, TPUs etc.

Note that the prometheus label for id is called acc_id, so that it
doesn't conflict with some other label that maybe called id.
2017-11-01 14:41:35 -07:00
Derek Carr
9ea61176bf Expose memory.max_usage_in_bytes in container stats 2017-10-10 17:31:31 -04:00
David Ashpole
1dcd0cee2b update description of memory usage 2017-09-28 10:48:07 -07:00
Jens Bissinger
2599ea6764 Add memory reservation in prom /metrics endpoint. 2017-09-12 19:20:49 +02:00
wujiaxing
8aed6e9cae Add cpu load,tcp\udp usage statistics in prom /metrics endpoint. 2017-06-14 00:54:17 +09:00
Clayton Coleman
4e25a7951f
Report container FS metrics into prometheus /metrics
PerDiskStats reported from cgroups were not being surfaced into
prometheus. In order to properly correlate the metrics, we need to
assign a device label to each metric (which is the FS or device path).
Since blkio cgroup tracks devices, we create a synthetic device
`/dev/NAME` for the metric.

Assign a Device label to each PerDiskStat for the handlers up front, and
then surface the PerDiskStat values into the prometheus metrics. Report
two new metrics - total bytes read and total bytes written.
2017-04-24 20:46:55 -04:00
Bas van der Lei
a3e8c73865 gnore unused cpus in Prometheus metrics
Only include cpu's in the Prometheus metrics endpoint that were used.

In recent kernels the cpuacct.statcpus behavior has changed to include
all possible cpu's. This can results in a high number of stale metrics
in the Prometheus endpoint.
2017-04-10 14:10:48 +02:00
Micah Hausler
a9bb292b52 Add inodes to /metrics endpoint 2016-08-27 18:39:53 -04:00
Tobias Schmidt
e76096d4f6 Provide option to control Prometheus labels
This change generalizes the existing ContainerNameToLabelsFunc to allow the user to fully control all labels attached to exported Prometheus metrics. The existing behavior is available as DefaultContainerLabelsFunc and is used if no custom function is provided.

This will allow Kubernetes to filter out its internal Docker labels.
2016-08-22 17:26:36 -04: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
Jimmi Dyson
f1d8b2da70
Prefix Docker labels & env vars in Prometheus metrics to prevent conflicts 2016-08-01 21:33:31 +01:00
Alexander Staubo
f8f474e791 This fixes a bug where any errors encountered during Prometheus metric
collection would stay counted in the gauge "container_scrape_errors",
making that particular metric useless. Instead, it must be reset on
every scrape.
2016-07-21 20:04:21 -04:00
Florian Koch
669bc4abfa add cgroup quota and period support / add missing tests 2016-02-02 20:33:11 +01:00
Shimin Guo
d656ffb0db Add unit tests. 2016-01-15 08:53:30 -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
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
Daniel Dao
544b852a3b satitize label name before setting them as prometheus label
Signed-off-by: Daniel Dao <dqminh@cloudflare.com>
2016-01-05 10:49:20 +00:00
Florian Pfitzer
009761cb53 Export image name and env variables as prometheus labels 2016-01-05 10:49:20 +00:00
Lei Xue
dbbe38dfed re-order the import package 2015-11-30 16:43:22 +08:00
Vish Kannan
a38832f31f Merge pull request #906 from jimmidyson/prometheus-container-name-to-labels
Registration of custom function to map container name to prometheus labels
2015-10-08 11:46:58 -07:00
Vish Kannan
64702e7202 Merge pull request #902 from jimmidyson/git-version
Expose git revision as well as version in version info, add Makefile
2015-10-08 11:42:12 -07:00
Jimmi Dyson
5db9f8674e Registration of custom function to map container name to prometheus labels 2015-10-07 11:30:58 +01:00
Tomas Kral
bd61caf0c3 add failcnt 2015-10-02 14:24:22 +02:00
Jimmi Dyson
cf43fd2556 Expose git revision as well as version in version info, add Makefile 2015-10-02 10:26:33 +01:00
Jimmi Dyson
760a25b94f Add machine memory & cpu cores to prometheus metrics 2015-09-10 11:59:16 +01:00
Jimmi Dyson
b8fc8cd2ae Add container specs & cadvisor version info to prometheus metrics 2015-09-09 14:28:54 +01:00
Jimmi Dyson
80648f783e Expose all interfaces in Prometheus metrics.
Fixes #871
2015-08-29 21:19:56 +01:00
Jimmi Dyson
ff0796712b Add image name to container spec & prometheus metrics
Fixes #848
2015-08-28 12:38:16 +01:00
Miciah Masters
003125975c glog.Warning -> glog.Warningf
Fix two places where glog.Warning is used with a formatted string.
2015-08-19 15:47:36 -04:00
Julius Volz
fa17966229 Clean up code around Prometheus metrics, more DRY.
With this change, all definitions and functionality for a given metric
are in a single place only instead of being distributed all over the
file. This makes it easier to inspect the code for correctness and
adding/changing metrics.
2015-03-13 17:00:07 +01:00