Documentation
¶
Overview ¶
Package collector includes all individual collectors to gather and export system metrics.
Index ¶
- Variables
- func DisableDefaultCollectors()
- func IsNoDataError(err error) bool
- func SanitizeMetricName(metricName string) string
- type Collector
- func NewARPCollector(logger *slog.Logger) (Collector, error)
- func NewBcacheCollector(logger *slog.Logger) (Collector, error)
- func NewBondingCollector(logger *slog.Logger) (Collector, error)
- func NewBtrfsCollector(logger *slog.Logger) (Collector, error)
- func NewBuddyinfoCollector(logger *slog.Logger) (Collector, error)
- func NewCPUCollector(logger *slog.Logger) (Collector, error)
- func NewCPUFreqCollector(logger *slog.Logger) (Collector, error)
- func NewCgroupSummaryCollector(logger *slog.Logger) (Collector, error)
- func NewConntrackCollector(logger *slog.Logger) (Collector, error)
- func NewDMICollector(logger *slog.Logger) (Collector, error)
- func NewDiskstatsCollector(logger *slog.Logger) (Collector, error)
- func NewDrmCollector(logger *slog.Logger) (Collector, error)
- func NewEdacCollector(logger *slog.Logger) (Collector, error)
- func NewEntropyCollector(logger *slog.Logger) (Collector, error)
- func NewEthtoolCollector(logger *slog.Logger) (Collector, error)
- func NewFibreChannelCollector(logger *slog.Logger) (Collector, error)
- func NewFileFDStatCollector(logger *slog.Logger) (Collector, error)
- func NewFilesystemCollector(logger *slog.Logger) (Collector, error)
- func NewHwMonCollector(logger *slog.Logger) (Collector, error)
- func NewIPVSCollector(logger *slog.Logger) (Collector, error)
- func NewInfiniBandCollector(logger *slog.Logger) (Collector, error)
- func NewInterruptsCollector(logger *slog.Logger) (Collector, error)
- func NewKsmdCollector(logger *slog.Logger) (Collector, error)
- func NewLnstatCollector(logger *slog.Logger) (Collector, error)
- func NewLoadavgCollector(logger *slog.Logger) (Collector, error)
- func NewLogindCollector(logger *slog.Logger) (Collector, error)
- func NewMdadmCollector(logger *slog.Logger) (Collector, error)
- func NewMeminfoCollector(logger *slog.Logger) (Collector, error)
- func NewMeminfoNumaCollector(logger *slog.Logger) (Collector, error)
- func NewMountStatsCollector(logger *slog.Logger) (Collector, error)
- func NewNFSdCollector(logger *slog.Logger) (Collector, error)
- func NewNVMeCollector(logger *slog.Logger) (Collector, error)
- func NewNetClassCollector(logger *slog.Logger) (Collector, error)
- func NewNetDevCollector(logger *slog.Logger) (Collector, error)
- func NewNetStatCollector(logger *slog.Logger) (Collector, error)
- func NewNetworkRouteCollector(logger *slog.Logger) (Collector, error)
- func NewNfsCollector(logger *slog.Logger) (Collector, error)
- func NewNtpCollector(logger *slog.Logger) (Collector, error)
- func NewOSCollector(logger *slog.Logger) (Collector, error)
- func NewPcideviceCollector(logger *slog.Logger) (Collector, error)
- func NewPerfCollector(logger *slog.Logger) (Collector, error)
- func NewPowerSupplyClassCollector(logger *slog.Logger) (Collector, error)
- func NewPressureStatsCollector(logger *slog.Logger) (Collector, error)
- func NewProcessStatCollector(logger *slog.Logger) (Collector, error)
- func NewQdiscStatCollector(logger *slog.Logger) (Collector, error)
- func NewRaplCollector(logger *slog.Logger) (Collector, error)
- func NewRunitCollector(logger *slog.Logger) (Collector, error)
- func NewSchedstatCollector(logger *slog.Logger) (Collector, error)
- func NewSelinuxCollector(logger *slog.Logger) (Collector, error)
- func NewSlabinfoCollector(logger *slog.Logger) (Collector, error)
- func NewSockStatCollector(logger *slog.Logger) (Collector, error)
- func NewSoftirqsCollector(logger *slog.Logger) (Collector, error)
- func NewSoftnetCollector(logger *slog.Logger) (Collector, error)
- func NewStatCollector(logger *slog.Logger) (Collector, error)
- func NewSupervisordCollector(logger *slog.Logger) (Collector, error)
- func NewSwapCollector(logger *slog.Logger) (Collector, error)
- func NewSysctlCollector(logger *slog.Logger) (Collector, error)
- func NewSystemdCollector(logger *slog.Logger) (Collector, error)
- func NewTCPStatCollector(logger *slog.Logger) (Collector, error)
- func NewTapestatsCollector(logger *slog.Logger) (Collector, error)
- func NewTextFileCollector(logger *slog.Logger) (Collector, error)
- func NewThermalZoneCollector(logger *slog.Logger) (Collector, error)
- func NewTimeCollector(logger *slog.Logger) (Collector, error)
- func NewTimexCollector(logger *slog.Logger) (Collector, error)
- func NewUDPqueuesCollector(logger *slog.Logger) (Collector, error)
- func NewUnameCollector(logger *slog.Logger) (Collector, error)
- func NewVulnerabilitySysfsCollector(logger *slog.Logger) (Collector, error)
- func NewWatchdogCollector(logger *slog.Logger) (Collector, error)
- func NewWifiCollector(logger *slog.Logger) (Collector, error)
- func NewXFSCollector(logger *slog.Logger) (Collector, error)
- func NewXfrmCollector(logger *slog.Logger) (Collector, error)
- func NewZFSCollector(logger *slog.Logger) (Collector, error)
- func NewZoneinfoCollector(logger *slog.Logger) (Collector, error)
- func NewvmStatCollector(logger *slog.Logger) (Collector, error)
- type Dict
- type Ethtool
- type InetDiagMsg
- type InetDiagReqV2
- type InetDiagSockID
- type NodeCollector
- type Plist
- type SwapsEntry
Constants ¶
This section is empty.
Variables ¶
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 ¶ added in v1.0.0
func DisableDefaultCollectors()
DisableDefaultCollectors sets the collector state to false for all collectors which have not been explicitly enabled on the command line.
func IsNoDataError ¶ added in v1.0.0
func SanitizeMetricName ¶ added in v1.3.0
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 ¶ added in v0.15.0
NewARPCollector returns a new Collector exposing ARP stats.
func NewBcacheCollector ¶ added in v0.15.0
NewBcacheCollector returns a newly allocated bcacheCollector. It exposes a number of Linux bcache statistics.
func NewBondingCollector ¶
NewBondingCollector returns a newly allocated bondingCollector. It exposes the number of configured and active slave of linux bonding interfaces.
func NewBtrfsCollector ¶ added in v1.0.0
NewBtrfsCollector returns a new Collector exposing Btrfs statistics.
func NewBuddyinfoCollector ¶ added in v0.14.0
NewBuddyinfoCollector returns a new Collector exposing buddyinfo stats.
func NewCPUCollector ¶ added in v0.15.0
NewCPUCollector returns a new Collector exposing kernel/system statistics.
func NewCPUFreqCollector ¶ added in v0.18.0
NewCPUFreqCollector returns a new Collector exposing kernel/system statistics.
func NewCgroupSummaryCollector ¶ added in v1.5.0
NewCgroupSummaryCollector returns a new Collector exposing a summary of cgroups.
func NewConntrackCollector ¶
NewConntrackCollector returns a new Collector exposing conntrack stats.
func NewDMICollector ¶ added in v1.3.0
NewDMICollector returns a new Collector exposing DMI information.
func NewDiskstatsCollector ¶
NewDiskstatsCollector returns a new Collector exposing disk device stats. Docs from https://www.kernel.org/doc/Documentation/iostats.txt
func NewDrmCollector ¶ added in v1.3.0
NewDrmCollector returns a new Collector exposing /sys/class/drm/card?/device stats.
func NewEdacCollector ¶ added in v0.14.0
NewEdacCollector returns a new Collector exposing edac stats.
func NewEntropyCollector ¶
NewEntropyCollector returns a new Collector exposing entropy stats.
func NewEthtoolCollector ¶ added in v1.2.0
NewEthtoolCollector returns a new Collector exposing ethtool stats.
func NewFibreChannelCollector ¶ added in v1.1.0
NewFibreChannelCollector returns a new Collector exposing FibreChannel stats.
func NewFileFDStatCollector ¶
NewFileFDStatCollector returns a new Collector exposing file-nr stats.
func NewFilesystemCollector ¶
NewFilesystemCollector returns a new Collector exposing filesystems stats.
func NewHwMonCollector ¶
NewHwMonCollector returns a new Collector exposing /sys/class/hwmon stats (similar to lm-sensors).
func NewIPVSCollector ¶
NewIPVSCollector sets up a new collector for IPVS metrics. It accepts the "procfs" config parameter to override the default proc location (/proc).
func NewInfiniBandCollector ¶ added in v0.14.0
NewInfiniBandCollector returns a new Collector exposing InfiniBand stats.
func NewInterruptsCollector ¶
NewInterruptsCollector returns a new Collector exposing interrupts stats.
func NewKsmdCollector ¶
NewKsmdCollector returns a new Collector exposing kernel/system statistics.
func NewLnstatCollector ¶ added in v1.3.0
func NewLoadavgCollector ¶
NewLoadavgCollector returns a new Collector exposing load average stats.
func NewLogindCollector ¶
NewLogindCollector returns a new Collector exposing logind statistics.
func NewMdadmCollector ¶
NewMdadmCollector returns a new Collector exposing raid statistics.
func NewMeminfoCollector ¶
NewMeminfoCollector returns a new Collector exposing memory stats.
func NewMeminfoNumaCollector ¶
NewMeminfoNumaCollector returns a new Collector exposing memory stats.
func NewMountStatsCollector ¶ added in v0.14.0
NewMountStatsCollector returns a new Collector exposing NFS statistics.
func NewNFSdCollector ¶ added in v0.16.0
NewNFSdCollector returns a new Collector exposing /proc/net/rpc/nfsd statistics.
func NewNVMeCollector ¶ added in v1.2.0
NewNVMeCollector returns a new Collector exposing NVMe stats.
func NewNetClassCollector ¶ added in v0.17.0
NewNetClassCollector returns a new Collector exposing network class stats.
func NewNetDevCollector ¶
NewNetDevCollector returns a new Collector exposing network device stats.
func NewNetStatCollector ¶
NewNetStatCollector takes and returns a new Collector exposing network stats.
func NewNetworkRouteCollector ¶ added in v1.1.0
NewNetworkRouteCollector returns a new Collector exposing systemd statistics.
func NewNfsCollector ¶ added in v0.14.0
NewNfsCollector returns a new Collector exposing NFS statistics.
func NewNtpCollector ¶
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 outgoing IP_TTL = 1
func NewOSCollector ¶ added in v1.3.0
NewOSCollector returns a new Collector exposing os-release information.
func NewPcideviceCollector ¶ added in v1.10.0
NewPcideviceCollector returns a new Collector exposing PCI devices stats.
func NewPerfCollector ¶ added in v0.18.0
NewPerfCollector returns a new perf based collector, it creates a profiler per CPU.
func NewPowerSupplyClassCollector ¶ added in v1.0.0
func NewPressureStatsCollector ¶ added in v0.18.0
NewPressureStatsCollector returns a Collector exposing pressure stall information
func NewProcessStatCollector ¶ added in v0.17.0
NewProcessStatCollector returns a new Collector exposing process data read from the proc filesystem.
func NewQdiscStatCollector ¶ added in v0.15.0
NewQdiscStatCollector returns a new Collector exposing queuing discipline statistics.
func NewRaplCollector ¶ added in v1.0.0
NewRaplCollector returns a new Collector exposing RAPL metrics.
func NewRunitCollector ¶
NewRunitCollector returns a new Collector exposing runit statistics.
func NewSchedstatCollector ¶ added in v1.0.0
NewSchedstatCollector returns a new Collector exposing task scheduler statistics
func NewSelinuxCollector ¶ added in v1.5.0
NewSelinuxCollector returns a new Collector exposing SELinux statistics.
func NewSlabinfoCollector ¶ added in v1.5.0
func NewSockStatCollector ¶
NewSockStatCollector returns a new Collector exposing socket stats.
func NewSoftirqsCollector ¶ added in v1.6.0
NewSoftirqsCollector returns a new Collector exposing softirq stats.
func NewSoftnetCollector ¶ added in v1.0.0
NewSoftnetCollector returns a new Collector exposing softnet metrics.
func NewStatCollector ¶
NewStatCollector returns a new Collector exposing kernel/system statistics.
func NewSupervisordCollector ¶
NewSupervisordCollector returns a new Collector exposing supervisord statistics.
func NewSwapCollector ¶ added in v1.10.0
NewSwapCollector returns a new Collector exposing swap device statistics.
func NewSysctlCollector ¶ added in v1.5.0
func NewSystemdCollector ¶
NewSystemdCollector returns a new Collector exposing systemd statistics.
func NewTCPStatCollector ¶
NewTCPStatCollector returns a new Collector exposing network stats.
func NewTapestatsCollector ¶ added in v1.2.0
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 ¶
NewTextFileCollector returns a new Collector exposing metrics read from files in the given textfile directory.
func NewThermalZoneCollector ¶ added in v1.0.0
NewThermalZoneCollector returns a new Collector exposing kernel/system statistics.
func NewTimeCollector ¶
NewTimeCollector returns a new Collector exposing the current system time in seconds since epoch.
func NewTimexCollector ¶ added in v0.15.0
NewTimexCollector returns a new Collector exposing adjtime(3) stats.
func NewUDPqueuesCollector ¶ added in v1.0.0
NewUDPqueuesCollector returns a new Collector exposing network udp queued bytes.
func NewUnameCollector ¶ added in v1.9.0
NewUnameCollector returns new unameCollector.
func NewVulnerabilitySysfsCollector ¶ added in v1.7.0
func NewWatchdogCollector ¶ added in v1.8.0
NewWatchdogCollector returns a new Collector exposing watchdog stats.
func NewWifiCollector ¶ added in v0.14.0
NewWifiCollector returns a new Collector exposing Wifi statistics.
func NewXFSCollector ¶ added in v0.15.0
NewXFSCollector returns a new Collector exposing XFS statistics.
func NewXfrmCollector ¶ added in v1.8.0
NewXfrmCollector returns a new Collector exposing XFRM stats.
func NewZFSCollector ¶ added in v0.14.0
NewZFSCollector returns a new Collector exposing ZFS statistics.
func NewZoneinfoCollector ¶ added in v1.1.0
NewZoneinfoCollector returns a new Collector exposing zone stats.
type InetDiagMsg ¶ added in v1.5.0
type InetDiagReqV2 ¶ added in v1.5.0
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 ¶ added in v1.5.0
func (req *InetDiagReqV2) Len() int
func (*InetDiagReqV2) Serialize ¶ added in v1.5.0
func (req *InetDiagReqV2) Serialize() []byte
type InetDiagSockID ¶ added in v1.5.0
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 ¶ added in v0.18.0
type NodeCollector struct {
Collectors map[string]Collector
// contains filtered or unexported fields
}
NodeCollector implements the prometheus.Collector interface.
func NewNodeCollector ¶ added in v0.15.0
func NewNodeCollector(logger *slog.Logger, filters ...string) (*NodeCollector, error)
NewNodeCollector creates a new NodeCollector.
func (NodeCollector) Collect ¶ added in v0.18.0
func (n NodeCollector) Collect(ch chan<- prometheus.Metric)
Collect implements the prometheus.Collector interface.
func (NodeCollector) Describe ¶ added in v0.18.0
func (n NodeCollector) Describe(ch chan<- *prometheus.Desc)
Describe implements the prometheus.Collector interface.
Source Files
¶
- arp_linux.go
- bcache_linux.go
- bonding_linux.go
- btrfs_linux.go
- buddyinfo.go
- cgroups_linux.go
- collector.go
- conntrack_linux.go
- cpu_common.go
- cpu_linux.go
- cpu_vulnerabilities_linux.go
- cpufreq_common.go
- cpufreq_linux.go
- device_filter.go
- diskstats_common.go
- diskstats_linux.go
- dmi.go
- drbd_linux.go
- drm_linux.go
- edac_linux.go
- entropy_linux.go
- ethtool_linux.go
- fibrechannel_linux.go
- filefd_linux.go
- filesystem_common.go
- filesystem_linux.go
- helper.go
- hwmon_linux.go
- infiniband_linux.go
- interrupts_common.go
- interrupts_linux.go
- ipvs_linux.go
- ksmd_linux.go
- lnstat_linux.go
- loadavg.go
- loadavg_linux.go
- logind_linux.go
- mdadm_linux.go
- meminfo.go
- meminfo_linux.go
- meminfo_numa_linux.go
- mountstats_linux.go
- netclass_linux.go
- netclass_rtnl_linux.go
- netdev_common.go
- netdev_linux.go
- netstat_linux.go
- network_route_linux.go
- nfs_linux.go
- nfsd_linux.go
- ntp.go
- nvme_linux.go
- os_release.go
- paths.go
- pcidevice_linux.go
- perf_linux.go
- powersupplyclass.go
- powersupplyclass_linux.go
- pressure_linux.go
- processes_linux.go
- qdisc_linux.go
- rapl_linux.go
- runit.go
- schedstat_linux.go
- selinux_linux.go
- slabinfo_linux.go
- sockstat_linux.go
- softirqs_common.go
- softirqs_linux.go
- softnet_linux.go
- stat_linux.go
- supervisord.go
- swap_linux.go
- sysctl_linux.go
- systemd_linux.go
- tapestats_linux.go
- tcpstat_linux.go
- textfile.go
- thermal_zone_linux.go
- time.go
- time_linux.go
- timex.go
- udp_queues_linux.go
- uname.go
- uname_linux.go
- vmstat_linux.go
- watchdog.go
- wifi_linux.go
- xfrm.go
- xfs_linux.go
- zfs_common.go
- zfs_linux.go
- zoneinfo_linux.go