collector

package
v1.9.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 21, 2025 License: Apache-2.0 Imports: 58 Imported by: 0

Documentation

Overview

Package collector includes all individual collectors to gather and export system metrics.

Index

Constants

This section is empty.

Variables

View Source
var ErrNoData = errors.New("collector returned no data")

ErrNoData indicates the collector found no data to collect, but had no other error.

Functions

func DisableDefaultCollectors

func DisableDefaultCollectors()

DisableDefaultCollectors sets the collector state to false for all collectors which have not been explicitly enabled on the command line.

func IsNoDataError

func IsNoDataError(err error) bool

func SanitizeMetricName

func SanitizeMetricName(metricName string) string

SanitizeMetricName sanitize the given metric name by replacing invalid characters by underscores.

OpenMetrics and the Prometheus exposition format require the metric name to consist only of alphanumericals and "_", ":" and they must not start with digits. Since colons in MetricFamily are reserved to signal that the MetricFamily is the result of a calculation or aggregation of a general purpose monitoring system, colons will be replaced as well.

Note: If not subsequently prepending a namespace and/or subsystem (e.g., with prometheus.BuildFQName), the caller must ensure that the supplied metricName does not begin with a digit.

Types

type Collector

type Collector interface {
	// Get new metrics and expose them via prometheus registry.
	Update(ch chan<- prometheus.Metric) error
}

Collector is the interface a collector has to implement.

func NewARPCollector

func NewARPCollector(logger *slog.Logger) (Collector, error)

NewARPCollector returns a new Collector exposing ARP stats.

func NewBcacheCollector

func NewBcacheCollector(logger *slog.Logger) (Collector, error)

NewBcacheCollector returns a newly allocated bcacheCollector. It exposes a number of Linux bcache statistics.

func NewBondingCollector

func NewBondingCollector(logger *slog.Logger) (Collector, error)

NewBondingCollector returns a newly allocated bondingCollector. It exposes the number of configured and active slave of linux bonding interfaces.

func NewBtrfsCollector

func NewBtrfsCollector(logger *slog.Logger) (Collector, error)

NewBtrfsCollector returns a new Collector exposing Btrfs statistics.

func NewBuddyinfoCollector

func NewBuddyinfoCollector(logger *slog.Logger) (Collector, error)

NewBuddyinfoCollector returns a new Collector exposing buddyinfo stats.

func NewCPUCollector

func NewCPUCollector(logger *slog.Logger) (Collector, error)

NewCPUCollector returns a new Collector exposing kernel/system statistics.

func NewCPUFreqCollector

func NewCPUFreqCollector(logger *slog.Logger) (Collector, error)

NewCPUFreqCollector returns a new Collector exposing kernel/system statistics.

func NewCgroupSummaryCollector

func NewCgroupSummaryCollector(logger *slog.Logger) (Collector, error)

NewCgroupSummaryCollector returns a new Collector exposing a summary of cgroups.

func NewConntrackCollector

func NewConntrackCollector(logger *slog.Logger) (Collector, error)

NewConntrackCollector returns a new Collector exposing conntrack stats.

func NewDMICollector

func NewDMICollector(logger *slog.Logger) (Collector, error)

NewDMICollector returns a new Collector exposing DMI information.

func NewDiskstatsCollector

func NewDiskstatsCollector(logger *slog.Logger) (Collector, error)

NewDiskstatsCollector returns a new Collector exposing disk device stats. Docs from https://www.kernel.org/doc/Documentation/iostats.txt

func NewDrmCollector

func NewDrmCollector(logger *slog.Logger) (Collector, error)

NewDrmCollector returns a new Collector exposing /sys/class/drm/card?/device stats.

func NewEdacCollector

func NewEdacCollector(logger *slog.Logger) (Collector, error)

NewEdacCollector returns a new Collector exposing edac stats.

func NewEntropyCollector

func NewEntropyCollector(logger *slog.Logger) (Collector, error)

NewEntropyCollector returns a new Collector exposing entropy stats.

func NewEthtoolCollector

func NewEthtoolCollector(logger *slog.Logger) (Collector, error)

NewEthtoolCollector returns a new Collector exposing ethtool stats.

func NewFibreChannelCollector

func NewFibreChannelCollector(logger *slog.Logger) (Collector, error)

NewFibreChannelCollector returns a new Collector exposing FibreChannel stats.

func NewFileFDStatCollector

func NewFileFDStatCollector(logger *slog.Logger) (Collector, error)

NewFileFDStatCollector returns a new Collector exposing file-nr stats.

func NewFilesystemCollector

func NewFilesystemCollector(logger *slog.Logger) (Collector, error)

NewFilesystemCollector returns a new Collector exposing filesystems stats.

func NewHwMonCollector

func NewHwMonCollector(logger *slog.Logger) (Collector, error)

NewHwMonCollector returns a new Collector exposing /sys/class/hwmon stats (similar to lm-sensors).

func NewIPVSCollector

func NewIPVSCollector(logger *slog.Logger) (Collector, error)

NewIPVSCollector sets up a new collector for IPVS metrics. It accepts the "procfs" config parameter to override the default proc location (/proc).

func NewInfiniBandCollector

func NewInfiniBandCollector(logger *slog.Logger) (Collector, error)

NewInfiniBandCollector returns a new Collector exposing InfiniBand stats.

func NewInterruptsCollector

func NewInterruptsCollector(logger *slog.Logger) (Collector, error)

NewInterruptsCollector returns a new Collector exposing interrupts stats.

func NewKsmdCollector

func NewKsmdCollector(logger *slog.Logger) (Collector, error)

NewKsmdCollector returns a new Collector exposing kernel/system statistics.

func NewLnstatCollector

func NewLnstatCollector(logger *slog.Logger) (Collector, error)

func NewLoadavgCollector

func NewLoadavgCollector(logger *slog.Logger) (Collector, error)

NewLoadavgCollector returns a new Collector exposing load average stats.

func NewLogindCollector

func NewLogindCollector(logger *slog.Logger) (Collector, error)

NewLogindCollector returns a new Collector exposing logind statistics.

func NewMdadmCollector

func NewMdadmCollector(logger *slog.Logger) (Collector, error)

NewMdadmCollector returns a new Collector exposing raid statistics.

func NewMeminfoCollector

func NewMeminfoCollector(logger *slog.Logger) (Collector, error)

NewMeminfoCollector returns a new Collector exposing memory stats.

func NewMeminfoNumaCollector

func NewMeminfoNumaCollector(logger *slog.Logger) (Collector, error)

NewMeminfoNumaCollector returns a new Collector exposing memory stats.

func NewMountStatsCollector

func NewMountStatsCollector(logger *slog.Logger) (Collector, error)

NewMountStatsCollector returns a new Collector exposing NFS statistics.

func NewNFSdCollector

func NewNFSdCollector(logger *slog.Logger) (Collector, error)

NewNFSdCollector returns a new Collector exposing /proc/net/rpc/nfsd statistics.

func NewNVMeCollector

func NewNVMeCollector(logger *slog.Logger) (Collector, error)

NewNVMeCollector returns a new Collector exposing NVMe stats.

func NewNetClassCollector

func NewNetClassCollector(logger *slog.Logger) (Collector, error)

NewNetClassCollector returns a new Collector exposing network class stats.

func NewNetDevCollector

func NewNetDevCollector(logger *slog.Logger) (Collector, error)

NewNetDevCollector returns a new Collector exposing network device stats.

func NewNetStatCollector

func NewNetStatCollector(logger *slog.Logger) (Collector, error)

NewNetStatCollector takes and returns a new Collector exposing network stats.

func NewNetworkRouteCollector

func NewNetworkRouteCollector(logger *slog.Logger) (Collector, error)

NewNetworkRouteCollector returns a new Collector exposing systemd statistics.

func NewNfsCollector

func NewNfsCollector(logger *slog.Logger) (Collector, error)

NewNfsCollector returns a new Collector exposing NFS statistics.

func NewNtpCollector

func NewNtpCollector(logger *slog.Logger) (Collector, error)

NewNtpCollector returns a new Collector exposing sanity of local NTP server. Default definition of "local" is: - 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

func NewOSCollector

func NewOSCollector(logger *slog.Logger) (Collector, error)

NewOSCollector returns a new Collector exposing os-release information.

func NewPerfCollector

func NewPerfCollector(logger *slog.Logger) (Collector, error)

NewPerfCollector returns a new perf based collector, it creates a profiler per CPU.

func NewPowerSupplyClassCollector

func NewPowerSupplyClassCollector(logger *slog.Logger) (Collector, error)

func NewPressureStatsCollector

func NewPressureStatsCollector(logger *slog.Logger) (Collector, error)

NewPressureStatsCollector returns a Collector exposing pressure stall information

func NewProcessStatCollector

func NewProcessStatCollector(logger *slog.Logger) (Collector, error)

NewProcessStatCollector returns a new Collector exposing process data read from the proc filesystem.

func NewQdiscStatCollector

func NewQdiscStatCollector(logger *slog.Logger) (Collector, error)

NewQdiscStatCollector returns a new Collector exposing queuing discipline statistics.

func NewRaplCollector

func NewRaplCollector(logger *slog.Logger) (Collector, error)

NewRaplCollector returns a new Collector exposing RAPL metrics.

func NewRunitCollector

func NewRunitCollector(logger *slog.Logger) (Collector, error)

NewRunitCollector returns a new Collector exposing runit statistics.

func NewSchedstatCollector

func NewSchedstatCollector(logger *slog.Logger) (Collector, error)

NewSchedstatCollector returns a new Collector exposing task scheduler statistics

func NewSelinuxCollector

func NewSelinuxCollector(logger *slog.Logger) (Collector, error)

NewSelinuxCollector returns a new Collector exposing SELinux statistics.

func NewSlabinfoCollector

func NewSlabinfoCollector(logger *slog.Logger) (Collector, error)

func NewSockStatCollector

func NewSockStatCollector(logger *slog.Logger) (Collector, error)

NewSockStatCollector returns a new Collector exposing socket stats.

func NewSoftirqsCollector

func NewSoftirqsCollector(logger *slog.Logger) (Collector, error)

NewSoftirqsCollector returns a new Collector exposing softirq stats.

func NewSoftnetCollector

func NewSoftnetCollector(logger *slog.Logger) (Collector, error)

NewSoftnetCollector returns a new Collector exposing softnet metrics.

func NewStatCollector

func NewStatCollector(logger *slog.Logger) (Collector, error)

NewStatCollector returns a new Collector exposing kernel/system statistics.

func NewSupervisordCollector

func NewSupervisordCollector(logger *slog.Logger) (Collector, error)

NewSupervisordCollector returns a new Collector exposing supervisord statistics.

func NewSysctlCollector

func NewSysctlCollector(logger *slog.Logger) (Collector, error)

func NewSystemdCollector

func NewSystemdCollector(logger *slog.Logger) (Collector, error)

NewSystemdCollector returns a new Collector exposing systemd statistics.

func NewTCPStatCollector

func NewTCPStatCollector(logger *slog.Logger) (Collector, error)

NewTCPStatCollector returns a new Collector exposing network stats.

func NewTapestatsCollector

func NewTapestatsCollector(logger *slog.Logger) (Collector, error)

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

func NewTextFileCollector

func NewTextFileCollector(logger *slog.Logger) (Collector, error)

NewTextFileCollector returns a new Collector exposing metrics read from files in the given textfile directory.

func NewThermalZoneCollector

func NewThermalZoneCollector(logger *slog.Logger) (Collector, error)

NewThermalZoneCollector returns a new Collector exposing kernel/system statistics.

func NewTimeCollector

func NewTimeCollector(logger *slog.Logger) (Collector, error)

NewTimeCollector returns a new Collector exposing the current system time in seconds since epoch.

func NewTimexCollector

func NewTimexCollector(logger *slog.Logger) (Collector, error)

NewTimexCollector returns a new Collector exposing adjtime(3) stats.

func NewUDPqueuesCollector

func NewUDPqueuesCollector(logger *slog.Logger) (Collector, error)

NewUDPqueuesCollector returns a new Collector exposing network udp queued bytes.

func NewUnameCollector

func NewUnameCollector(logger *slog.Logger) (Collector, error)

NewUnameCollector returns new unameCollector.

func NewVulnerabilitySysfsCollector

func NewVulnerabilitySysfsCollector(logger *slog.Logger) (Collector, error)

func NewWatchdogCollector

func NewWatchdogCollector(logger *slog.Logger) (Collector, error)

NewWatchdogCollector returns a new Collector exposing watchdog stats.

func NewWifiCollector

func NewWifiCollector(logger *slog.Logger) (Collector, error)

NewWifiCollector returns a new Collector exposing Wifi statistics.

func NewXFSCollector

func NewXFSCollector(logger *slog.Logger) (Collector, error)

NewXFSCollector returns a new Collector exposing XFS statistics.

func NewXfrmCollector

func NewXfrmCollector(logger *slog.Logger) (Collector, error)

NewXfrmCollector returns a new Collector exposing XFRM stats.

func NewZFSCollector

func NewZFSCollector(logger *slog.Logger) (Collector, error)

NewZFSCollector returns a new Collector exposing ZFS statistics.

func NewZoneinfoCollector

func NewZoneinfoCollector(logger *slog.Logger) (Collector, error)

NewZoneinfoCollector returns a new Collector exposing zone stats.

func NewvmStatCollector

func NewvmStatCollector(logger *slog.Logger) (Collector, error)

NewvmStatCollector returns a new Collector exposing vmstat stats.

type Dict

type Dict struct {
	Key    []string `xml:"key"`
	String []string `xml:"string"`
}

type Ethtool

type Ethtool interface {
	DriverInfo(string) (ethtool.DrvInfo, error)
	Stats(string) (map[string]uint64, error)
	LinkInfo(string) (ethtool.EthtoolCmd, error)
}

type InetDiagMsg

type InetDiagMsg struct {
	Family  uint8
	State   uint8
	Timer   uint8
	Retrans uint8
	ID      InetDiagSockID
	Expires uint32
	RQueue  uint32
	WQueue  uint32
	UID     uint32
	Inode   uint32
}

type InetDiagReqV2

type InetDiagReqV2 struct {
	Family   uint8
	Protocol uint8
	Ext      uint8
	Pad      uint8
	States   uint32
	ID       InetDiagSockID
}

InetDiagReqV2 (inet_diag_req_v2) is used to request diagnostic data. https://github.com/torvalds/linux/blob/v4.0/include/uapi/linux/inet_diag.h#L37

func (*InetDiagReqV2) Len

func (req *InetDiagReqV2) Len() int

func (*InetDiagReqV2) Serialize

func (req *InetDiagReqV2) Serialize() []byte

type InetDiagSockID

type InetDiagSockID struct {
	SourcePort [2]byte
	DestPort   [2]byte
	SourceIP   [4][4]byte
	DestIP     [4][4]byte
	Interface  uint32
	Cookie     [2]uint32
}

InetDiagSockID (inet_diag_sockid) contains the socket identity. https://github.com/torvalds/linux/blob/v4.0/include/uapi/linux/inet_diag.h#L13

type NodeCollector

type NodeCollector struct {
	Collectors map[string]Collector
	// contains filtered or unexported fields
}

NodeCollector implements the prometheus.Collector interface.

func NewNodeCollector

func NewNodeCollector(logger *slog.Logger, filters ...string) (*NodeCollector, error)

NewNodeCollector creates a new NodeCollector.

func (NodeCollector) Collect

func (n NodeCollector) Collect(ch chan<- prometheus.Metric)

Collect implements the prometheus.Collector interface.

func (NodeCollector) Describe

func (n NodeCollector) Describe(ch chan<- *prometheus.Desc)

Describe implements the prometheus.Collector interface.

type Plist

type Plist struct {
	Dict Dict `xml:"dict"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL