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>
This commit is contained in:
Daniel Dao 2016-01-05 12:42:48 +00:00
parent 544b852a3b
commit e5b6bfa94f
7 changed files with 79 additions and 68 deletions

View File

@ -49,7 +49,7 @@ var dockerCgroupRegexp = regexp.MustCompile(`.+-([a-z0-9]{64})\.scope$`)
var noSystemd = flag.Bool("nosystemd", false, "Explicitly disable systemd support for Docker containers") var noSystemd = flag.Bool("nosystemd", false, "Explicitly disable systemd support for Docker containers")
var dockerMetadataEnvs = flag.String("docker_metadata_env", "", "Comma seperated list with names of env variables, which will be exported as metadata (default: empty)") var dockerEnvWhitelist = flag.String("docker_env_metadata_whitelist", "", "a comma-separated list of environment variable keys that needs to be collected for docker containers")
// TODO(vmarmol): Export run dir too for newer Dockers. // TODO(vmarmol): Export run dir too for newer Dockers.
// Directory holding Docker container state information. // Directory holding Docker container state information.
@ -120,7 +120,7 @@ func (self *dockerFactory) NewContainerHandler(name string, inHostNamespace bool
return return
} }
exposedMetadata := strings.Split(*dockerMetadataEnvs, ",") metadataEnvs := strings.Split(*dockerEnvWhitelist, ",")
handler, err = newDockerContainerHandler( handler, err = newDockerContainerHandler(
client, client,
@ -130,7 +130,7 @@ func (self *dockerFactory) NewContainerHandler(name string, inHostNamespace bool
self.storageDriver, self.storageDriver,
&self.cgroupSubsystems, &self.cgroupSubsystems,
inHostNamespace, inHostNamespace,
exposedMetadata, metadataEnvs,
) )
return return
} }

View File

@ -66,8 +66,9 @@ type dockerContainerHandler struct {
// Time at which this container was created. // Time at which this container was created.
creationTime time.Time creationTime time.Time
// Metadata labels associated with the container. // Metadata associated with the container.
labels map[string]string labels map[string]string
envs map[string]string
// The container PID used to switch namespaces as required // The container PID used to switch namespaces as required
pid int pid int
@ -93,7 +94,7 @@ func newDockerContainerHandler(
storageDriver storageDriver, storageDriver storageDriver,
cgroupSubsystems *containerlibcontainer.CgroupSubsystems, cgroupSubsystems *containerlibcontainer.CgroupSubsystems,
inHostNamespace bool, inHostNamespace bool,
exposedMetadata []string, metadataEnvs []string,
) (container.ContainerHandler, error) { ) (container.ContainerHandler, error) {
// Create the cgroup paths. // Create the cgroup paths.
cgroupPaths := make(map[string]string, len(cgroupSubsystems.MountPoints)) cgroupPaths := make(map[string]string, len(cgroupSubsystems.MountPoints))
@ -159,13 +160,11 @@ func newDockerContainerHandler(
handler.networkMode = ctnr.HostConfig.NetworkMode handler.networkMode = ctnr.HostConfig.NetworkMode
// split env vars to get metadata map. // split env vars to get metadata map.
if len(exposedMetadata) > 0 { for _, exposedEnv := range metadataEnvs {
for _, envVar := range ctnr.Config.Env { for _, envVar := range ctnr.Config.Env {
splits := strings.SplitN(envVar, "=", 2) splits := strings.SplitN(envVar, "=", 2)
for _, exposedVar := range exposedMetadata { if splits[0] == exposedEnv {
if splits[0] == exposedVar { handler.envs[strings.ToLower(exposedEnv)] = splits[1]
handler.labels[strings.ToLower(exposedVar)] = splits[1]
}
} }
} }
} }
@ -259,6 +258,7 @@ func (self *dockerContainerHandler) GetSpec() (info.ContainerSpec, error) {
} }
spec.Labels = self.labels spec.Labels = self.labels
spec.Envs = self.envs
spec.Image = self.image spec.Image = self.image
spec.HasNetwork = hasNet(self.networkMode) spec.HasNetwork = hasNet(self.networkMode)

View File

@ -45,6 +45,8 @@ type ContainerSpec struct {
// Metadata labels associated with this container. // Metadata labels associated with this container.
Labels map[string]string `json:"labels,omitempty"` Labels map[string]string `json:"labels,omitempty"`
// Metadata envs associated with this container. Only whitelisted envs are added.
Envs map[string]string `json:"envs,omitempty"`
HasCpu bool `json:"has_cpu"` HasCpu bool `json:"has_cpu"`
Cpu CpuSpec `json:"cpu,omitempty"` Cpu CpuSpec `json:"cpu,omitempty"`

View File

@ -66,6 +66,8 @@ type ContainerSpec struct {
// Metadata labels associated with this container. // Metadata labels associated with this container.
Labels map[string]string `json:"labels,omitempty"` Labels map[string]string `json:"labels,omitempty"`
// Metadata envs associated with this container. Only whitelisted envs are added.
Envs map[string]string `json:"envs,omitempty"`
HasCpu bool `json:"has_cpu"` HasCpu bool `json:"has_cpu"`
Cpu CpuSpec `json:"cpu,omitempty"` Cpu CpuSpec `json:"cpu,omitempty"`

View File

@ -514,9 +514,13 @@ func (c *PrometheusCollector) collectContainersInfo(ch chan<- prometheus.Metric)
} }
} }
for labelKey, labelValue := range container.Spec.Labels { for k, v := range container.Spec.Labels {
baseLabels = append(baseLabels, sanitizeLabelName(labelKey)) baseLabels = append(baseLabels, sanitizeLabelName(k))
baseLabelValues = append(baseLabelValues, labelValue) baseLabelValues = append(baseLabelValues, v)
}
for k, v := range container.Spec.Envs {
baseLabels = append(baseLabels, sanitizeLabelName(k))
baseLabelValues = append(baseLabelValues, v)
} }
// Container spec // Container spec

View File

@ -58,7 +58,10 @@ func (p testSubcontainersInfoProvider) SubcontainersInfo(string, *info.Container
Image: "test", Image: "test",
CreationTime: time.Unix(1257894000, 0), CreationTime: time.Unix(1257894000, 0),
Labels: map[string]string{ Labels: map[string]string{
"foo.metric": "bar", "foo.label": "bar",
},
Envs: map[string]string{
"foo+env": "prod",
}, },
}, },
Stats: []*info.ContainerStats{ Stats: []*info.ContainerStats{

View File

@ -3,123 +3,123 @@
cadvisor_version_info{cadvisorRevision="abcdef",cadvisorVersion="0.16.0",dockerVersion="1.8.1",kernelVersion="4.1.6-200.fc22.x86_64",osVersion="Fedora 22 (Twenty Two)"} 1 cadvisor_version_info{cadvisorRevision="abcdef",cadvisorVersion="0.16.0",dockerVersion="1.8.1",kernelVersion="4.1.6-200.fc22.x86_64",osVersion="Fedora 22 (Twenty Two)"} 1
# HELP container_cpu_system_seconds_total Cumulative system cpu time consumed in seconds. # HELP container_cpu_system_seconds_total Cumulative system cpu time consumed in seconds.
# TYPE container_cpu_system_seconds_total counter # TYPE container_cpu_system_seconds_total counter
container_cpu_system_seconds_total{foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 7e-09 container_cpu_system_seconds_total{foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 7e-09
# HELP container_cpu_usage_seconds_total Cumulative cpu time consumed per cpu in seconds. # HELP container_cpu_usage_seconds_total Cumulative cpu time consumed per cpu in seconds.
# TYPE container_cpu_usage_seconds_total counter # TYPE container_cpu_usage_seconds_total counter
container_cpu_usage_seconds_total{cpu="cpu00",foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 2e-09 container_cpu_usage_seconds_total{cpu="cpu00",foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 2e-09
container_cpu_usage_seconds_total{cpu="cpu01",foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 3e-09 container_cpu_usage_seconds_total{cpu="cpu01",foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 3e-09
container_cpu_usage_seconds_total{cpu="cpu02",foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 4e-09 container_cpu_usage_seconds_total{cpu="cpu02",foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 4e-09
container_cpu_usage_seconds_total{cpu="cpu03",foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 5e-09 container_cpu_usage_seconds_total{cpu="cpu03",foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 5e-09
# HELP container_cpu_user_seconds_total Cumulative user cpu time consumed in seconds. # HELP container_cpu_user_seconds_total Cumulative user cpu time consumed in seconds.
# TYPE container_cpu_user_seconds_total counter # TYPE container_cpu_user_seconds_total counter
container_cpu_user_seconds_total{foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 6e-09 container_cpu_user_seconds_total{foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 6e-09
# HELP container_fs_io_current Number of I/Os currently in progress # HELP container_fs_io_current Number of I/Os currently in progress
# TYPE container_fs_io_current gauge # TYPE container_fs_io_current gauge
container_fs_io_current{device="sda1",foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 42 container_fs_io_current{device="sda1",foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 42
container_fs_io_current{device="sda2",foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 47 container_fs_io_current{device="sda2",foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 47
# HELP container_fs_io_time_seconds_total Cumulative count of seconds spent doing I/Os # HELP container_fs_io_time_seconds_total Cumulative count of seconds spent doing I/Os
# TYPE container_fs_io_time_seconds_total counter # TYPE container_fs_io_time_seconds_total counter
container_fs_io_time_seconds_total{device="sda1",foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 4.3e-08 container_fs_io_time_seconds_total{device="sda1",foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 4.3e-08
container_fs_io_time_seconds_total{device="sda2",foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 4.8e-08 container_fs_io_time_seconds_total{device="sda2",foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 4.8e-08
# HELP container_fs_io_time_weighted_seconds_total Cumulative weighted I/O time in seconds # HELP container_fs_io_time_weighted_seconds_total Cumulative weighted I/O time in seconds
# TYPE container_fs_io_time_weighted_seconds_total counter # TYPE container_fs_io_time_weighted_seconds_total counter
container_fs_io_time_weighted_seconds_total{device="sda1",foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 4.4e-08 container_fs_io_time_weighted_seconds_total{device="sda1",foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 4.4e-08
container_fs_io_time_weighted_seconds_total{device="sda2",foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 4.9e-08 container_fs_io_time_weighted_seconds_total{device="sda2",foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 4.9e-08
# HELP container_fs_limit_bytes Number of bytes that can be consumed by the container on this filesystem. # HELP container_fs_limit_bytes Number of bytes that can be consumed by the container on this filesystem.
# TYPE container_fs_limit_bytes gauge # TYPE container_fs_limit_bytes gauge
container_fs_limit_bytes{device="sda1",foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 22 container_fs_limit_bytes{device="sda1",foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 22
container_fs_limit_bytes{device="sda2",foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 37 container_fs_limit_bytes{device="sda2",foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 37
# HELP container_fs_read_seconds_total Cumulative count of seconds spent reading # HELP container_fs_read_seconds_total Cumulative count of seconds spent reading
# TYPE container_fs_read_seconds_total counter # TYPE container_fs_read_seconds_total counter
container_fs_read_seconds_total{device="sda1",foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 2.7e-08 container_fs_read_seconds_total{device="sda1",foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 2.7e-08
container_fs_read_seconds_total{device="sda2",foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 4.2e-08 container_fs_read_seconds_total{device="sda2",foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 4.2e-08
# HELP container_fs_reads_merged_total Cumulative count of reads merged # HELP container_fs_reads_merged_total Cumulative count of reads merged
# TYPE container_fs_reads_merged_total counter # TYPE container_fs_reads_merged_total counter
container_fs_reads_merged_total{device="sda1",foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 25 container_fs_reads_merged_total{device="sda1",foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 25
container_fs_reads_merged_total{device="sda2",foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 40 container_fs_reads_merged_total{device="sda2",foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 40
# HELP container_fs_reads_total Cumulative count of reads completed # HELP container_fs_reads_total Cumulative count of reads completed
# TYPE container_fs_reads_total counter # TYPE container_fs_reads_total counter
container_fs_reads_total{device="sda1",foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 24 container_fs_reads_total{device="sda1",foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 24
container_fs_reads_total{device="sda2",foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 39 container_fs_reads_total{device="sda2",foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 39
# HELP container_fs_sector_reads_total Cumulative count of sector reads completed # HELP container_fs_sector_reads_total Cumulative count of sector reads completed
# TYPE container_fs_sector_reads_total counter # TYPE container_fs_sector_reads_total counter
container_fs_sector_reads_total{device="sda1",foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 26 container_fs_sector_reads_total{device="sda1",foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 26
container_fs_sector_reads_total{device="sda2",foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 41 container_fs_sector_reads_total{device="sda2",foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 41
# HELP container_fs_sector_writes_total Cumulative count of sector writes completed # HELP container_fs_sector_writes_total Cumulative count of sector writes completed
# TYPE container_fs_sector_writes_total counter # TYPE container_fs_sector_writes_total counter
container_fs_sector_writes_total{device="sda1",foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 40 container_fs_sector_writes_total{device="sda1",foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 40
container_fs_sector_writes_total{device="sda2",foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 45 container_fs_sector_writes_total{device="sda2",foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 45
# HELP container_fs_usage_bytes Number of bytes that are consumed by the container on this filesystem. # HELP container_fs_usage_bytes Number of bytes that are consumed by the container on this filesystem.
# TYPE container_fs_usage_bytes gauge # TYPE container_fs_usage_bytes gauge
container_fs_usage_bytes{device="sda1",foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 23 container_fs_usage_bytes{device="sda1",foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 23
container_fs_usage_bytes{device="sda2",foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 38 container_fs_usage_bytes{device="sda2",foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 38
# HELP container_fs_write_seconds_total Cumulative count of seconds spent writing # HELP container_fs_write_seconds_total Cumulative count of seconds spent writing
# TYPE container_fs_write_seconds_total counter # TYPE container_fs_write_seconds_total counter
container_fs_write_seconds_total{device="sda1",foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 4.1e-08 container_fs_write_seconds_total{device="sda1",foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 4.1e-08
container_fs_write_seconds_total{device="sda2",foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 4.6e-08 container_fs_write_seconds_total{device="sda2",foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 4.6e-08
# HELP container_fs_writes_merged_total Cumulative count of writes merged # HELP container_fs_writes_merged_total Cumulative count of writes merged
# TYPE container_fs_writes_merged_total counter # TYPE container_fs_writes_merged_total counter
container_fs_writes_merged_total{device="sda1",foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 39 container_fs_writes_merged_total{device="sda1",foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 39
container_fs_writes_merged_total{device="sda2",foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 44 container_fs_writes_merged_total{device="sda2",foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 44
# HELP container_fs_writes_total Cumulative count of writes completed # HELP container_fs_writes_total Cumulative count of writes completed
# TYPE container_fs_writes_total counter # TYPE container_fs_writes_total counter
container_fs_writes_total{device="sda1",foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 28 container_fs_writes_total{device="sda1",foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 28
container_fs_writes_total{device="sda2",foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 43 container_fs_writes_total{device="sda2",foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 43
# HELP container_last_seen Last time a container was seen by the exporter # HELP container_last_seen Last time a container was seen by the exporter
# TYPE container_last_seen gauge # TYPE container_last_seen gauge
container_last_seen{foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 1.426203694e+09 container_last_seen{foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 1.426203694e+09
# HELP container_memory_failcnt Number of memory usage hits limits # HELP container_memory_failcnt Number of memory usage hits limits
# TYPE container_memory_failcnt counter # TYPE container_memory_failcnt counter
container_memory_failcnt{foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 0 container_memory_failcnt{foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 0
# HELP container_memory_failures_total Cumulative count of memory allocation failures. # HELP container_memory_failures_total Cumulative count of memory allocation failures.
# TYPE container_memory_failures_total counter # TYPE container_memory_failures_total counter
container_memory_failures_total{foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",scope="container",type="pgfault",zone_name="hello"} 10 container_memory_failures_total{foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",scope="container",type="pgfault",zone_name="hello"} 10
container_memory_failures_total{foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",scope="container",type="pgmajfault",zone_name="hello"} 11 container_memory_failures_total{foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",scope="container",type="pgmajfault",zone_name="hello"} 11
container_memory_failures_total{foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",scope="hierarchy",type="pgfault",zone_name="hello"} 12 container_memory_failures_total{foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",scope="hierarchy",type="pgfault",zone_name="hello"} 12
container_memory_failures_total{foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",scope="hierarchy",type="pgmajfault",zone_name="hello"} 13 container_memory_failures_total{foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",scope="hierarchy",type="pgmajfault",zone_name="hello"} 13
# HELP container_memory_usage_bytes Current memory usage in bytes. # HELP container_memory_usage_bytes Current memory usage in bytes.
# TYPE container_memory_usage_bytes gauge # TYPE container_memory_usage_bytes gauge
container_memory_usage_bytes{foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 8 container_memory_usage_bytes{foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 8
# HELP container_memory_working_set_bytes Current working set in bytes. # HELP container_memory_working_set_bytes Current working set in bytes.
# TYPE container_memory_working_set_bytes gauge # TYPE container_memory_working_set_bytes gauge
container_memory_working_set_bytes{foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 9 container_memory_working_set_bytes{foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 9
# HELP container_network_receive_bytes_total Cumulative count of bytes received # HELP container_network_receive_bytes_total Cumulative count of bytes received
# TYPE container_network_receive_bytes_total counter # TYPE container_network_receive_bytes_total counter
container_network_receive_bytes_total{foo_metric="bar",id="testcontainer",image="test",interface="eth0",name="testcontaineralias",zone_name="hello"} 14 container_network_receive_bytes_total{foo_env="prod",foo_label="bar",id="testcontainer",image="test",interface="eth0",name="testcontaineralias",zone_name="hello"} 14
# HELP container_network_receive_errors_total Cumulative count of errors encountered while receiving # HELP container_network_receive_errors_total Cumulative count of errors encountered while receiving
# TYPE container_network_receive_errors_total counter # TYPE container_network_receive_errors_total counter
container_network_receive_errors_total{foo_metric="bar",id="testcontainer",image="test",interface="eth0",name="testcontaineralias",zone_name="hello"} 16 container_network_receive_errors_total{foo_env="prod",foo_label="bar",id="testcontainer",image="test",interface="eth0",name="testcontaineralias",zone_name="hello"} 16
# HELP container_network_receive_packets_dropped_total Cumulative count of packets dropped while receiving # HELP container_network_receive_packets_dropped_total Cumulative count of packets dropped while receiving
# TYPE container_network_receive_packets_dropped_total counter # TYPE container_network_receive_packets_dropped_total counter
container_network_receive_packets_dropped_total{foo_metric="bar",id="testcontainer",image="test",interface="eth0",name="testcontaineralias",zone_name="hello"} 17 container_network_receive_packets_dropped_total{foo_env="prod",foo_label="bar",id="testcontainer",image="test",interface="eth0",name="testcontaineralias",zone_name="hello"} 17
# HELP container_network_receive_packets_total Cumulative count of packets received # HELP container_network_receive_packets_total Cumulative count of packets received
# TYPE container_network_receive_packets_total counter # TYPE container_network_receive_packets_total counter
container_network_receive_packets_total{foo_metric="bar",id="testcontainer",image="test",interface="eth0",name="testcontaineralias",zone_name="hello"} 15 container_network_receive_packets_total{foo_env="prod",foo_label="bar",id="testcontainer",image="test",interface="eth0",name="testcontaineralias",zone_name="hello"} 15
# HELP container_network_transmit_bytes_total Cumulative count of bytes transmitted # HELP container_network_transmit_bytes_total Cumulative count of bytes transmitted
# TYPE container_network_transmit_bytes_total counter # TYPE container_network_transmit_bytes_total counter
container_network_transmit_bytes_total{foo_metric="bar",id="testcontainer",image="test",interface="eth0",name="testcontaineralias",zone_name="hello"} 18 container_network_transmit_bytes_total{foo_env="prod",foo_label="bar",id="testcontainer",image="test",interface="eth0",name="testcontaineralias",zone_name="hello"} 18
# HELP container_network_transmit_errors_total Cumulative count of errors encountered while transmitting # HELP container_network_transmit_errors_total Cumulative count of errors encountered while transmitting
# TYPE container_network_transmit_errors_total counter # TYPE container_network_transmit_errors_total counter
container_network_transmit_errors_total{foo_metric="bar",id="testcontainer",image="test",interface="eth0",name="testcontaineralias",zone_name="hello"} 20 container_network_transmit_errors_total{foo_env="prod",foo_label="bar",id="testcontainer",image="test",interface="eth0",name="testcontaineralias",zone_name="hello"} 20
# HELP container_network_transmit_packets_dropped_total Cumulative count of packets dropped while transmitting # HELP container_network_transmit_packets_dropped_total Cumulative count of packets dropped while transmitting
# TYPE container_network_transmit_packets_dropped_total counter # TYPE container_network_transmit_packets_dropped_total counter
container_network_transmit_packets_dropped_total{foo_metric="bar",id="testcontainer",image="test",interface="eth0",name="testcontaineralias",zone_name="hello"} 21 container_network_transmit_packets_dropped_total{foo_env="prod",foo_label="bar",id="testcontainer",image="test",interface="eth0",name="testcontaineralias",zone_name="hello"} 21
# HELP container_network_transmit_packets_total Cumulative count of packets transmitted # HELP container_network_transmit_packets_total Cumulative count of packets transmitted
# TYPE container_network_transmit_packets_total counter # TYPE container_network_transmit_packets_total counter
container_network_transmit_packets_total{foo_metric="bar",id="testcontainer",image="test",interface="eth0",name="testcontaineralias",zone_name="hello"} 19 container_network_transmit_packets_total{foo_env="prod",foo_label="bar",id="testcontainer",image="test",interface="eth0",name="testcontaineralias",zone_name="hello"} 19
# HELP container_scrape_error 1 if there was an error while getting container metrics, 0 otherwise # HELP container_scrape_error 1 if there was an error while getting container metrics, 0 otherwise
# TYPE container_scrape_error gauge # TYPE container_scrape_error gauge
container_scrape_error 0 container_scrape_error 0
# HELP container_start_time_seconds Start time of the container since unix epoch in seconds. # HELP container_start_time_seconds Start time of the container since unix epoch in seconds.
# TYPE container_start_time_seconds gauge # TYPE container_start_time_seconds gauge
container_start_time_seconds{foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 1.257894e+09 container_start_time_seconds{foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",zone_name="hello"} 1.257894e+09
# HELP container_tasks_state Number of tasks in given state # HELP container_tasks_state Number of tasks in given state
# TYPE container_tasks_state gauge # TYPE container_tasks_state gauge
container_tasks_state{foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",state="iowaiting",zone_name="hello"} 54 container_tasks_state{foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",state="iowaiting",zone_name="hello"} 54
container_tasks_state{foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",state="running",zone_name="hello"} 51 container_tasks_state{foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",state="running",zone_name="hello"} 51
container_tasks_state{foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",state="sleeping",zone_name="hello"} 50 container_tasks_state{foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",state="sleeping",zone_name="hello"} 50
container_tasks_state{foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",state="stopped",zone_name="hello"} 52 container_tasks_state{foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",state="stopped",zone_name="hello"} 52
container_tasks_state{foo_metric="bar",id="testcontainer",image="test",name="testcontaineralias",state="uninterruptible",zone_name="hello"} 53 container_tasks_state{foo_env="prod",foo_label="bar",id="testcontainer",image="test",name="testcontaineralias",state="uninterruptible",zone_name="hello"} 53
# HELP http_request_duration_microseconds The HTTP request latencies in microseconds. # HELP http_request_duration_microseconds The HTTP request latencies in microseconds.
# TYPE http_request_duration_microseconds summary # TYPE http_request_duration_microseconds summary
http_request_duration_microseconds{handler="prometheus",quantile="0.5"} 0 http_request_duration_microseconds{handler="prometheus",quantile="0.5"} 0