Cleanup cgroups collector (#2414)

* Correctly name collector file.
* Fix cgroup summary type as gauge.
* Use a boolean metric rather than a label for enabled.

Signed-off-by: Ben Kochie <superq@gmail.com>
This commit is contained in:
Ben Kochie 2022-06-24 17:15:31 +02:00 committed by GitHub
parent 45c75f1dbc
commit a516d4de4a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 44 additions and 20 deletions

View File

@ -193,6 +193,7 @@ from debugfs. And example usage of this would be
Name | Description | OS Name | Description | OS
---------|-------------|---- ---------|-------------|----
buddyinfo | Exposes statistics of memory fragments as reported by /proc/buddyinfo. | Linux buddyinfo | Exposes statistics of memory fragments as reported by /proc/buddyinfo. | Linux
cgroups | A summary of the number of active and enabled cgroups | Linux
devstat | Exposes device statistics | Dragonfly, FreeBSD devstat | Exposes device statistics | Dragonfly, FreeBSD
drbd | Exposes Distributed Replicated Block Device statistics (to version 8.4) | Linux drbd | Exposes Distributed Replicated Block Device statistics (to version 8.4) | Linux
ethtool | Exposes network interface information and network driver statistics equivalent to `ethtool`, `ethtool -S`, and `ethtool -i`. | Linux ethtool | Exposes network interface information and network driver statistics equivalent to `ethtool`, `ethtool -S`, and `ethtool -i`. | Linux

View File

@ -18,21 +18,23 @@ package collector
import ( import (
"fmt" "fmt"
"strconv"
"github.com/go-kit/log" "github.com/go-kit/log"
"github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/procfs" "github.com/prometheus/procfs"
) )
const cgroupsCollectorSubsystem = "cgroups"
type cgroupSummaryCollector struct { type cgroupSummaryCollector struct {
fs procfs.FS fs procfs.FS
cgroups *prometheus.Desc cgroups *prometheus.Desc
enabled *prometheus.Desc
logger log.Logger logger log.Logger
} }
func init() { func init() {
registerCollector("cgroupSummary", defaultEnabled, NewCgroupSummaryCollector) registerCollector(cgroupsCollectorSubsystem, defaultDisabled, NewCgroupSummaryCollector)
} }
// NewCgroupSummaryCollector returns a new Collector exposing a summary of cgroups. // NewCgroupSummaryCollector returns a new Collector exposing a summary of cgroups.
@ -44,9 +46,14 @@ func NewCgroupSummaryCollector(logger log.Logger) (Collector, error) {
return &cgroupSummaryCollector{ return &cgroupSummaryCollector{
fs: fs, fs: fs,
cgroups: prometheus.NewDesc( cgroups: prometheus.NewDesc(
prometheus.BuildFQName(namespace, "", "cgroups_total"), prometheus.BuildFQName(namespace, cgroupsCollectorSubsystem, "cgroups"),
"Current cgroup number of the subsystem.", "Current cgroup number of the subsystem.",
[]string{"subsys_name", "enabled"}, nil, []string{"subsys_name"}, nil,
),
enabled: prometheus.NewDesc(
prometheus.BuildFQName(namespace, cgroupsCollectorSubsystem, "enabled"),
"Current cgroup number of the subsystem.",
[]string{"subsys_name"}, nil,
), ),
logger: logger, logger: logger,
}, nil }, nil
@ -59,7 +66,8 @@ func (c *cgroupSummaryCollector) Update(ch chan<- prometheus.Metric) error {
return err return err
} }
for _, cs := range cgroupSummarys { for _, cs := range cgroupSummarys {
ch <- prometheus.MustNewConstMetric(c.cgroups, prometheus.CounterValue, float64(cs.Cgroups), cs.SubsysName, strconv.Itoa(cs.Enabled)) ch <- prometheus.MustNewConstMetric(c.cgroups, prometheus.GaugeValue, float64(cs.Cgroups), cs.SubsysName)
ch <- prometheus.MustNewConstMetric(c.enabled, prometheus.GaugeValue, float64(cs.Enabled), cs.SubsysName)
} }
return nil return nil
} }

View File

@ -296,20 +296,34 @@ node_buddyinfo_blocks{node="0",size="8",zone="Normal"} 0
node_buddyinfo_blocks{node="0",size="9",zone="DMA"} 1 node_buddyinfo_blocks{node="0",size="9",zone="DMA"} 1
node_buddyinfo_blocks{node="0",size="9",zone="DMA32"} 0 node_buddyinfo_blocks{node="0",size="9",zone="DMA32"} 0
node_buddyinfo_blocks{node="0",size="9",zone="Normal"} 0 node_buddyinfo_blocks{node="0",size="9",zone="Normal"} 0
# HELP node_cgroups_total Current cgroup number of the subsystem. # HELP node_cgroups_cgroups Current cgroup number of the subsystem.
# TYPE node_cgroups_total counter # TYPE node_cgroups_cgroups gauge
node_cgroups_total{enabled="1",subsys_name="blkio"} 170 node_cgroups_cgroups{subsys_name="blkio"} 170
node_cgroups_total{enabled="1",subsys_name="cpu"} 172 node_cgroups_cgroups{subsys_name="cpu"} 172
node_cgroups_total{enabled="1",subsys_name="cpuacct"} 172 node_cgroups_cgroups{subsys_name="cpuacct"} 172
node_cgroups_total{enabled="1",subsys_name="cpuset"} 47 node_cgroups_cgroups{subsys_name="cpuset"} 47
node_cgroups_total{enabled="1",subsys_name="devices"} 170 node_cgroups_cgroups{subsys_name="devices"} 170
node_cgroups_total{enabled="1",subsys_name="freezer"} 47 node_cgroups_cgroups{subsys_name="freezer"} 47
node_cgroups_total{enabled="1",subsys_name="hugetlb"} 47 node_cgroups_cgroups{subsys_name="hugetlb"} 47
node_cgroups_total{enabled="1",subsys_name="memory"} 234 node_cgroups_cgroups{subsys_name="memory"} 234
node_cgroups_total{enabled="1",subsys_name="net_cls"} 47 node_cgroups_cgroups{subsys_name="net_cls"} 47
node_cgroups_total{enabled="1",subsys_name="perf_event"} 47 node_cgroups_cgroups{subsys_name="perf_event"} 47
node_cgroups_total{enabled="1",subsys_name="pids"} 170 node_cgroups_cgroups{subsys_name="pids"} 170
node_cgroups_total{enabled="1",subsys_name="rdma"} 1 node_cgroups_cgroups{subsys_name="rdma"} 1
# HELP node_cgroups_enabled Current cgroup number of the subsystem.
# TYPE node_cgroups_enabled gauge
node_cgroups_enabled{subsys_name="blkio"} 1
node_cgroups_enabled{subsys_name="cpu"} 1
node_cgroups_enabled{subsys_name="cpuacct"} 1
node_cgroups_enabled{subsys_name="cpuset"} 1
node_cgroups_enabled{subsys_name="devices"} 1
node_cgroups_enabled{subsys_name="freezer"} 1
node_cgroups_enabled{subsys_name="hugetlb"} 1
node_cgroups_enabled{subsys_name="memory"} 1
node_cgroups_enabled{subsys_name="net_cls"} 1
node_cgroups_enabled{subsys_name="perf_event"} 1
node_cgroups_enabled{subsys_name="pids"} 1
node_cgroups_enabled{subsys_name="rdma"} 1
# HELP node_context_switches_total Total number of context switches. # HELP node_context_switches_total Total number of context switches.
# TYPE node_context_switches_total counter # TYPE node_context_switches_total counter
node_context_switches_total 3.8014093e+07 node_context_switches_total 3.8014093e+07
@ -3045,7 +3059,7 @@ node_scrape_collector_success{collector="bcache"} 1
node_scrape_collector_success{collector="bonding"} 1 node_scrape_collector_success{collector="bonding"} 1
node_scrape_collector_success{collector="btrfs"} 1 node_scrape_collector_success{collector="btrfs"} 1
node_scrape_collector_success{collector="buddyinfo"} 1 node_scrape_collector_success{collector="buddyinfo"} 1
node_scrape_collector_success{collector="cgroupSummary"} 1 node_scrape_collector_success{collector="cgroups"} 1
node_scrape_collector_success{collector="conntrack"} 1 node_scrape_collector_success{collector="conntrack"} 1
node_scrape_collector_success{collector="cpu"} 1 node_scrape_collector_success{collector="cpu"} 1
node_scrape_collector_success{collector="cpufreq"} 1 node_scrape_collector_success{collector="cpufreq"} 1

View File

@ -8,6 +8,7 @@ enabled_collectors=$(cat << COLLECTORS
btrfs btrfs
buddyinfo buddyinfo
conntrack conntrack
cgroups
cpu cpu
cpufreq cpufreq
diskstats diskstats