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.