mirror of
https://github.com/prometheus/node_exporter.git
synced 2025-03-05 21:00:12 -08:00
use pointers
This commit is contained in:
parent
d59d6568c6
commit
c01a7c2c57
|
@ -33,7 +33,7 @@ type arpCollector struct {
|
||||||
deviceFilter deviceFilter
|
deviceFilter deviceFilter
|
||||||
entries *prometheus.Desc
|
entries *prometheus.Desc
|
||||||
logger log.Logger
|
logger log.Logger
|
||||||
config NodeCollectorConfig
|
config *NodeCollectorConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
@ -47,7 +47,7 @@ type ArpConfig struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewARPCollector returns a new Collector exposing ARP stats.
|
// NewARPCollector returns a new Collector exposing ARP stats.
|
||||||
func NewARPCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewARPCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
fs, err := procfs.NewFS(*config.Path.ProcPath)
|
fs, err := procfs.NewFS(*config.Path.ProcPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to open procfs: %w", err)
|
return nil, fmt.Errorf("failed to open procfs: %w", err)
|
||||||
|
|
|
@ -33,7 +33,7 @@ func init() {
|
||||||
type bcacheCollector struct {
|
type bcacheCollector struct {
|
||||||
fs bcache.FS
|
fs bcache.FS
|
||||||
logger log.Logger
|
logger log.Logger
|
||||||
config NodeCollectorConfig
|
config *NodeCollectorConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
type BcacheConfig struct {
|
type BcacheConfig struct {
|
||||||
|
@ -42,7 +42,7 @@ type BcacheConfig struct {
|
||||||
|
|
||||||
// NewBcacheCollector returns a newly allocated bcacheCollector.
|
// NewBcacheCollector returns a newly allocated bcacheCollector.
|
||||||
// It exposes a number of Linux bcache statistics.
|
// It exposes a number of Linux bcache statistics.
|
||||||
func NewBcacheCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewBcacheCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
fs, err := bcache.NewFS(*config.Path.SysPath)
|
fs, err := bcache.NewFS(*config.Path.SysPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to open sysfs: %w", err)
|
return nil, fmt.Errorf("failed to open sysfs: %w", err)
|
||||||
|
|
|
@ -31,7 +31,7 @@ import (
|
||||||
type bondingCollector struct {
|
type bondingCollector struct {
|
||||||
slaves, active typedDesc
|
slaves, active typedDesc
|
||||||
logger log.Logger
|
logger log.Logger
|
||||||
config NodeCollectorConfig
|
config *NodeCollectorConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
@ -40,7 +40,7 @@ func init() {
|
||||||
|
|
||||||
// NewBondingCollector returns a newly allocated bondingCollector.
|
// NewBondingCollector returns a newly allocated bondingCollector.
|
||||||
// It exposes the number of configured and active slave of linux bonding interfaces.
|
// It exposes the number of configured and active slave of linux bonding interfaces.
|
||||||
func NewBondingCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewBondingCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
return &bondingCollector{
|
return &bondingCollector{
|
||||||
slaves: typedDesc{prometheus.NewDesc(
|
slaves: typedDesc{prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(namespace, "bonding", "slaves"),
|
prometheus.BuildFQName(namespace, "bonding", "slaves"),
|
||||||
|
|
|
@ -32,7 +32,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// newBootTimeCollector returns a new Collector exposing system boot time on BSD systems.
|
// newBootTimeCollector returns a new Collector exposing system boot time on BSD systems.
|
||||||
func newBootTimeCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func newBootTimeCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
return &bootTimeCollector{
|
return &bootTimeCollector{
|
||||||
logger: logger,
|
logger: logger,
|
||||||
}, nil
|
}, nil
|
||||||
|
|
|
@ -31,7 +31,7 @@ func init() {
|
||||||
registerCollector("boottime", defaultEnabled, newBootTimeCollector)
|
registerCollector("boottime", defaultEnabled, newBootTimeCollector)
|
||||||
}
|
}
|
||||||
|
|
||||||
func newBootTimeCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func newBootTimeCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
return &bootTimeCollector{
|
return &bootTimeCollector{
|
||||||
boottime: typedDesc{
|
boottime: typedDesc{
|
||||||
prometheus.NewDesc(
|
prometheus.NewDesc(
|
||||||
|
|
|
@ -33,7 +33,7 @@ import (
|
||||||
type btrfsCollector struct {
|
type btrfsCollector struct {
|
||||||
fs btrfs.FS
|
fs btrfs.FS
|
||||||
logger log.Logger
|
logger log.Logger
|
||||||
config NodeCollectorConfig
|
config *NodeCollectorConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
@ -41,7 +41,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewBtrfsCollector returns a new Collector exposing Btrfs statistics.
|
// NewBtrfsCollector returns a new Collector exposing Btrfs statistics.
|
||||||
func NewBtrfsCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewBtrfsCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
fs, err := btrfs.NewFS(*config.Path.SysPath)
|
fs, err := btrfs.NewFS(*config.Path.SysPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to open sysfs: %w", err)
|
return nil, fmt.Errorf("failed to open sysfs: %w", err)
|
||||||
|
|
|
@ -41,7 +41,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewBuddyinfoCollector returns a new Collector exposing buddyinfo stats.
|
// NewBuddyinfoCollector returns a new Collector exposing buddyinfo stats.
|
||||||
func NewBuddyinfoCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewBuddyinfoCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
desc := prometheus.NewDesc(
|
desc := prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(namespace, buddyInfoSubsystem, "blocks"),
|
prometheus.BuildFQName(namespace, buddyInfoSubsystem, "blocks"),
|
||||||
"Count of free blocks according to size.",
|
"Count of free blocks according to size.",
|
||||||
|
|
|
@ -38,7 +38,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewCgroupSummaryCollector returns a new Collector exposing a summary of cgroups.
|
// NewCgroupSummaryCollector returns a new Collector exposing a summary of cgroups.
|
||||||
func NewCgroupSummaryCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewCgroupSummaryCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
fs, err := procfs.NewFS(*config.Path.ProcPath)
|
fs, err := procfs.NewFS(*config.Path.ProcPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to open procfs: %w", err)
|
return nil, fmt.Errorf("failed to open procfs: %w", err)
|
||||||
|
|
|
@ -50,14 +50,14 @@ const (
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
factories = make(map[string]func(config NodeCollectorConfig, logger log.Logger) (Collector, error))
|
factories = make(map[string]func(config *NodeCollectorConfig, logger log.Logger) (Collector, error))
|
||||||
initiatedCollectorsMtx = sync.Mutex{}
|
initiatedCollectorsMtx = sync.Mutex{}
|
||||||
initiatedCollectors = make(map[string]Collector)
|
initiatedCollectors = make(map[string]Collector)
|
||||||
collectorState = make(map[string]*bool)
|
collectorState = make(map[string]*bool)
|
||||||
forcedCollectors = map[string]bool{} // collectors which have been explicitly enabled or disabled
|
forcedCollectors = map[string]bool{} // collectors which have been explicitly enabled or disabled
|
||||||
)
|
)
|
||||||
|
|
||||||
func registerCollector(collector string, isDefaultEnabled bool, factory func(config NodeCollectorConfig, logger log.Logger) (Collector, error)) {
|
func registerCollector(collector string, isDefaultEnabled bool, factory func(config *NodeCollectorConfig, logger log.Logger) (Collector, error)) {
|
||||||
var helpDefaultState string
|
var helpDefaultState string
|
||||||
if isDefaultEnabled {
|
if isDefaultEnabled {
|
||||||
helpDefaultState = "enabled"
|
helpDefaultState = "enabled"
|
||||||
|
@ -104,7 +104,7 @@ func collectorFlagAction(collector string) func(ctx *kingpin.ParseContext) error
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewNodeCollector creates a new NodeCollector.
|
// NewNodeCollector creates a new NodeCollector.
|
||||||
func NewNodeCollector(config NodeCollectorConfig, logger log.Logger, filters ...string) (*NodeCollector, error) {
|
func NewNodeCollector(config *NodeCollectorConfig, logger log.Logger, filters ...string) (*NodeCollector, error) {
|
||||||
f := make(map[string]bool)
|
f := make(map[string]bool)
|
||||||
for _, filter := range filters {
|
for _, filter := range filters {
|
||||||
enabled, exist := collectorState[filter]
|
enabled, exist := collectorState[filter]
|
||||||
|
|
|
@ -39,7 +39,7 @@ type conntrackCollector struct {
|
||||||
earlyDrop *prometheus.Desc
|
earlyDrop *prometheus.Desc
|
||||||
searchRestart *prometheus.Desc
|
searchRestart *prometheus.Desc
|
||||||
logger log.Logger
|
logger log.Logger
|
||||||
config NodeCollectorConfig
|
config *NodeCollectorConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
type conntrackStatistics struct {
|
type conntrackStatistics struct {
|
||||||
|
@ -58,7 +58,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewConntrackCollector returns a new Collector exposing conntrack stats.
|
// NewConntrackCollector returns a new Collector exposing conntrack stats.
|
||||||
func NewConntrackCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewConntrackCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
return &conntrackCollector{
|
return &conntrackCollector{
|
||||||
current: prometheus.NewDesc(
|
current: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(namespace, "", "nf_conntrack_entries"),
|
prometheus.BuildFQName(namespace, "", "nf_conntrack_entries"),
|
||||||
|
@ -162,7 +162,7 @@ func (c *conntrackCollector) handleErr(err error) error {
|
||||||
return fmt.Errorf("failed to retrieve conntrack stats: %w", err)
|
return fmt.Errorf("failed to retrieve conntrack stats: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
func getConntrackStatistics(config NodeCollectorConfig) (*conntrackStatistics, error) {
|
func getConntrackStatistics(config *NodeCollectorConfig) (*conntrackStatistics, error) {
|
||||||
c := conntrackStatistics{}
|
c := conntrackStatistics{}
|
||||||
|
|
||||||
fs, err := procfs.NewFS(*config.Path.ProcPath)
|
fs, err := procfs.NewFS(*config.Path.ProcPath)
|
||||||
|
|
|
@ -61,7 +61,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewCPUCollector returns a new Collector exposing CPU stats.
|
// NewCPUCollector returns a new Collector exposing CPU stats.
|
||||||
func NewCPUCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewCPUCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
return &statCollector{
|
return &statCollector{
|
||||||
cpu: nodeCPUSecondsDesc,
|
cpu: nodeCPUSecondsDesc,
|
||||||
logger: logger,
|
logger: logger,
|
||||||
|
|
|
@ -86,7 +86,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewStatCollector returns a new Collector exposing CPU stats.
|
// NewStatCollector returns a new Collector exposing CPU stats.
|
||||||
func NewStatCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewStatCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
return &statCollector{
|
return &statCollector{
|
||||||
cpu: nodeCPUSecondsDesc,
|
cpu: nodeCPUSecondsDesc,
|
||||||
logger: logger,
|
logger: logger,
|
||||||
|
|
|
@ -93,7 +93,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewStatCollector returns a new Collector exposing CPU stats.
|
// NewStatCollector returns a new Collector exposing CPU stats.
|
||||||
func NewStatCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewStatCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
return &statCollector{
|
return &statCollector{
|
||||||
cpu: typedDesc{nodeCPUSecondsDesc, prometheus.CounterValue},
|
cpu: typedDesc{nodeCPUSecondsDesc, prometheus.CounterValue},
|
||||||
temp: typedDesc{prometheus.NewDesc(
|
temp: typedDesc{prometheus.NewDesc(
|
||||||
|
|
|
@ -52,7 +52,7 @@ type cpuCollector struct {
|
||||||
cpuFlagsIncludeRegexp *regexp.Regexp
|
cpuFlagsIncludeRegexp *regexp.Regexp
|
||||||
cpuBugsIncludeRegexp *regexp.Regexp
|
cpuBugsIncludeRegexp *regexp.Regexp
|
||||||
|
|
||||||
config NodeCollectorConfig
|
config *NodeCollectorConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
// Idle jump back limit in seconds.
|
// Idle jump back limit in seconds.
|
||||||
|
@ -74,7 +74,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewCPUCollector returns a new Collector exposing kernel/system statistics.
|
// NewCPUCollector returns a new Collector exposing kernel/system statistics.
|
||||||
func NewCPUCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewCPUCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
fs, err := procfs.NewFS(*config.Path.ProcPath)
|
fs, err := procfs.NewFS(*config.Path.ProcPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to open procfs: %w", err)
|
return nil, fmt.Errorf("failed to open procfs: %w", err)
|
||||||
|
@ -254,7 +254,7 @@ func updateFieldInfo(valueList []string, filter *regexp.Regexp, desc *prometheus
|
||||||
}
|
}
|
||||||
|
|
||||||
// updateThermalThrottle reads /sys/devices/system/cpu/cpu* and expose thermal throttle statistics.
|
// updateThermalThrottle reads /sys/devices/system/cpu/cpu* and expose thermal throttle statistics.
|
||||||
func (c *cpuCollector) updateThermalThrottle(config NodeCollectorConfig, ch chan<- prometheus.Metric) error {
|
func (c *cpuCollector) updateThermalThrottle(config *NodeCollectorConfig, ch chan<- prometheus.Metric) error {
|
||||||
cpus, err := filepath.Glob(config.Path.sysFilePath("devices/system/cpu/cpu[0-9]*"))
|
cpus, err := filepath.Glob(config.Path.sysFilePath("devices/system/cpu/cpu[0-9]*"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
|
@ -222,7 +222,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewStatCollector returns a new Collector exposing CPU stats.
|
// NewStatCollector returns a new Collector exposing CPU stats.
|
||||||
func NewStatCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewStatCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
return &statCollector{
|
return &statCollector{
|
||||||
cpu: typedDesc{nodeCPUSecondsDesc, prometheus.CounterValue},
|
cpu: typedDesc{nodeCPUSecondsDesc, prometheus.CounterValue},
|
||||||
temp: typedDesc{prometheus.NewDesc(
|
temp: typedDesc{prometheus.NewDesc(
|
||||||
|
|
|
@ -52,7 +52,7 @@ func init() {
|
||||||
registerCollector("cpu", defaultEnabled, NewCPUCollector)
|
registerCollector("cpu", defaultEnabled, NewCPUCollector)
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewCPUCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewCPUCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
return &cpuCollector{
|
return &cpuCollector{
|
||||||
cpu: typedDesc{nodeCPUSecondsDesc, prometheus.CounterValue},
|
cpu: typedDesc{nodeCPUSecondsDesc, prometheus.CounterValue},
|
||||||
logger: logger,
|
logger: logger,
|
||||||
|
|
|
@ -36,7 +36,7 @@ func init() {
|
||||||
registerCollector("cpu", defaultEnabled, NewCpuCollector)
|
registerCollector("cpu", defaultEnabled, NewCpuCollector)
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewCpuCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewCpuCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
return &cpuCollector{
|
return &cpuCollector{
|
||||||
cpu: typedDesc{nodeCPUSecondsDesc, prometheus.CounterValue},
|
cpu: typedDesc{nodeCPUSecondsDesc, prometheus.CounterValue},
|
||||||
logger: logger,
|
logger: logger,
|
||||||
|
|
|
@ -35,14 +35,14 @@ var (
|
||||||
)
|
)
|
||||||
|
|
||||||
type cpuVulnerabilitiesCollector struct {
|
type cpuVulnerabilitiesCollector struct {
|
||||||
config NodeCollectorConfig
|
config *NodeCollectorConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
registerCollector(cpuVulerabilitiesCollector, defaultDisabled, NewVulnerabilitySysfsCollector)
|
registerCollector(cpuVulerabilitiesCollector, defaultDisabled, NewVulnerabilitySysfsCollector)
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewVulnerabilitySysfsCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewVulnerabilitySysfsCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
return &cpuVulnerabilitiesCollector{config}, nil
|
return &cpuVulnerabilitiesCollector{config}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewCPUFreqCollector returns a new Collector exposing kernel/system statistics.
|
// NewCPUFreqCollector returns a new Collector exposing kernel/system statistics.
|
||||||
func NewCPUFreqCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewCPUFreqCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
fs, err := sysfs.NewFS(*config.Path.SysPath)
|
fs, err := sysfs.NewFS(*config.Path.SysPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to open sysfs: %w", err)
|
return nil, fmt.Errorf("failed to open sysfs: %w", err)
|
||||||
|
|
|
@ -36,7 +36,7 @@ func init() {
|
||||||
registerCollector("cpufreq", defaultEnabled, NewCPUFreqCollector)
|
registerCollector("cpufreq", defaultEnabled, NewCPUFreqCollector)
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewCpuFreqCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewCpuFreqCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
return &cpuFreqCollector{
|
return &cpuFreqCollector{
|
||||||
logger: logger,
|
logger: logger,
|
||||||
}, nil
|
}, nil
|
||||||
|
|
|
@ -106,7 +106,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewDevstatCollector returns a new Collector exposing Device stats.
|
// NewDevstatCollector returns a new Collector exposing Device stats.
|
||||||
func NewDevstatCollector(config NodeCollectorConfiglogger log.Logger) (Collector, error) {
|
func NewDevstatCollector(config *NodeCollectorConfiglogger log.Logger) (Collector, error) {
|
||||||
return &devstatCollector{
|
return &devstatCollector{
|
||||||
bytesDesc: prometheus.NewDesc(
|
bytesDesc: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(namespace, devstatSubsystem, "bytes_total"),
|
prometheus.BuildFQName(namespace, devstatSubsystem, "bytes_total"),
|
||||||
|
|
|
@ -51,7 +51,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewDevstatCollector returns a new Collector exposing Device stats.
|
// NewDevstatCollector returns a new Collector exposing Device stats.
|
||||||
func NewDevstatCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewDevstatCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
return &devstatCollector{
|
return &devstatCollector{
|
||||||
devinfo: &C.struct_devinfo{},
|
devinfo: &C.struct_devinfo{},
|
||||||
bytes: typedDesc{prometheus.NewDesc(
|
bytes: typedDesc{prometheus.NewDesc(
|
||||||
|
|
|
@ -43,7 +43,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewDiskstatsCollector returns a new Collector exposing disk device stats.
|
// NewDiskstatsCollector returns a new Collector exposing disk device stats.
|
||||||
func NewDiskstatsCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewDiskstatsCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
var diskLabelNames = []string{"device"}
|
var diskLabelNames = []string{"device"}
|
||||||
|
|
||||||
deviceFilter, err := newDiskstatsDeviceFilter(config.DiskstatsDeviceFilter, logger)
|
deviceFilter, err := newDiskstatsDeviceFilter(config.DiskstatsDeviceFilter, logger)
|
||||||
|
|
|
@ -86,8 +86,8 @@ type diskstatsCollector struct {
|
||||||
deviceMapperInfoDesc typedFactorDesc
|
deviceMapperInfoDesc typedFactorDesc
|
||||||
ataDescs map[string]typedFactorDesc
|
ataDescs map[string]typedFactorDesc
|
||||||
logger log.Logger
|
logger log.Logger
|
||||||
getUdevDeviceProperties func(NodeCollectorConfig, uint32, uint32) (udevInfo, error)
|
getUdevDeviceProperties func(*NodeCollectorConfig, uint32, uint32) (udevInfo, error)
|
||||||
config NodeCollectorConfig
|
config *NodeCollectorConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
@ -96,7 +96,7 @@ func init() {
|
||||||
|
|
||||||
// NewDiskstatsCollector returns a new Collector exposing disk device stats.
|
// NewDiskstatsCollector returns a new Collector exposing disk device stats.
|
||||||
// Docs from https://www.kernel.org/doc/Documentation/iostats.txt
|
// Docs from https://www.kernel.org/doc/Documentation/iostats.txt
|
||||||
func NewDiskstatsCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewDiskstatsCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
var diskLabelNames = []string{"device"}
|
var diskLabelNames = []string{"device"}
|
||||||
fs, err := blockdevice.NewFS(*config.Path.ProcPath, *config.Path.SysPath)
|
fs, err := blockdevice.NewFS(*config.Path.ProcPath, *config.Path.SysPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -372,7 +372,7 @@ func (c *diskstatsCollector) Update(ch chan<- prometheus.Metric) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func getUdevDeviceProperties(config NodeCollectorConfig, major, minor uint32) (udevInfo, error) {
|
func getUdevDeviceProperties(config *NodeCollectorConfig, major, minor uint32) (udevInfo, error) {
|
||||||
filename := config.Path.udevDataFilePath(fmt.Sprintf("b%d:%d", major, minor))
|
filename := config.Path.udevDataFilePath(fmt.Sprintf("b%d:%d", major, minor))
|
||||||
|
|
||||||
data, err := os.Open(filename)
|
data, err := os.Open(filename)
|
||||||
|
|
|
@ -39,7 +39,7 @@ func (c testDiskStatsCollector) Describe(ch chan<- *prometheus.Desc) {
|
||||||
prometheus.DescribeByCollect(c, ch)
|
prometheus.DescribeByCollect(c, ch)
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewTestDiskStatsCollector(config NodeCollectorConfig, logger log.Logger) (prometheus.Collector, error) {
|
func NewTestDiskStatsCollector(config *NodeCollectorConfig, logger log.Logger) (prometheus.Collector, error) {
|
||||||
dsc, err := NewDiskstatsCollector(config, logger)
|
dsc, err := NewDiskstatsCollector(config, logger)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return testDiskStatsCollector{}, err
|
return testDiskStatsCollector{}, err
|
||||||
|
@ -50,7 +50,7 @@ func NewTestDiskStatsCollector(config NodeCollectorConfig, logger log.Logger) (p
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestDiskStats(t *testing.T) {
|
func TestDiskStats(t *testing.T) {
|
||||||
config := NodeCollectorConfig{
|
config := &NodeCollectorConfig{
|
||||||
DiskstatsDeviceFilter: DiskstatsDeviceFilterConfig{
|
DiskstatsDeviceFilter: DiskstatsDeviceFilterConfig{
|
||||||
DeviceExclude: new(string),
|
DeviceExclude: new(string),
|
||||||
DeviceInclude: new(string),
|
DeviceInclude: new(string),
|
||||||
|
|
|
@ -49,7 +49,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewDiskstatsCollector returns a new Collector exposing disk device stats.
|
// NewDiskstatsCollector returns a new Collector exposing disk device stats.
|
||||||
func NewDiskstatsCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewDiskstatsCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
deviceFilter, err := newDiskstatsDeviceFilter(config.DiskstatsDeviceFilter, logger)
|
deviceFilter, err := newDiskstatsDeviceFilter(config.DiskstatsDeviceFilter, logger)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to parse device filter flags: %w", err)
|
return nil, fmt.Errorf("failed to parse device filter flags: %w", err)
|
||||||
|
|
|
@ -60,7 +60,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewDiskstatsCollector returns a new Collector exposing disk device stats.
|
// NewDiskstatsCollector returns a new Collector exposing disk device stats.
|
||||||
func NewDiskstatsCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewDiskstatsCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
deviceFilter, err := newDiskstatsDeviceFilter(config.DiskstatsDeviceFilter, logger)
|
deviceFilter, err := newDiskstatsDeviceFilter(config.DiskstatsDeviceFilter, logger)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to parse device filter flags: %w", err)
|
return nil, fmt.Errorf("failed to parse device filter flags: %w", err)
|
||||||
|
|
|
@ -38,7 +38,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewDMICollector returns a new Collector exposing DMI information.
|
// NewDMICollector returns a new Collector exposing DMI information.
|
||||||
func NewDMICollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewDMICollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
fs, err := sysfs.NewFS(*config.Path.SysPath)
|
fs, err := sysfs.NewFS(*config.Path.SysPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to open sysfs: %w", err)
|
return nil, fmt.Errorf("failed to open sysfs: %w", err)
|
||||||
|
|
|
@ -80,14 +80,14 @@ type drbdCollector struct {
|
||||||
stringPair map[string]drbdStringPairMetric
|
stringPair map[string]drbdStringPairMetric
|
||||||
connected *prometheus.Desc
|
connected *prometheus.Desc
|
||||||
logger log.Logger
|
logger log.Logger
|
||||||
config NodeCollectorConfig
|
config *NodeCollectorConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
registerCollector("drbd", defaultDisabled, newDRBDCollector)
|
registerCollector("drbd", defaultDisabled, newDRBDCollector)
|
||||||
}
|
}
|
||||||
|
|
||||||
func newDRBDCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func newDRBDCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
return &drbdCollector{
|
return &drbdCollector{
|
||||||
numerical: map[string]drbdNumericalMetric{
|
numerical: map[string]drbdNumericalMetric{
|
||||||
"ns": newDRBDNumericalMetric(
|
"ns": newDRBDNumericalMetric(
|
||||||
|
|
|
@ -46,7 +46,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewDrmCollector returns a new Collector exposing /sys/class/drm/card?/device stats.
|
// NewDrmCollector returns a new Collector exposing /sys/class/drm/card?/device stats.
|
||||||
func NewDrmCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewDrmCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
fs, err := sysfs.NewFS(*config.Path.SysPath)
|
fs, err := sysfs.NewFS(*config.Path.SysPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to open sysfs: %w", err)
|
return nil, fmt.Errorf("failed to open sysfs: %w", err)
|
||||||
|
|
|
@ -40,7 +40,7 @@ type edacCollector struct {
|
||||||
csRowCECount *prometheus.Desc
|
csRowCECount *prometheus.Desc
|
||||||
csRowUECount *prometheus.Desc
|
csRowUECount *prometheus.Desc
|
||||||
logger log.Logger
|
logger log.Logger
|
||||||
config NodeCollectorConfig
|
config *NodeCollectorConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
@ -48,7 +48,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewEdacCollector returns a new Collector exposing edac stats.
|
// NewEdacCollector returns a new Collector exposing edac stats.
|
||||||
func NewEdacCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewEdacCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
return &edacCollector{
|
return &edacCollector{
|
||||||
ceCount: prometheus.NewDesc(
|
ceCount: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(namespace, edacSubsystem, "correctable_errors_total"),
|
prometheus.BuildFQName(namespace, edacSubsystem, "correctable_errors_total"),
|
||||||
|
|
|
@ -36,7 +36,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewEntropyCollector returns a new Collector exposing entropy stats.
|
// NewEntropyCollector returns a new Collector exposing entropy stats.
|
||||||
func NewEntropyCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewEntropyCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
fs, err := procfs.NewFS(*config.Path.ProcPath)
|
fs, err := procfs.NewFS(*config.Path.ProcPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to open procfs: %w", err)
|
return nil, fmt.Errorf("failed to open procfs: %w", err)
|
||||||
|
|
|
@ -87,7 +87,7 @@ type EthtoolConfig struct {
|
||||||
// makeEthtoolCollector is the internal constructor for EthtoolCollector.
|
// makeEthtoolCollector is the internal constructor for EthtoolCollector.
|
||||||
// This allows NewEthtoolTestCollector to override its .ethtool interface
|
// This allows NewEthtoolTestCollector to override its .ethtool interface
|
||||||
// for testing.
|
// for testing.
|
||||||
func makeEthtoolCollector(config NodeCollectorConfig, logger log.Logger) (*ethtoolCollector, error) {
|
func makeEthtoolCollector(config *NodeCollectorConfig, logger log.Logger) (*ethtoolCollector, error) {
|
||||||
fs, err := sysfs.NewFS(*config.Path.SysPath)
|
fs, err := sysfs.NewFS(*config.Path.SysPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to open sysfs: %w", err)
|
return nil, fmt.Errorf("failed to open sysfs: %w", err)
|
||||||
|
@ -215,7 +215,7 @@ func buildEthtoolFQName(metric string) string {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewEthtoolCollector returns a new Collector exposing ethtool stats.
|
// NewEthtoolCollector returns a new Collector exposing ethtool stats.
|
||||||
func NewEthtoolCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewEthtoolCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
return makeEthtoolCollector(config, logger)
|
return makeEthtoolCollector(config, logger)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -49,7 +49,7 @@ func (c testEthtoolCollector) Describe(ch chan<- *prometheus.Desc) {
|
||||||
prometheus.DescribeByCollect(c, ch)
|
prometheus.DescribeByCollect(c, ch)
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewTestEthtoolCollector(config NodeCollectorConfig, logger log.Logger) (prometheus.Collector, error) {
|
func NewTestEthtoolCollector(config *NodeCollectorConfig, logger log.Logger) (prometheus.Collector, error) {
|
||||||
dsc, err := NewEthtoolTestCollector(config, logger)
|
dsc, err := NewEthtoolTestCollector(config, logger)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return testEthtoolCollector{}, err
|
return testEthtoolCollector{}, err
|
||||||
|
@ -255,7 +255,7 @@ func (e *EthtoolFixture) LinkInfo(intf string) (ethtool.EthtoolCmd, error) {
|
||||||
return res, err
|
return res, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewEthtoolTestCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewEthtoolTestCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
collector, err := makeEthtoolCollector(config, logger)
|
collector, err := makeEthtoolCollector(config, logger)
|
||||||
collector.ethtool = &EthtoolFixture{
|
collector.ethtool = &EthtoolFixture{
|
||||||
fixturePath: "fixtures/ethtool/",
|
fixturePath: "fixtures/ethtool/",
|
||||||
|
@ -285,7 +285,7 @@ func TestBuildEthtoolFQName(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestEthToolCollector(t *testing.T) {
|
func TestEthToolCollector(t *testing.T) {
|
||||||
config := NodeCollectorConfig{
|
config := &NodeCollectorConfig{
|
||||||
Ethtool: EthtoolConfig{
|
Ethtool: EthtoolConfig{
|
||||||
DeviceInclude: new(string),
|
DeviceInclude: new(string),
|
||||||
DeviceExclude: new(string),
|
DeviceExclude: new(string),
|
||||||
|
|
|
@ -32,7 +32,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewExecCollector returns a new Collector exposing system execution statistics.
|
// NewExecCollector returns a new Collector exposing system execution statistics.
|
||||||
func NewExecCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewExecCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
// From sys/vm/vm_meter.c:
|
// From sys/vm/vm_meter.c:
|
||||||
// All are of type CTLTYPE_UINT.
|
// All are of type CTLTYPE_UINT.
|
||||||
//
|
//
|
||||||
|
|
|
@ -40,7 +40,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewFibreChannelCollector returns a new Collector exposing FibreChannel stats.
|
// NewFibreChannelCollector returns a new Collector exposing FibreChannel stats.
|
||||||
func NewFibreChannelCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewFibreChannelCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
var i fibrechannelCollector
|
var i fibrechannelCollector
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
|
|
|
@ -33,7 +33,7 @@ const (
|
||||||
|
|
||||||
type fileFDStatCollector struct {
|
type fileFDStatCollector struct {
|
||||||
logger log.Logger
|
logger log.Logger
|
||||||
config NodeCollectorConfig
|
config *NodeCollectorConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
@ -41,7 +41,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewFileFDStatCollector returns a new Collector exposing file-nr stats.
|
// NewFileFDStatCollector returns a new Collector exposing file-nr stats.
|
||||||
func NewFileFDStatCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewFileFDStatCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
return &fileFDStatCollector{logger, config}, nil
|
return &fileFDStatCollector{logger, config}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,7 @@ type filesystemCollector struct {
|
||||||
filesDesc, filesFreeDesc *prometheus.Desc
|
filesDesc, filesFreeDesc *prometheus.Desc
|
||||||
roDesc, deviceErrorDesc *prometheus.Desc
|
roDesc, deviceErrorDesc *prometheus.Desc
|
||||||
logger log.Logger
|
logger log.Logger
|
||||||
config NodeCollectorConfig
|
config *NodeCollectorConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
type filesystemLabels struct {
|
type filesystemLabels struct {
|
||||||
|
@ -73,7 +73,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewFilesystemCollector returns a new Collector exposing filesystems stats.
|
// NewFilesystemCollector returns a new Collector exposing filesystems stats.
|
||||||
func NewFilesystemCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewFilesystemCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
if *config.Filesystem.OldMountPointsExcluded != "" {
|
if *config.Filesystem.OldMountPointsExcluded != "" {
|
||||||
if !config.Filesystem.MountPointsExcludeSet {
|
if !config.Filesystem.MountPointsExcludeSet {
|
||||||
level.Warn(logger).Log("msg", "--collector.filesystem.ignored-mount-points is DEPRECATED and will be removed in 2.0.0, use --collector.filesystem.mount-points-exclude")
|
level.Warn(logger).Log("msg", "--collector.filesystem.ignored-mount-points is DEPRECATED and will be removed in 2.0.0, use --collector.filesystem.mount-points-exclude")
|
||||||
|
|
|
@ -168,7 +168,7 @@ func stuckMountWatcher(mountTimeout *time.Duration, mountPoint string, success c
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func mountPointDetails(config NodeCollectorConfig, logger log.Logger) ([]filesystemLabels, error) {
|
func mountPointDetails(config *NodeCollectorConfig, logger log.Logger) ([]filesystemLabels, error) {
|
||||||
file, err := os.Open(config.Path.procFilePath("1/mounts"))
|
file, err := os.Open(config.Path.procFilePath("1/mounts"))
|
||||||
if errors.Is(err, os.ErrNotExist) {
|
if errors.Is(err, os.ErrNotExist) {
|
||||||
// Fallback to `/proc/mounts` if `/proc/1/mounts` is missing due hidepid.
|
// Fallback to `/proc/mounts` if `/proc/1/mounts` is missing due hidepid.
|
||||||
|
@ -183,7 +183,7 @@ func mountPointDetails(config NodeCollectorConfig, logger log.Logger) ([]filesys
|
||||||
return parseFilesystemLabels(config, file)
|
return parseFilesystemLabels(config, file)
|
||||||
}
|
}
|
||||||
|
|
||||||
func parseFilesystemLabels(config NodeCollectorConfig, r io.Reader) ([]filesystemLabels, error) {
|
func parseFilesystemLabels(config *NodeCollectorConfig, r io.Reader) ([]filesystemLabels, error) {
|
||||||
var filesystems []filesystemLabels
|
var filesystems []filesystemLabels
|
||||||
|
|
||||||
scanner := bufio.NewScanner(r)
|
scanner := bufio.NewScanner(r)
|
||||||
|
|
|
@ -24,7 +24,7 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func Test_parseFilesystemLabelsError(t *testing.T) {
|
func Test_parseFilesystemLabelsError(t *testing.T) {
|
||||||
config := NodeCollectorConfig{}
|
config := &NodeCollectorConfig{}
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
in string
|
in string
|
||||||
|
|
|
@ -49,7 +49,7 @@ func init() {
|
||||||
type hwMonCollector struct {
|
type hwMonCollector struct {
|
||||||
deviceFilter deviceFilter
|
deviceFilter deviceFilter
|
||||||
logger log.Logger
|
logger log.Logger
|
||||||
config NodeCollectorConfig
|
config *NodeCollectorConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
type HwMonConfig struct {
|
type HwMonConfig struct {
|
||||||
|
@ -59,7 +59,7 @@ type HwMonConfig struct {
|
||||||
|
|
||||||
// NewHwMonCollector returns a new Collector exposing /sys/class/hwmon stats
|
// NewHwMonCollector returns a new Collector exposing /sys/class/hwmon stats
|
||||||
// (similar to lm-sensors).
|
// (similar to lm-sensors).
|
||||||
func NewHwMonCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewHwMonCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
|
|
||||||
return &hwMonCollector{
|
return &hwMonCollector{
|
||||||
logger: logger,
|
logger: logger,
|
||||||
|
|
|
@ -40,7 +40,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewInfiniBandCollector returns a new Collector exposing InfiniBand stats.
|
// NewInfiniBandCollector returns a new Collector exposing InfiniBand stats.
|
||||||
func NewInfiniBandCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewInfiniBandCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
var i infinibandCollector
|
var i infinibandCollector
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@ import (
|
||||||
type interruptsCollector struct {
|
type interruptsCollector struct {
|
||||||
desc typedDesc
|
desc typedDesc
|
||||||
logger log.Logger
|
logger log.Logger
|
||||||
config NodeCollectorConfig
|
config *NodeCollectorConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
@ -33,7 +33,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewInterruptsCollector returns a new Collector exposing interrupts stats.
|
// NewInterruptsCollector returns a new Collector exposing interrupts stats.
|
||||||
func NewInterruptsCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewInterruptsCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
return &interruptsCollector{
|
return &interruptsCollector{
|
||||||
desc: typedDesc{prometheus.NewDesc(
|
desc: typedDesc{prometheus.NewDesc(
|
||||||
namespace+"_interrupts_total",
|
namespace+"_interrupts_total",
|
||||||
|
|
|
@ -55,7 +55,7 @@ type interrupt struct {
|
||||||
values []string
|
values []string
|
||||||
}
|
}
|
||||||
|
|
||||||
func getInterrupts(config NodeCollectorConfig) (map[string]interrupt, error) {
|
func getInterrupts(config *NodeCollectorConfig) (map[string]interrupt, error) {
|
||||||
file, err := os.Open(config.Path.procFilePath("interrupts"))
|
file, err := os.Open(config.Path.procFilePath("interrupts"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|
|
@ -75,11 +75,11 @@ type IPVSConfig struct {
|
||||||
|
|
||||||
// NewIPVSCollector sets up a new collector for IPVS metrics. It accepts the
|
// NewIPVSCollector sets up a new collector for IPVS metrics. It accepts the
|
||||||
// "procfs" config parameter to override the default proc location (/proc).
|
// "procfs" config parameter to override the default proc location (/proc).
|
||||||
func NewIPVSCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewIPVSCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
return newIPVSCollector(config, logger)
|
return newIPVSCollector(config, logger)
|
||||||
}
|
}
|
||||||
|
|
||||||
func newIPVSCollector(config NodeCollectorConfig, logger log.Logger) (*ipvsCollector, error) {
|
func newIPVSCollector(config *NodeCollectorConfig, logger log.Logger) (*ipvsCollector, error) {
|
||||||
var (
|
var (
|
||||||
c ipvsCollector
|
c ipvsCollector
|
||||||
err error
|
err error
|
||||||
|
|
|
@ -32,7 +32,7 @@ var (
|
||||||
type ksmdCollector struct {
|
type ksmdCollector struct {
|
||||||
metricDescs map[string]*prometheus.Desc
|
metricDescs map[string]*prometheus.Desc
|
||||||
logger log.Logger
|
logger log.Logger
|
||||||
config NodeCollectorConfig
|
config *NodeCollectorConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
@ -51,7 +51,7 @@ func getCanonicalMetricName(filename string) string {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewKsmdCollector returns a new Collector exposing kernel/system statistics.
|
// NewKsmdCollector returns a new Collector exposing kernel/system statistics.
|
||||||
func NewKsmdCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewKsmdCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
subsystem := "ksmd"
|
subsystem := "ksmd"
|
||||||
descs := make(map[string]*prometheus.Desc)
|
descs := make(map[string]*prometheus.Desc)
|
||||||
|
|
||||||
|
|
|
@ -27,14 +27,14 @@ import (
|
||||||
|
|
||||||
type lnstatCollector struct {
|
type lnstatCollector struct {
|
||||||
logger log.Logger
|
logger log.Logger
|
||||||
config NodeCollectorConfig
|
config *NodeCollectorConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
registerCollector("lnstat", defaultDisabled, NewLnstatCollector)
|
registerCollector("lnstat", defaultDisabled, NewLnstatCollector)
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewLnstatCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewLnstatCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
return &lnstatCollector{logger, config}, nil
|
return &lnstatCollector{logger, config}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@ import (
|
||||||
type loadavgCollector struct {
|
type loadavgCollector struct {
|
||||||
metric []typedDesc
|
metric []typedDesc
|
||||||
logger log.Logger
|
logger log.Logger
|
||||||
config NodeCollectorConfig
|
config *NodeCollectorConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
@ -36,7 +36,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewLoadavgCollector returns a new Collector exposing load average stats.
|
// NewLoadavgCollector returns a new Collector exposing load average stats.
|
||||||
func NewLoadavgCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewLoadavgCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
return &loadavgCollector{
|
return &loadavgCollector{
|
||||||
metric: []typedDesc{
|
metric: []typedDesc{
|
||||||
{prometheus.NewDesc(namespace+"_load1", "1m load average.", nil, nil), prometheus.GaugeValue},
|
{prometheus.NewDesc(namespace+"_load1", "1m load average.", nil, nil), prometheus.GaugeValue},
|
||||||
|
|
|
@ -24,7 +24,7 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
// Read loadavg from /proc.
|
// Read loadavg from /proc.
|
||||||
func getLoad(config NodeCollectorConfig) (loads []float64, err error) {
|
func getLoad(config *NodeCollectorConfig) (loads []float64, err error) {
|
||||||
data, err := os.ReadFile(config.Path.procFilePath("loadavg"))
|
data, err := os.ReadFile(config.Path.procFilePath("loadavg"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -37,7 +37,7 @@ func getLoad(config NodeCollectorConfig) (loads []float64, err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parse /proc loadavg and return 1m, 5m and 15m.
|
// Parse /proc loadavg and return 1m, 5m and 15m.
|
||||||
func parseLoad(config NodeCollectorConfig, data string) (loads []float64, err error) {
|
func parseLoad(config *NodeCollectorConfig, data string) (loads []float64, err error) {
|
||||||
loads = make([]float64, 3)
|
loads = make([]float64, 3)
|
||||||
parts := strings.Fields(data)
|
parts := strings.Fields(data)
|
||||||
if len(parts) < 3 {
|
if len(parts) < 3 {
|
||||||
|
|
|
@ -19,7 +19,7 @@ package collector
|
||||||
import "testing"
|
import "testing"
|
||||||
|
|
||||||
func TestLoad(t *testing.T) {
|
func TestLoad(t *testing.T) {
|
||||||
config := NodeCollectorConfig{}
|
config := &NodeCollectorConfig{}
|
||||||
|
|
||||||
want := []float64{0.21, 0.37, 0.39}
|
want := []float64{0.21, 0.37, 0.39}
|
||||||
loads, err := parseLoad(config, "0.21 0.37 0.39 1/719 19737")
|
loads, err := parseLoad(config, "0.21 0.37 0.39 1/719 19737")
|
||||||
|
|
|
@ -86,7 +86,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewLogindCollector returns a new Collector exposing logind statistics.
|
// NewLogindCollector returns a new Collector exposing logind statistics.
|
||||||
func NewLogindCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewLogindCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
return &logindCollector{logger}, nil
|
return &logindCollector{logger}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,7 @@ import (
|
||||||
|
|
||||||
type mdadmCollector struct {
|
type mdadmCollector struct {
|
||||||
logger log.Logger
|
logger log.Logger
|
||||||
config NodeCollectorConfig
|
config *NodeCollectorConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
@ -37,7 +37,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewMdadmCollector returns a new Collector exposing raid statistics.
|
// NewMdadmCollector returns a new Collector exposing raid statistics.
|
||||||
func NewMdadmCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewMdadmCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
return &mdadmCollector{logger, config}, nil
|
return &mdadmCollector{logger, config}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ const (
|
||||||
|
|
||||||
type meminfoCollector struct {
|
type meminfoCollector struct {
|
||||||
logger log.Logger
|
logger log.Logger
|
||||||
config NodeCollectorConfig
|
config *NodeCollectorConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
@ -40,7 +40,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewMeminfoCollector returns a new Collector exposing memory stats.
|
// NewMeminfoCollector returns a new Collector exposing memory stats.
|
||||||
func NewMeminfoCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewMeminfoCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
return &meminfoCollector{logger, config}, nil
|
return &meminfoCollector{logger, config}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,7 @@ type meminfoMetric struct {
|
||||||
type meminfoNumaCollector struct {
|
type meminfoNumaCollector struct {
|
||||||
metricDescs map[string]*prometheus.Desc
|
metricDescs map[string]*prometheus.Desc
|
||||||
logger log.Logger
|
logger log.Logger
|
||||||
config NodeCollectorConfig
|
config *NodeCollectorConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
@ -54,7 +54,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewMeminfoNumaCollector returns a new Collector exposing memory stats.
|
// NewMeminfoNumaCollector returns a new Collector exposing memory stats.
|
||||||
func NewMeminfoNumaCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewMeminfoNumaCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
return &meminfoNumaCollector{
|
return &meminfoNumaCollector{
|
||||||
metricDescs: map[string]*prometheus.Desc{},
|
metricDescs: map[string]*prometheus.Desc{},
|
||||||
logger: logger,
|
logger: logger,
|
||||||
|
@ -81,7 +81,7 @@ func (c *meminfoNumaCollector) Update(ch chan<- prometheus.Metric) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func getMemInfoNuma(config NodeCollectorConfig) ([]meminfoMetric, error) {
|
func getMemInfoNuma(config *NodeCollectorConfig) ([]meminfoMetric, error) {
|
||||||
var (
|
var (
|
||||||
metrics []meminfoMetric
|
metrics []meminfoMetric
|
||||||
)
|
)
|
||||||
|
|
|
@ -41,7 +41,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewMemoryCollector returns a new Collector exposing memory stats.
|
// NewMemoryCollector returns a new Collector exposing memory stats.
|
||||||
func NewMemoryCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewMemoryCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
tmp32, err := unix.SysctlUint32("vm.stats.vm.v_page_size")
|
tmp32, err := unix.SysctlUint32("vm.stats.vm.v_page_size")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("sysctl(vm.stats.vm.v_page_size) failed: %w", err)
|
return nil, fmt.Errorf("sysctl(vm.stats.vm.v_page_size) failed: %w", err)
|
||||||
|
|
|
@ -111,7 +111,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewMountStatsCollector returns a new Collector exposing NFS statistics.
|
// NewMountStatsCollector returns a new Collector exposing NFS statistics.
|
||||||
func NewMountStatsCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewMountStatsCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
fs, err := procfs.NewFS(*config.Path.ProcPath)
|
fs, err := procfs.NewFS(*config.Path.ProcPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to open procfs: %w", err)
|
return nil, fmt.Errorf("failed to open procfs: %w", err)
|
||||||
|
|
|
@ -35,7 +35,7 @@ type netClassCollector struct {
|
||||||
ignoredDevicesPattern *regexp.Regexp
|
ignoredDevicesPattern *regexp.Regexp
|
||||||
metricDescs map[string]*prometheus.Desc
|
metricDescs map[string]*prometheus.Desc
|
||||||
logger log.Logger
|
logger log.Logger
|
||||||
config NodeCollectorConfig
|
config *NodeCollectorConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
@ -50,7 +50,7 @@ type NetClassConfig struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewNetClassCollector returns a new Collector exposing network class stats.
|
// NewNetClassCollector returns a new Collector exposing network class stats.
|
||||||
func NewNetClassCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewNetClassCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
fs, err := sysfs.NewFS(*config.Path.SysPath)
|
fs, err := sysfs.NewFS(*config.Path.SysPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to open sysfs: %w", err)
|
return nil, fmt.Errorf("failed to open sysfs: %w", err)
|
||||||
|
|
|
@ -35,7 +35,7 @@ type netDevCollector struct {
|
||||||
metricDescsMutex sync.Mutex
|
metricDescsMutex sync.Mutex
|
||||||
metricDescs map[string]*prometheus.Desc
|
metricDescs map[string]*prometheus.Desc
|
||||||
logger log.Logger
|
logger log.Logger
|
||||||
config NodeCollectorConfig
|
config *NodeCollectorConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
type netDevStats map[string]map[string]uint64
|
type netDevStats map[string]map[string]uint64
|
||||||
|
@ -55,7 +55,7 @@ type NetDevConfig struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewNetDevCollector returns a new Collector exposing network device stats.
|
// NewNetDevCollector returns a new Collector exposing network device stats.
|
||||||
func NewNetDevCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewNetDevCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
if *config.NetDev.OldDeviceInclude != "" {
|
if *config.NetDev.OldDeviceInclude != "" {
|
||||||
if *config.NetDev.DeviceInclude == "" {
|
if *config.NetDev.DeviceInclude == "" {
|
||||||
level.Warn(logger).Log("msg", "--collector.netdev.device-whitelist is DEPRECATED and will be removed in 2.0.0, use --collector.netdev.device-include")
|
level.Warn(logger).Log("msg", "--collector.netdev.device-whitelist is DEPRECATED and will be removed in 2.0.0, use --collector.netdev.device-include")
|
||||||
|
|
|
@ -25,7 +25,7 @@ import (
|
||||||
"github.com/prometheus/procfs"
|
"github.com/prometheus/procfs"
|
||||||
)
|
)
|
||||||
|
|
||||||
func getNetDevStats(config NodeCollectorConfig, netDevNetlink *bool, filter *deviceFilter, logger log.Logger) (netDevStats, error) {
|
func getNetDevStats(config *NodeCollectorConfig, netDevNetlink *bool, filter *deviceFilter, logger log.Logger) (netDevStats, error) {
|
||||||
if *netDevNetlink {
|
if *netDevNetlink {
|
||||||
return netlinkStats(filter, logger)
|
return netlinkStats(filter, logger)
|
||||||
}
|
}
|
||||||
|
@ -136,7 +136,7 @@ func parseNetlinkStats(links []rtnetlink.LinkMessage, filter *deviceFilter, logg
|
||||||
return metrics
|
return metrics
|
||||||
}
|
}
|
||||||
|
|
||||||
func procNetDevStats(config NodeCollectorConfig, filter *deviceFilter, logger log.Logger) (netDevStats, error) {
|
func procNetDevStats(config *NodeCollectorConfig, filter *deviceFilter, logger log.Logger) (netDevStats, error) {
|
||||||
metrics := netDevStats{}
|
metrics := netDevStats{}
|
||||||
|
|
||||||
fs, err := procfs.NewFS(*config.Path.ProcPath)
|
fs, err := procfs.NewFS(*config.Path.ProcPath)
|
||||||
|
|
|
@ -36,7 +36,7 @@ func init() {
|
||||||
registerCollector("netisr", defaultEnabled, NewNetisrCollector)
|
registerCollector("netisr", defaultEnabled, NewNetisrCollector)
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewNetisrCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewNetisrCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
return &netisrCollector{
|
return &netisrCollector{
|
||||||
sysctls: []bsdSysctl{
|
sysctls: []bsdSysctl{
|
||||||
{
|
{
|
||||||
|
|
|
@ -37,7 +37,7 @@ const (
|
||||||
type netStatCollector struct {
|
type netStatCollector struct {
|
||||||
fieldPattern *regexp.Regexp
|
fieldPattern *regexp.Regexp
|
||||||
logger log.Logger
|
logger log.Logger
|
||||||
config NodeCollectorConfig
|
config *NodeCollectorConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
@ -50,7 +50,7 @@ type NetStatConfig struct {
|
||||||
|
|
||||||
// NewNetStatCollector takes and returns
|
// NewNetStatCollector takes and returns
|
||||||
// a new Collector exposing network stats.
|
// a new Collector exposing network stats.
|
||||||
func NewNetStatCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewNetStatCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
pattern := regexp.MustCompile(*config.NetStat.Fields)
|
pattern := regexp.MustCompile(*config.NetStat.Fields)
|
||||||
return &netStatCollector{
|
return &netStatCollector{
|
||||||
fieldPattern: pattern,
|
fieldPattern: pattern,
|
||||||
|
|
|
@ -39,7 +39,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewNetworkRouteCollector returns a new Collector exposing systemd statistics.
|
// NewNetworkRouteCollector returns a new Collector exposing systemd statistics.
|
||||||
func NewNetworkRouteCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewNetworkRouteCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
const subsystem = "network"
|
const subsystem = "network"
|
||||||
|
|
||||||
routeInfoDesc := prometheus.NewDesc(
|
routeInfoDesc := prometheus.NewDesc(
|
||||||
|
|
|
@ -48,7 +48,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewNfsCollector returns a new Collector exposing NFS statistics.
|
// NewNfsCollector returns a new Collector exposing NFS statistics.
|
||||||
func NewNfsCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewNfsCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
fs, err := nfs.NewFS(*config.Path.ProcPath)
|
fs, err := nfs.NewFS(*config.Path.ProcPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to open procfs: %w", err)
|
return nil, fmt.Errorf("failed to open procfs: %w", err)
|
||||||
|
|
|
@ -44,7 +44,7 @@ const (
|
||||||
)
|
)
|
||||||
|
|
||||||
// NewNFSdCollector returns a new Collector exposing /proc/net/rpc/nfsd statistics.
|
// NewNFSdCollector returns a new Collector exposing /proc/net/rpc/nfsd statistics.
|
||||||
func NewNFSdCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewNFSdCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
fs, err := nfs.NewFS(*config.Path.ProcPath)
|
fs, err := nfs.NewFS(*config.Path.ProcPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to open procfs: %w", err)
|
return nil, fmt.Errorf("failed to open procfs: %w", err)
|
||||||
|
|
|
@ -62,7 +62,7 @@ type NTPConfig struct {
|
||||||
// Default definition of "local" is:
|
// Default definition of "local" is:
|
||||||
// - collector.ntp.server address is a loopback address (or collector.ntp.server-is-mine flag is turned on)
|
// - collector.ntp.server address is a loopback address (or collector.ntp.server-is-mine flag is turned on)
|
||||||
// - the server is reachable with outgoin IP_TTL = 1
|
// - the server is reachable with outgoin IP_TTL = 1
|
||||||
func NewNtpCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewNtpCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
ipaddr := net.ParseIP(*config.NTP.Server)
|
ipaddr := net.ParseIP(*config.NTP.Server)
|
||||||
if !*config.NTP.ServerIsLocal && (ipaddr == nil || !ipaddr.IsLoopback()) {
|
if !*config.NTP.ServerIsLocal && (ipaddr == nil || !ipaddr.IsLoopback()) {
|
||||||
return nil, fmt.Errorf("only IP address of local NTP server is valid for --collector.ntp.server")
|
return nil, fmt.Errorf("only IP address of local NTP server is valid for --collector.ntp.server")
|
||||||
|
|
|
@ -37,7 +37,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewNVMeCollector returns a new Collector exposing NVMe stats.
|
// NewNVMeCollector returns a new Collector exposing NVMe stats.
|
||||||
func NewNVMeCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewNVMeCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
fs, err := sysfs.NewFS(*config.Path.SysPath)
|
fs, err := sysfs.NewFS(*config.Path.SysPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to open sysfs: %w", err)
|
return nil, fmt.Errorf("failed to open sysfs: %w", err)
|
||||||
|
|
|
@ -65,7 +65,7 @@ type osReleaseCollector struct {
|
||||||
osReleaseFilenames []string // all os-release file names to check
|
osReleaseFilenames []string // all os-release file names to check
|
||||||
version float64
|
version float64
|
||||||
versionDesc *prometheus.Desc
|
versionDesc *prometheus.Desc
|
||||||
config NodeCollectorConfig
|
config *NodeCollectorConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
type Plist struct {
|
type Plist struct {
|
||||||
|
@ -82,7 +82,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewOSCollector returns a new Collector exposing os-release information.
|
// NewOSCollector returns a new Collector exposing os-release information.
|
||||||
func NewOSCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewOSCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
return &osReleaseCollector{
|
return &osReleaseCollector{
|
||||||
logger: logger,
|
logger: logger,
|
||||||
infoDesc: prometheus.NewDesc(
|
infoDesc: prometheus.NewDesc(
|
||||||
|
|
|
@ -87,7 +87,7 @@ func TestUpdateStruct(t *testing.T) {
|
||||||
}
|
}
|
||||||
wantedVersion := 20.04
|
wantedVersion := 20.04
|
||||||
|
|
||||||
collector, err := NewOSCollector(NodeCollectorConfig{}, log.NewNopLogger())
|
collector, err := NewOSCollector(&NodeCollectorConfig{}, log.NewNopLogger())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,8 +75,8 @@ func TestCustomSysPath(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func newNodeCollectorWithPaths() NodeCollectorConfig {
|
func newNodeCollectorWithPaths() *NodeCollectorConfig {
|
||||||
return NodeCollectorConfig{Path: PathConfig{
|
return &NodeCollectorConfig{Path: PathConfig{
|
||||||
ProcPath: new(string),
|
ProcPath: new(string),
|
||||||
SysPath: new(string),
|
SysPath: new(string),
|
||||||
RootfsPath: new(string),
|
RootfsPath: new(string),
|
||||||
|
|
|
@ -300,7 +300,7 @@ func newPerfTracepointCollector(
|
||||||
|
|
||||||
// NewPerfCollector returns a new perf based collector, it creates a profiler
|
// NewPerfCollector returns a new perf based collector, it creates a profiler
|
||||||
// per CPU.
|
// per CPU.
|
||||||
func NewPerfCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewPerfCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
collector := &perfCollector{
|
collector := &perfCollector{
|
||||||
perfHwProfilers: map[int]*perf.HardwareProfiler{},
|
perfHwProfilers: map[int]*perf.HardwareProfiler{},
|
||||||
perfSwProfilers: map[int]*perf.SoftwareProfiler{},
|
perfSwProfilers: map[int]*perf.SoftwareProfiler{},
|
||||||
|
|
|
@ -44,7 +44,7 @@ func canTestPerf(t *testing.T) {
|
||||||
|
|
||||||
func TestPerfCollector(t *testing.T) {
|
func TestPerfCollector(t *testing.T) {
|
||||||
canTestPerf(t)
|
canTestPerf(t)
|
||||||
collector, err := NewPerfCollector(NodeCollectorConfig{}, log.NewNopLogger())
|
collector, err := NewPerfCollector(&NodeCollectorConfig{}, log.NewNopLogger())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
@ -64,7 +64,7 @@ func TestPerfCollector(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestPerfCollectorStride(t *testing.T) {
|
func TestPerfCollectorStride(t *testing.T) {
|
||||||
config := NodeCollectorConfig{}
|
config := &NodeCollectorConfig{}
|
||||||
|
|
||||||
canTestPerf(t)
|
canTestPerf(t)
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,7 @@ type powerSupplyClassCollector struct {
|
||||||
ignoredPattern *regexp.Regexp
|
ignoredPattern *regexp.Regexp
|
||||||
metricDescs map[string]*prometheus.Desc
|
metricDescs map[string]*prometheus.Desc
|
||||||
logger log.Logger
|
logger log.Logger
|
||||||
config NodeCollectorConfig
|
config *NodeCollectorConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
@ -40,7 +40,7 @@ type PowerSupplyClassConfig struct {
|
||||||
IgnoredPowerSupplies *string
|
IgnoredPowerSupplies *string
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewPowerSupplyClassCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewPowerSupplyClassCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
pattern := regexp.MustCompile(*config.PowerSupplyClass.IgnoredPowerSupplies)
|
pattern := regexp.MustCompile(*config.PowerSupplyClass.IgnoredPowerSupplies)
|
||||||
return &powerSupplyClassCollector{
|
return &powerSupplyClassCollector{
|
||||||
subsystem: "power_supply",
|
subsystem: "power_supply",
|
||||||
|
|
|
@ -155,7 +155,7 @@ func pushPowerSupplyMetric(ch chan<- prometheus.Metric, subsystem string, name s
|
||||||
ch <- prometheus.MustNewConstMetric(fieldDesc, valueType, value, powerSupplyName)
|
ch <- prometheus.MustNewConstMetric(fieldDesc, valueType, value, powerSupplyName)
|
||||||
}
|
}
|
||||||
|
|
||||||
func getPowerSupplyClassInfo(config NodeCollectorConfig, ignore *regexp.Regexp) (sysfs.PowerSupplyClass, error) {
|
func getPowerSupplyClassInfo(config *NodeCollectorConfig, ignore *regexp.Regexp) (sysfs.PowerSupplyClass, error) {
|
||||||
fs, err := sysfs.NewFS(*config.Path.SysPath)
|
fs, err := sysfs.NewFS(*config.Path.SysPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|
|
@ -49,7 +49,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewPressureStatsCollector returns a Collector exposing pressure stall information
|
// NewPressureStatsCollector returns a Collector exposing pressure stall information
|
||||||
func NewPressureStatsCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewPressureStatsCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
fs, err := procfs.NewFS(*config.Path.ProcPath)
|
fs, err := procfs.NewFS(*config.Path.ProcPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to open procfs: %w", err)
|
return nil, fmt.Errorf("failed to open procfs: %w", err)
|
||||||
|
|
|
@ -40,7 +40,7 @@ type processCollector struct {
|
||||||
pidUsed *prometheus.Desc
|
pidUsed *prometheus.Desc
|
||||||
pidMax *prometheus.Desc
|
pidMax *prometheus.Desc
|
||||||
logger log.Logger
|
logger log.Logger
|
||||||
config NodeCollectorConfig
|
config *NodeCollectorConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
@ -48,7 +48,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewProcessStatCollector returns a new Collector exposing process data read from the proc filesystem.
|
// NewProcessStatCollector returns a new Collector exposing process data read from the proc filesystem.
|
||||||
func NewProcessStatCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewProcessStatCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
fs, err := procfs.NewFS(*config.Path.ProcPath)
|
fs, err := procfs.NewFS(*config.Path.ProcPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to open procfs: %w", err)
|
return nil, fmt.Errorf("failed to open procfs: %w", err)
|
||||||
|
|
|
@ -38,7 +38,7 @@ type qdiscStatCollector struct {
|
||||||
overlimits typedDesc
|
overlimits typedDesc
|
||||||
qlength typedDesc
|
qlength typedDesc
|
||||||
backlog typedDesc
|
backlog typedDesc
|
||||||
config NodeCollectorConfig
|
config *NodeCollectorConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
@ -54,7 +54,7 @@ type QdiscConfig struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewQdiscStatCollector returns a new Collector exposing queuing discipline statistics.
|
// NewQdiscStatCollector returns a new Collector exposing queuing discipline statistics.
|
||||||
func NewQdiscStatCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewQdiscStatCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
if *config.Qdisc.OldDeviceInclude != "" {
|
if *config.Qdisc.OldDeviceInclude != "" {
|
||||||
if *config.Qdisc.DeviceInclude == "" {
|
if *config.Qdisc.DeviceInclude == "" {
|
||||||
level.Warn(logger).Log("msg", "--collector.qdisk.device-include is DEPRECATED and will be removed in 2.0.0, use --collector.qdisc.device-include")
|
level.Warn(logger).Log("msg", "--collector.qdisk.device-include is DEPRECATED and will be removed in 2.0.0, use --collector.qdisc.device-include")
|
||||||
|
|
|
@ -35,7 +35,7 @@ type raplCollector struct {
|
||||||
logger log.Logger
|
logger log.Logger
|
||||||
|
|
||||||
joulesMetricDesc *prometheus.Desc
|
joulesMetricDesc *prometheus.Desc
|
||||||
config NodeCollectorConfig
|
config *NodeCollectorConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
@ -47,7 +47,7 @@ type RaplConfig struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewRaplCollector returns a new Collector exposing RAPL metrics.
|
// NewRaplCollector returns a new Collector exposing RAPL metrics.
|
||||||
func NewRaplCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewRaplCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
fs, err := sysfs.NewFS(*config.Path.SysPath)
|
fs, err := sysfs.NewFS(*config.Path.SysPath)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -29,7 +29,7 @@ type runitCollector struct {
|
||||||
stateNormal typedDesc
|
stateNormal typedDesc
|
||||||
stateTimestamp typedDesc
|
stateTimestamp typedDesc
|
||||||
logger log.Logger
|
logger log.Logger
|
||||||
config NodeCollectorConfig
|
config *NodeCollectorConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
@ -41,7 +41,7 @@ type RunitConfig struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewRunitCollector returns a new Collector exposing runit statistics.
|
// NewRunitCollector returns a new Collector exposing runit statistics.
|
||||||
func NewRunitCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewRunitCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
var (
|
var (
|
||||||
subsystem = "service"
|
subsystem = "service"
|
||||||
constLabels = prometheus.Labels{"supervisor": "runit"}
|
constLabels = prometheus.Labels{"supervisor": "runit"}
|
||||||
|
|
|
@ -53,7 +53,7 @@ var (
|
||||||
)
|
)
|
||||||
|
|
||||||
// NewSchedstatCollector returns a new Collector exposing task scheduler statistics
|
// NewSchedstatCollector returns a new Collector exposing task scheduler statistics
|
||||||
func NewSchedstatCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewSchedstatCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
fs, err := procfs.NewFS(*config.Path.ProcPath)
|
fs, err := procfs.NewFS(*config.Path.ProcPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to open procfs: %w", err)
|
return nil, fmt.Errorf("failed to open procfs: %w", err)
|
||||||
|
|
|
@ -34,7 +34,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewSelinuxCollector returns a new Collector exposing SELinux statistics.
|
// NewSelinuxCollector returns a new Collector exposing SELinux statistics.
|
||||||
func NewSelinuxCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewSelinuxCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
const subsystem = "selinux"
|
const subsystem = "selinux"
|
||||||
|
|
||||||
return &selinuxCollector{
|
return &selinuxCollector{
|
||||||
|
|
|
@ -35,7 +35,7 @@ func init() {
|
||||||
registerCollector("slabinfo", defaultDisabled, NewSlabinfoCollector)
|
registerCollector("slabinfo", defaultDisabled, NewSlabinfoCollector)
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewSlabinfoCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewSlabinfoCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
fs, err := procfs.NewFS(*config.Path.ProcPath)
|
fs, err := procfs.NewFS(*config.Path.ProcPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to open procfs: %w", err)
|
return nil, fmt.Errorf("failed to open procfs: %w", err)
|
||||||
|
|
|
@ -36,7 +36,7 @@ var pageSize = os.Getpagesize()
|
||||||
|
|
||||||
type sockStatCollector struct {
|
type sockStatCollector struct {
|
||||||
logger log.Logger
|
logger log.Logger
|
||||||
config NodeCollectorConfig
|
config *NodeCollectorConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
@ -44,7 +44,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewSockStatCollector returns a new Collector exposing socket stats.
|
// NewSockStatCollector returns a new Collector exposing socket stats.
|
||||||
func NewSockStatCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewSockStatCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
return &sockStatCollector{logger, config}, nil
|
return &sockStatCollector{logger, config}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewSoftirqsCollector returns a new Collector exposing softirq stats.
|
// NewSoftirqsCollector returns a new Collector exposing softirq stats.
|
||||||
func NewSoftirqsCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewSoftirqsCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
desc := typedDesc{prometheus.NewDesc(
|
desc := typedDesc{prometheus.NewDesc(
|
||||||
namespace+"_softirqs_functions_total",
|
namespace+"_softirqs_functions_total",
|
||||||
"Softirq counts per CPU.",
|
"Softirq counts per CPU.",
|
||||||
|
|
|
@ -46,7 +46,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewSoftnetCollector returns a new Collector exposing softnet metrics.
|
// NewSoftnetCollector returns a new Collector exposing softnet metrics.
|
||||||
func NewSoftnetCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewSoftnetCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
fs, err := procfs.NewFS(*config.Path.ProcPath)
|
fs, err := procfs.NewFS(*config.Path.ProcPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to open procfs: %w", err)
|
return nil, fmt.Errorf("failed to open procfs: %w", err)
|
||||||
|
|
|
@ -34,7 +34,7 @@ type statCollector struct {
|
||||||
procsBlocked *prometheus.Desc
|
procsBlocked *prometheus.Desc
|
||||||
softIRQ *prometheus.Desc
|
softIRQ *prometheus.Desc
|
||||||
logger log.Logger
|
logger log.Logger
|
||||||
config NodeCollectorConfig
|
config *NodeCollectorConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
@ -46,7 +46,7 @@ type StatConfig struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewStatCollector returns a new Collector exposing kernel/system statistics.
|
// NewStatCollector returns a new Collector exposing kernel/system statistics.
|
||||||
func NewStatCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewStatCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
fs, err := procfs.NewFS(*config.Path.ProcPath)
|
fs, err := procfs.NewFS(*config.Path.ProcPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to open procfs: %w", err)
|
return nil, fmt.Errorf("failed to open procfs: %w", err)
|
||||||
|
|
|
@ -51,7 +51,7 @@ type SupervisordConfig struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewSupervisordCollector returns a new Collector exposing supervisord statistics.
|
// NewSupervisordCollector returns a new Collector exposing supervisord statistics.
|
||||||
func NewSupervisordCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewSupervisordCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
var (
|
var (
|
||||||
subsystem = "supervisord"
|
subsystem = "supervisord"
|
||||||
labelNames = []string{"name", "group"}
|
labelNames = []string{"name", "group"}
|
||||||
|
|
|
@ -42,7 +42,7 @@ type SysctlConfig struct {
|
||||||
IncludeInfo *[]string
|
IncludeInfo *[]string
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewSysctlCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewSysctlCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
fs, err := procfs.NewFS(*config.Path.ProcPath)
|
fs, err := procfs.NewFS(*config.Path.ProcPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to open sysfs: %w", err)
|
return nil, fmt.Errorf("failed to open sysfs: %w", err)
|
||||||
|
|
|
@ -84,7 +84,7 @@ type SystemdConfig struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewSystemdCollector returns a new Collector exposing systemd statistics.
|
// NewSystemdCollector returns a new Collector exposing systemd statistics.
|
||||||
func NewSystemdCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewSystemdCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
const subsystem = "systemd"
|
const subsystem = "systemd"
|
||||||
|
|
||||||
unitDesc := prometheus.NewDesc(
|
unitDesc := prometheus.NewDesc(
|
||||||
|
|
|
@ -105,7 +105,7 @@ func TestSystemdIgnoreFilterDefaultKeepsAll(t *testing.T) {
|
||||||
logger := log.NewNopLogger()
|
logger := log.NewNopLogger()
|
||||||
defaultInclude := ".+"
|
defaultInclude := ".+"
|
||||||
defaultExclude := ".+\\.(automount|device|mount|scope|slice)"
|
defaultExclude := ".+\\.(automount|device|mount|scope|slice)"
|
||||||
config := NodeCollectorConfig{Systemd: SystemdConfig{
|
config := &NodeCollectorConfig{Systemd: SystemdConfig{
|
||||||
UnitInclude: &defaultInclude,
|
UnitInclude: &defaultInclude,
|
||||||
UnitExclude: &defaultExclude,
|
UnitExclude: &defaultExclude,
|
||||||
OldUnitInclude: new(string),
|
OldUnitInclude: new(string),
|
||||||
|
|
|
@ -53,7 +53,7 @@ type TapestatsConfig struct {
|
||||||
|
|
||||||
// NewTapestatsCollector returns a new Collector exposing tape device stats.
|
// NewTapestatsCollector returns a new Collector exposing tape device stats.
|
||||||
// Docs from https://www.kernel.org/doc/html/latest/scsi/st.html#sysfs-and-statistics-for-tape-devices
|
// Docs from https://www.kernel.org/doc/html/latest/scsi/st.html#sysfs-and-statistics-for-tape-devices
|
||||||
func NewTapestatsCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewTapestatsCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
var tapeLabelNames = []string{"device"}
|
var tapeLabelNames = []string{"device"}
|
||||||
|
|
||||||
fs, err := sysfs.NewFS(*config.Path.SysPath)
|
fs, err := sysfs.NewFS(*config.Path.SysPath)
|
||||||
|
|
|
@ -61,7 +61,7 @@ const (
|
||||||
type tcpStatCollector struct {
|
type tcpStatCollector struct {
|
||||||
desc typedDesc
|
desc typedDesc
|
||||||
logger log.Logger
|
logger log.Logger
|
||||||
config NodeCollectorConfig
|
config *NodeCollectorConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
@ -69,7 +69,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewTCPStatCollector returns a new Collector exposing network stats.
|
// NewTCPStatCollector returns a new Collector exposing network stats.
|
||||||
func NewTCPStatCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewTCPStatCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
return &tcpStatCollector{
|
return &tcpStatCollector{
|
||||||
desc: typedDesc{prometheus.NewDesc(
|
desc: typedDesc{prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(namespace, "tcp", "connection_states"),
|
prometheus.BuildFQName(namespace, "tcp", "connection_states"),
|
||||||
|
|
|
@ -57,7 +57,7 @@ type TextFileConfig struct {
|
||||||
|
|
||||||
// NewTextFileCollector returns a new Collector exposing metrics read from files
|
// NewTextFileCollector returns a new Collector exposing metrics read from files
|
||||||
// in the given textfile directory.
|
// in the given textfile directory.
|
||||||
func NewTextFileCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewTextFileCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
c := &textFileCollector{
|
c := &textFileCollector{
|
||||||
path: *config.TextFile.Directory,
|
path: *config.TextFile.Directory,
|
||||||
logger: logger,
|
logger: logger,
|
||||||
|
|
|
@ -67,7 +67,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewThermCollector returns a new Collector exposing current CPU power levels.
|
// NewThermCollector returns a new Collector exposing current CPU power levels.
|
||||||
func NewThermCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewThermCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
return &thermCollector{
|
return &thermCollector{
|
||||||
cpuSchedulerLimit: typedDesc{
|
cpuSchedulerLimit: typedDesc{
|
||||||
desc: prometheus.NewDesc(
|
desc: prometheus.NewDesc(
|
||||||
|
|
|
@ -43,7 +43,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewThermalZoneCollector returns a new Collector exposing kernel/system statistics.
|
// NewThermalZoneCollector returns a new Collector exposing kernel/system statistics.
|
||||||
func NewThermalZoneCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewThermalZoneCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
fs, err := sysfs.NewFS(*config.Path.SysPath)
|
fs, err := sysfs.NewFS(*config.Path.SysPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to open sysfs: %w", err)
|
return nil, fmt.Errorf("failed to open sysfs: %w", err)
|
||||||
|
|
|
@ -30,7 +30,7 @@ type timeCollector struct {
|
||||||
clocksourcesAvailable typedDesc
|
clocksourcesAvailable typedDesc
|
||||||
clocksourceCurrent typedDesc
|
clocksourceCurrent typedDesc
|
||||||
logger log.Logger
|
logger log.Logger
|
||||||
config NodeCollectorConfig
|
config *NodeCollectorConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
@ -39,7 +39,7 @@ func init() {
|
||||||
|
|
||||||
// NewTimeCollector returns a new Collector exposing the current system time in
|
// NewTimeCollector returns a new Collector exposing the current system time in
|
||||||
// seconds since epoch.
|
// seconds since epoch.
|
||||||
func NewTimeCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewTimeCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
const subsystem = "time"
|
const subsystem = "time"
|
||||||
return &timeCollector{
|
return &timeCollector{
|
||||||
now: typedDesc{prometheus.NewDesc(
|
now: typedDesc{prometheus.NewDesc(
|
||||||
|
|
|
@ -66,7 +66,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewTimexCollector returns a new Collector exposing adjtime(3) stats.
|
// NewTimexCollector returns a new Collector exposing adjtime(3) stats.
|
||||||
func NewTimexCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewTimexCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
const subsystem = "timex"
|
const subsystem = "timex"
|
||||||
|
|
||||||
return &timexCollector{
|
return &timexCollector{
|
||||||
|
|
|
@ -40,7 +40,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewUDPqueuesCollector returns a new Collector exposing network udp queued bytes.
|
// NewUDPqueuesCollector returns a new Collector exposing network udp queued bytes.
|
||||||
func NewUDPqueuesCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewUDPqueuesCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
fs, err := procfs.NewFS(*config.Path.ProcPath)
|
fs, err := procfs.NewFS(*config.Path.ProcPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to open procfs: %w", err)
|
return nil, fmt.Errorf("failed to open procfs: %w", err)
|
||||||
|
|
|
@ -53,7 +53,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewUnameCollector returns new unameCollector.
|
// NewUnameCollector returns new unameCollector.
|
||||||
func newUnameCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func newUnameCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
return &unameCollector{logger}, nil
|
return &unameCollector{logger}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@ const (
|
||||||
type vmStatCollector struct {
|
type vmStatCollector struct {
|
||||||
fieldPattern *regexp.Regexp
|
fieldPattern *regexp.Regexp
|
||||||
logger log.Logger
|
logger log.Logger
|
||||||
config NodeCollectorConfig
|
config *NodeCollectorConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
@ -47,7 +47,7 @@ type VmStatConfig struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewvmStatCollector returns a new Collector exposing vmstat stats.
|
// NewvmStatCollector returns a new Collector exposing vmstat stats.
|
||||||
func NewvmStatCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewvmStatCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
pattern := regexp.MustCompile(*config.VmStat.Fields)
|
pattern := regexp.MustCompile(*config.VmStat.Fields)
|
||||||
return &vmStatCollector{
|
return &vmStatCollector{
|
||||||
fieldPattern: pattern,
|
fieldPattern: pattern,
|
||||||
|
|
|
@ -45,7 +45,7 @@ type wifiCollector struct {
|
||||||
stationBeaconLossTotal *prometheus.Desc
|
stationBeaconLossTotal *prometheus.Desc
|
||||||
|
|
||||||
logger log.Logger
|
logger log.Logger
|
||||||
config NodeCollectorConfig
|
config *NodeCollectorConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
@ -67,7 +67,7 @@ type wifiStater interface {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewWifiCollector returns a new Collector exposing Wifi statistics.
|
// NewWifiCollector returns a new Collector exposing Wifi statistics.
|
||||||
func NewWifiCollector(config NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
func NewWifiCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
|
||||||
const (
|
const (
|
||||||
subsystem = "wifi"
|
subsystem = "wifi"
|
||||||
)
|
)
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue