 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
      Index ¶
Constants ¶
const ( CollectorARP = "arp" CollectorBCache = "bcache" CollectorBTRFS = "btrfs" CollectorBonding = "bonding" CollectorBootTime = "boottime" CollectorBuddyInfo = "buddyinfo" CollectorCPU = "cpu" CollectorCPUFreq = "cpufreq" CollectorConntrack = "conntrack" CollectorDMI = "dmi" CollectorDRBD = "drbd" CollectorDRM = "drm" CollectorDevstat = "devstat" CollectorDiskstats = "diskstats" CollectorEDAC = "edac" CollectorEntropy = "entropy" CollectorEthtool = "ethtool" CollectorExec = "exec" CollectorFibrechannel = "fibrechannel" CollectorFileFD = "filefd" CollectorFilesystem = "filesystem" CollectorHWMon = "hwmon" CollectorIPVS = "ipvs" CollectorInfiniband = "infiniband" CollectorInterrupts = "interrupts" CollectorKSMD = "ksmd" CollectorLnstat = "lnstat" CollectorLoadAvg = "loadavg" CollectorLogind = "logind" CollectorMDADM = "mdadm" CollectorMeminfo = "meminfo" CollectorMeminfoNuma = "meminfo_numa" CollectorMountstats = "mountstats" CollectorNFS = "nfs" CollectorNFSD = "nfsd" CollectorNTP = "ntp" CollectorNVME = "nvme" CollectorNetclass = "netclass" CollectorNetdev = "netdev" CollectorNetisr = "netisr" CollectorNetstat = "netstat" CollectorNetworkRoute = "network_route" CollectorOS = "os" CollectorPerf = "perf" CollectorPowersuppply = "powersupplyclass" CollectorPressure = "pressure" CollectorProcesses = "processes" CollectorQDisc = "qdisc" CollectorRAPL = "rapl" CollectorRunit = "runit" CollectorSchedstat = "schedstat" CollectorSockstat = "sockstat" CollectorSoftirqs = "softirqs" CollectorSoftnet = "softnet" CollectorStat = "stat" CollectorSupervisord = "supervisord" CollectorSystemd = "systemd" CollectorTCPStat = "tcpstat" CollectorTapestats = "tapestats" CollectorTextfile = "textfile" CollectorThermal = "thermal" CollectorThermalzone = "thermal_zone" CollectorTime = "time" CollectorTimex = "timex" CollectorUDPQueues = "udp_queues" CollectorUname = "uname" CollectorVMStat = "vmstat" CollectorWiFi = "wifi" CollectorXFS = "xfs" CollectorZFS = "zfs" CollectorZoneinfo = "zoneinfo" CollectorCGroups = "cgroups" CollectorSELinux = "selinux" CollectorSlabInfo = "slabinfo" CollectorSysctl = "sysctl" )
Collection of collectors defined by node_exporter
Variables ¶
var Collectors = map[string]CollectorState{ CollectorARP: CollectorStateEnabled, CollectorBCache: CollectorStateEnabled, CollectorBTRFS: CollectorStateEnabled, CollectorBonding: CollectorStateEnabled, CollectorBootTime: CollectorStateEnabled, CollectorBuddyInfo: CollectorStateDisabled, CollectorCGroups: CollectorStateDisabled, CollectorCPU: CollectorStateEnabled, CollectorCPUFreq: CollectorStateEnabled, CollectorConntrack: CollectorStateEnabled, CollectorDMI: CollectorStateEnabled, CollectorDRBD: CollectorStateDisabled, CollectorDRM: CollectorStateDisabled, CollectorDevstat: CollectorStateDisabled, CollectorDiskstats: CollectorStateEnabled, CollectorEDAC: CollectorStateEnabled, CollectorEntropy: CollectorStateEnabled, CollectorEthtool: CollectorStateDisabled, CollectorExec: CollectorStateEnabled, CollectorFibrechannel: CollectorStateEnabled, CollectorFileFD: CollectorStateEnabled, CollectorFilesystem: CollectorStateEnabled, CollectorHWMon: CollectorStateEnabled, CollectorIPVS: CollectorStateEnabled, CollectorInfiniband: CollectorStateEnabled, CollectorInterrupts: CollectorStateDisabled, CollectorKSMD: CollectorStateDisabled, CollectorLnstat: CollectorStateDisabled, CollectorLoadAvg: CollectorStateEnabled, CollectorLogind: CollectorStateDisabled, CollectorMDADM: CollectorStateEnabled, CollectorMeminfo: CollectorStateEnabled, CollectorMeminfoNuma: CollectorStateDisabled, CollectorMountstats: CollectorStateDisabled, CollectorNFS: CollectorStateEnabled, CollectorNFSD: CollectorStateEnabled, CollectorNTP: CollectorStateDisabled, CollectorNVME: CollectorStateEnabled, CollectorNetclass: CollectorStateEnabled, CollectorNetdev: CollectorStateEnabled, CollectorNetisr: CollectorStateEnabled, CollectorNetstat: CollectorStateEnabled, CollectorNetworkRoute: CollectorStateDisabled, CollectorOS: CollectorStateEnabled, CollectorPerf: CollectorStateDisabled, CollectorPowersuppply: CollectorStateEnabled, CollectorPressure: CollectorStateEnabled, CollectorProcesses: CollectorStateDisabled, CollectorQDisc: CollectorStateDisabled, CollectorRAPL: CollectorStateEnabled, CollectorRunit: CollectorStateDisabled, CollectorSchedstat: CollectorStateEnabled, CollectorSELinux: CollectorStateEnabled, CollectorSlabInfo: CollectorStateDisabled, CollectorSockstat: CollectorStateEnabled, CollectorSoftirqs: CollectorStateDisabled, CollectorSoftnet: CollectorStateEnabled, CollectorStat: CollectorStateEnabled, CollectorSupervisord: CollectorStateDisabled, CollectorSysctl: CollectorStateDisabled, CollectorSystemd: CollectorStateDisabled, CollectorTCPStat: CollectorStateDisabled, CollectorTapestats: CollectorStateEnabled, CollectorTextfile: CollectorStateEnabled, CollectorThermal: CollectorStateEnabled, CollectorThermalzone: CollectorStateEnabled, CollectorTime: CollectorStateEnabled, CollectorTimex: CollectorStateEnabled, CollectorUDPQueues: CollectorStateEnabled, CollectorUname: CollectorStateEnabled, CollectorVMStat: CollectorStateEnabled, CollectorWiFi: CollectorStateDisabled, CollectorXFS: CollectorStateEnabled, CollectorZFS: CollectorStateEnabled, CollectorZoneinfo: CollectorStateDisabled, }
Collectors holds a map of known collector names to their default state.
var ( // DefaultConfig holds non-zero default options for the Config when it is // unmarshaled from YAML. // // DefaultConfig's defaults are populated from init functions in this package. // See the init function here and in node_exporter_linux.go. DefaultConfig = Config{ ProcFSPath: procfs.DefaultMountPoint, RootFSPath: "/", UdevDataPath: "/run/udev/data", DiskStatsDeviceExclude: "^(ram|loop|fd|(h|s|v|xv)d[a-z]|nvme\\d+n\\d+p)\\d+$", EthtoolMetricsInclude: ".*", FilesystemMountTimeout: 5 * time.Second, NTPIPTTL: 1, NTPLocalOffsetTolerance: time.Millisecond, NTPMaxDistance: time.Microsecond * 3466080, NTPProtocolVersion: 4, NTPServer: "127.0.0.1", NetclassIgnoredDevices: "^$", NetstatFields: "^(.*_(InErrors|InErrs)|Ip_Forwarding|Ip(6|Ext)_(InOctets|OutOctets)|Icmp6?_(InMsgs|OutMsgs)|TcpExt_(Listen.*|Syncookies.*|TCPSynRetrans|TCPTimeouts)|Tcp_(ActiveOpens|InSegs|OutSegs|OutRsts|PassiveOpens|RetransSegs|CurrEstab)|Udp6?_(InDatagrams|OutDatagrams|NoPorts|RcvbufErrors|SndbufErrors))$", PowersupplyIgnoredSupplies: "^$", RunitServiceDir: "/etc/service", SupervisordURL: "http://localhost:9001/RPC2", SystemdUnitExclude: ".+\\.(automount|device|mount|scope|slice)", SystemdUnitInclude: ".+", TapestatsIgnoredDevices: "^$", VMStatFields: "^(oom_kill|pgpg|pswp|pg.*fault).*", } )
Functions ¶
func DisableUnavailableCollectors ¶
func DisableUnavailableCollectors(cs map[string]CollectorState)
DisableUnavailableCollectors disables collectors that are not available on the host machine.
func MapCollectorsToFlags ¶
func MapCollectorsToFlags(cs map[string]CollectorState) (flags []string)
MapCollectorsToFlags takes in a map of collector keys and their states and converts them into flags that node_exporter expects. Collectors that are not defined will be ignored, which will be the case for collectors that are not supported on the host system.
Types ¶
type CollectorState ¶
type CollectorState bool
CollectorState represents the default state of the collector, where it can either be enabled or disabled
const ( // CollectorStateDisabled represents a disabled collector that will not run // and collect metrics. CollectorStateDisabled CollectorState = false // CollectorStateEnabled represents an enabled collector that _will_ run // and collect metrics. CollectorStateEnabled CollectorState = true )
type Config ¶
type Config struct {
	IncludeExporterMetrics bool `yaml:"include_exporter_metrics,omitempty"`
	ProcFSPath   string `yaml:"procfs_path,omitempty"`
	SysFSPath    string `yaml:"sysfs_path,omitempty"`
	RootFSPath   string `yaml:"rootfs_path,omitempty"`
	UdevDataPath string `yaml:"udev_data_path,omitempty"`
	// Collectors to mark as enabled
	EnableCollectors flagext.StringSlice `yaml:"enable_collectors,omitempty"`
	// Collectors to mark as disabled
	DisableCollectors flagext.StringSlice `yaml:"disable_collectors,omitempty"`
	// Overrides the default set of enabled collectors with the collectors
	// listed.
	SetCollectors flagext.StringSlice `yaml:"set_collectors,omitempty"`
	// Collector-specific config options
	BcachePriorityStats              bool                `yaml:"enable_bcache_priority_stats,omitempty"`
	CPUBugsInclude                   string              `yaml:"cpu_bugs_include,omitempty"`
	CPUEnableCPUGuest                bool                `yaml:"enable_cpu_guest_seconds_metric,omitempty"`
	CPUEnableCPUInfo                 bool                `yaml:"enable_cpu_info_metric,omitempty"`
	CPUFlagsInclude                  string              `yaml:"cpu_flags_include,omitempty"`
	DiskStatsDeviceExclude           string              `yaml:"diskstats_device_exclude,omitempty"`
	DiskStatsDeviceInclude           string              `yaml:"diskstats_device_include,omitempty"`
	EthtoolDeviceExclude             string              `yaml:"ethtool_device_exclude,omitempty"`
	EthtoolDeviceInclude             string              `yaml:"ethtool_device_include,omitempty"`
	EthtoolMetricsInclude            string              `yaml:"ethtool_metrics_include,omitempty"`
	FilesystemFSTypesExclude         string              `yaml:"filesystem_fs_types_exclude,omitempty"`
	FilesystemMountPointsExclude     string              `yaml:"filesystem_mount_points_exclude,omitempty"`
	FilesystemMountTimeout           time.Duration       `yaml:"filesystem_mount_timeout,omitempty"`
	HwMonChipInclude                 string              `yaml:"hwmon_chip_include,omitempty"`
	HwMonChipExclude                 string              `yaml:"hwmon_chip_exclude,omitempty"`
	IPVSBackendLabels                []string            `yaml:"ipvs_backend_labels,omitempty"`
	NTPIPTTL                         int                 `yaml:"ntp_ip_ttl,omitempty"`
	NTPLocalOffsetTolerance          time.Duration       `yaml:"ntp_local_offset_tolerance,omitempty"`
	NTPMaxDistance                   time.Duration       `yaml:"ntp_max_distance,omitempty"`
	NTPProtocolVersion               int                 `yaml:"ntp_protocol_version,omitempty"`
	NTPServer                        string              `yaml:"ntp_server,omitempty"`
	NTPServerIsLocal                 bool                `yaml:"ntp_server_is_local,omitempty"`
	NetclassIgnoreInvalidSpeedDevice bool                `yaml:"netclass_ignore_invalid_speed_device,omitempty"`
	NetclassIgnoredDevices           string              `yaml:"netclass_ignored_devices,omitempty"`
	NetdevAddressInfo                bool                `yaml:"netdev_address_info,omitempty"`
	NetdevDeviceExclude              string              `yaml:"netdev_device_exclude,omitempty"`
	NetdevDeviceInclude              string              `yaml:"netdev_device_include,omitempty"`
	NetstatFields                    string              `yaml:"netstat_fields,omitempty"`
	PerfCPUS                         string              `yaml:"perf_cpus,omitempty"`
	PerfTracepoint                   flagext.StringSlice `yaml:"perf_tracepoint,omitempty"`
	PerfDisableHardwareProfilers     bool                `yaml:"perf_disable_hardware_profilers,omitempty"`
	PerfDisableSoftwareProfilers     bool                `yaml:"perf_disable_software_profilers,omitempty"`
	PerfDisableCacheProfilers        bool                `yaml:"perf_disable_cache_profilers,omitempty"`
	PerfHardwareProfilers            flagext.StringSlice `yaml:"perf_hardware_profilers,omitempty"`
	PerfSoftwareProfilers            flagext.StringSlice `yaml:"perf_software_profilers,omitempty"`
	PerfCacheProfilers               flagext.StringSlice `yaml:"perf_cache_profilers,omitempty"`
	PowersupplyIgnoredSupplies       string              `yaml:"powersupply_ignored_supplies,omitempty"`
	RunitServiceDir                  string              `yaml:"runit_service_dir,omitempty"`
	SupervisordURL                   string              `yaml:"supervisord_url,omitempty"`
	SysctlInclude                    flagext.StringSlice `yaml:"sysctl_include,omitempty"`
	SysctlIncludeInfo                flagext.StringSlice `yaml:"sysctl_include_info,omitempty"`
	SystemdEnableRestartsMetrics     bool                `yaml:"systemd_enable_restarts_metrics,omitempty"`
	SystemdEnableStartTimeMetrics    bool                `yaml:"systemd_enable_start_time_metrics,omitempty"`
	SystemdEnableTaskMetrics         bool                `yaml:"systemd_enable_task_metrics,omitempty"`
	SystemdUnitExclude               string              `yaml:"systemd_unit_exclude,omitempty"`
	SystemdUnitInclude               string              `yaml:"systemd_unit_include,omitempty"`
	TapestatsIgnoredDevices          string              `yaml:"tapestats_ignored_devices,omitempty"`
	TextfileDirectory                string              `yaml:"textfile_directory,omitempty"`
	VMStatFields                     string              `yaml:"vmstat_fields,omitempty"`
	UnmarshalWarnings []string `yaml:"-"`
}
    Config controls the node_exporter integration.
func (*Config) InstanceKey ¶
InstanceKey returns the hostname:port of the agent process.
func (*Config) NewIntegration ¶
func (c *Config) NewIntegration(l log.Logger) (integrations.Integration, error)
NewIntegration converts this config into an instance of an integration.
func (*Config) UnmarshalYAML ¶
UnmarshalYAML implements yaml.Unmarshaler for Config.
type Integration ¶
type Integration struct {
	// contains filtered or unexported fields
}
    Integration is the node_exporter integration. The integration scrapes metrics from the host Linux-based system.
func New ¶
func New(log log.Logger, c *Config) (*Integration, error)
New creates a new node_exporter integration.
func (*Integration) MetricsHandler ¶
func (i *Integration) MetricsHandler() (http.Handler, error)
MetricsHandler implements Integration.
func (*Integration) Run ¶
func (i *Integration) Run(ctx context.Context) error
Run satisfies Integration.Run.
func (*Integration) ScrapeConfigs ¶
func (i *Integration) ScrapeConfigs() []config.ScrapeConfig
ScrapeConfigs satisfies Integration.ScrapeConfigs.