cAdvisor Exporter
配置并启用cadvisor_exporter
在docker中启动 grafana-agent,同时映射相关目录
-v /tmp/agent:/etc/agent/data \
-v /tmp/grafana-agent-cfg.yaml:/etc/agent/agent.yaml \
-p 12345:12345 \
-d \
--privileged \
grafana/agent:v0.23.0 \
--config.file=/etc/agent/agent.yaml \
--metrics.wal-directory=/etc/agent/data
cadvisor_version_info{cadvisorRevision="",cadvisorVersion="",dockerVersion="",kernelVersion="5.10.76-linuxkit",osVersion="Debian GNU/Linux 10 (buster)"} 1
container_blkio_device_usage_total{device="/dev/vda",id="/",major="254",minor="0",operation="Read"} 4.6509056e+07 1645109878135
container_blkio_device_usage_total{device="/dev/vda",id="/",major="254",minor="0",operation="Write"} 3.13243648e+09 1645109878135
container_cpu_load_average_10s{id="/"} 0 1645109878135
container_cpu_system_seconds_total{id="/"} 57.789 1645109878135
container_cpu_usage_seconds_total{cpu="total",id="/"} 91.57 1645109878135
container_cpu_user_seconds_total{id="/"} 33.781 1645109878135
container_fs_inodes_free{device="/dev",id="/"} 254415 1645109878135
container_fs_inodes_free{device="/dev/shm",id="/"} 254551 1645109878135
container_fs_inodes_free{device="/dev/vda1",id="/"} 3.890602e+06 1645109878135
container_fs_inodes_free{device="/rootfs/dev/shm",id="/"} 254551 1645109878135
...
采集的指标列表
完整地配置项说明
# Enables the cadvisor integration, allowing the Agent to automatically
# collect metrics for the specified github objects.
[enabled: <boolean> | default = false]
# Sets an explicit value for the instance label when the integration is
# self-scraped. Overrides inferred values.
[instance: <string> | default = <integrations_config.instance>]
# Automatically collect metrics from this integration. If disabled,
# the cadvisor integration will be run but not scraped and thus not
# remote-written. Metrics for the integration will be exposed at
# /integrations/cadvisor/metrics and can be scraped by an external
# process.
[scrape_integration: <boolean> | default = <integrations_config.scrape_integrations>]
# How often should the metrics be collected? Defaults to
[scrape_interval: <duration> | default = <global_config.scrape_interval>]
# The timeout before considering the scrape a failure. Defaults to
# prometheus.global.scrape_timeout.
[scrape_timeout: <duration> | default = <global_config.scrape_timeout>]
# Allows for relabeling labels on the target.
relabel_configs:
[- <relabel_config> ... ]
# Relabel metrics coming from the integration, allowing to drop series
# from the integration that you don't care about.
metric_relabel_configs:
[ - <relabel_config> ... ]
# How frequent to truncate the WAL for this integration.
[wal_truncate_frequency: <duration> | default = "60m"]
#
# cAdvisor-specific configuration options
#
# Convert container labels and environment variables into labels on prometheus metrics for each container. If false, then only metrics exported are container name, first alias, and image name.
[store_container_labels: <boolean> | default = true]
# List of container labels to be converted to labels on prometheus metrics for each container. store_container_labels must be set to false for this to take effect.
allowlisted_container_labels:
[ - <string> ]
# List of environment variable keys matched with specified prefix that needs to be collected for containers, only support containerd and docker runtime for now.
env_metadata_allowlist:
[ - <string> ]
# List of cgroup path prefix that needs to be collected even when docker_only is specified.
raw_cgroup_prefix_allowlist:
[ - <string> ]
# resctrl mon groups updating interval. Zero value disables updating mon groups.
[resctrl_interval: <int> | default = 0]
# List of `metrics` to be disabled. If set, overrides the default disabled metrics.
disabled_metrics:
[ - <string> ]
# List of `metrics` to be enabled. If set, overrides disabled_metrics
enabled_metrics:
[ - <string> ]
# Length of time to keep data stored in memory
[storage_duration: <duration> | default = "2m"]
# Containerd endpoint
[containerd: <string> | default = "/run/containerd/containerd.sock"]
# Containerd namespace
[containerd_namespace: <string> | default = "k8s.io"]
# Docker endpoint
[docker: <string> | default = "unix:///var/run/docker.sock"]
# Use TLS to connect to docker
[docker_tls: <boolean> | default = false]
# Path to client certificate for TLS connection to docker
[docker_tls_cert: <string> | default = "cert.pem"]
# Path to private key for TLS connection to docker
[docker_tls_key: <string> | default = "key.pem"]
# Path to a trusted CA for TLS connection to docker
[docker_tls_ca: <string> | default = "ca.pem"]
# Only report docker containers in addition to root stats
[docker_only: <boolean> | default = false]