mirror of
				https://github.com/prometheus/node_exporter.git
				synced 2025-08-20 18:33:52 -07:00 
			
		
		
		
	
						commit
						a2321e7b94
					
				|  | @ -5,6 +5,14 @@ | ||||||
| * [ENHANCEMENT] | * [ENHANCEMENT] | ||||||
| * [BUGFIX] | * [BUGFIX] | ||||||
| 
 | 
 | ||||||
|  | * [ENHANCEMENT] Add node_softirqs_total metric #2221 | ||||||
|  | 
 | ||||||
|  | ## 1.3.1 / 2021-12-01 | ||||||
|  | 
 | ||||||
|  | * [BUGFIX] Handle nil CPU thermal power status on M1 #2218 | ||||||
|  | * [BUGFIX] bsd: Ignore filesystems flagged as MNT_IGNORE. #2227 | ||||||
|  | * [BUGFIX] Sanitize UTF-8 in dmi collector #2229 | ||||||
|  | 
 | ||||||
| ## 1.3.0 / 2021-10-20 | ## 1.3.0 / 2021-10-20 | ||||||
| 
 | 
 | ||||||
| NOTE: In order to support globs in the textfile collector path, filenames exposed by | NOTE: In order to support globs in the textfile collector path, filenames exposed by | ||||||
|  |  | ||||||
|  | @ -20,6 +20,7 @@ import ( | ||||||
| 	"errors" | 	"errors" | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"os" | 	"os" | ||||||
|  | 	"strings" | ||||||
| 
 | 
 | ||||||
| 	"github.com/go-kit/log" | 	"github.com/go-kit/log" | ||||||
| 	"github.com/go-kit/log/level" | 	"github.com/go-kit/log/level" | ||||||
|  | @ -78,7 +79,7 @@ func NewDMICollector(logger log.Logger) (Collector, error) { | ||||||
| 	} { | 	} { | ||||||
| 		if value != nil { | 		if value != nil { | ||||||
| 			labels = append(labels, label) | 			labels = append(labels, label) | ||||||
| 			values = append(values, *value) | 			values = append(values, strings.ToValidUTF8(*value, "<22>")) | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -24,18 +24,16 @@ import ( | ||||||
| const ( | const ( | ||||||
| 	defMountPointsExcluded = "^/(dev)($|/)" | 	defMountPointsExcluded = "^/(dev)($|/)" | ||||||
| 	defFSTypesExcluded     = "^devfs$" | 	defFSTypesExcluded     = "^devfs$" | ||||||
| 	readOnly               = 0x1 // MNT_RDONLY
 |  | ||||||
| 	noWait                 = 0x2 // MNT_NOWAIT
 |  | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| // Expose filesystem fullness.
 | // Expose filesystem fullness.
 | ||||||
| func (c *filesystemCollector) GetStats() ([]filesystemStats, error) { | func (c *filesystemCollector) GetStats() ([]filesystemStats, error) { | ||||||
| 	n, err := unix.Getfsstat(nil, noWait) | 	n, err := unix.Getfsstat(nil, unix.MNT_NOWAIT) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, err | 		return nil, err | ||||||
| 	} | 	} | ||||||
| 	buf := make([]unix.Statfs_t, n) | 	buf := make([]unix.Statfs_t, n) | ||||||
| 	_, err = unix.Getfsstat(buf, noWait) | 	_, err = unix.Getfsstat(buf, unix.MNT_NOWAIT) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, err | 		return nil, err | ||||||
| 	} | 	} | ||||||
|  | @ -54,8 +52,13 @@ func (c *filesystemCollector) GetStats() ([]filesystemStats, error) { | ||||||
| 			continue | 			continue | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
|  | 		if (fs.Flags & unix.MNT_IGNORE) != 0 { | ||||||
|  | 			level.Debug(c.logger).Log("msg", "Ignoring mount flagged as ignore", "mountpoint", mountpoint) | ||||||
|  | 			continue | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
| 		var ro float64 | 		var ro float64 | ||||||
| 		if (fs.Flags & readOnly) != 0 { | 		if (fs.Flags & unix.MNT_RDONLY) != 0 { | ||||||
| 			ro = 1 | 			ro = 1 | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -609,7 +609,7 @@ node_disk_written_bytes_total{device="sr0"} 0 | ||||||
| node_disk_written_bytes_total{device="vda"} 1.0938236928e+11 | node_disk_written_bytes_total{device="vda"} 1.0938236928e+11 | ||||||
| # HELP node_dmi_info A metric with a constant '1' value labeled by bios_date, bios_release, bios_vendor, bios_version, board_asset_tag, board_name, board_serial, board_vendor, board_version, chassis_asset_tag, chassis_serial, chassis_vendor, chassis_version, product_family, product_name, product_serial, product_sku, product_uuid, product_version, system_vendor if provided by DMI. | # HELP node_dmi_info A metric with a constant '1' value labeled by bios_date, bios_release, bios_vendor, bios_version, board_asset_tag, board_name, board_serial, board_vendor, board_version, chassis_asset_tag, chassis_serial, chassis_vendor, chassis_version, product_family, product_name, product_serial, product_sku, product_uuid, product_version, system_vendor if provided by DMI. | ||||||
| # TYPE node_dmi_info gauge | # TYPE node_dmi_info gauge | ||||||
| node_dmi_info{bios_date="04/12/2021",bios_release="2.2",bios_vendor="Dell Inc.",bios_version="2.2.4",board_name="07PXPY",board_serial=".7N62AI2.GRTCL6944100GP.",board_vendor="Dell Inc.",board_version="A01",chassis_asset_tag="",chassis_serial="7N62AI2",chassis_vendor="Dell Inc.",chassis_version="",product_family="PowerEdge",product_name="PowerEdge R6515",product_serial="7N62AI2",product_sku="SKU=NotProvided;ModelName=PowerEdge R6515",product_uuid="83340ca8-cb49-4474-8c29-d2088ca84dd9",product_version="",system_vendor="Dell Inc."} 1 | node_dmi_info{bios_date="04/12/2021",bios_release="2.2",bios_vendor="Dell Inc.",bios_version="2.2.4",board_name="07PXPY",board_serial=".7N62AI2.GRTCL6944100GP.",board_vendor="Dell Inc.",board_version="A01",chassis_asset_tag="",chassis_serial="7N62AI2",chassis_vendor="Dell Inc.",chassis_version="",product_family="PowerEdge",product_name="PowerEdge R6515",product_serial="7N62AI2",product_sku="SKU=NotProvided;ModelName=PowerEdge R6515",product_uuid="83340ca8-cb49-4474-8c29-d2088ca84dd9",product_version="<EFBFBD>[<5B>",system_vendor="Dell Inc."} 1 | ||||||
| # HELP node_drbd_activitylog_writes_total Number of updates of the activity log area of the meta data. | # HELP node_drbd_activitylog_writes_total Number of updates of the activity log area of the meta data. | ||||||
| # TYPE node_drbd_activitylog_writes_total counter | # TYPE node_drbd_activitylog_writes_total counter | ||||||
| node_drbd_activitylog_writes_total{device="drbd1"} 1100 | node_drbd_activitylog_writes_total{device="drbd1"} 1100 | ||||||
|  |  | ||||||
|  | @ -141,7 +141,7 @@ Mode: 400 | ||||||
| # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| Path: sys/class/dmi/id/product_version | Path: sys/class/dmi/id/product_version | ||||||
| Lines: 1 | Lines: 1 | ||||||
| 
 | <EFBFBD>[<5B> | ||||||
| Mode: 444 | Mode: 444 | ||||||
| # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||||||
| Path: sys/class/dmi/id/sys_vendor | Path: sys/class/dmi/id/sys_vendor | ||||||
|  |  | ||||||
|  | @ -47,9 +47,10 @@ import "C" | ||||||
| import ( | import ( | ||||||
| 	"errors" | 	"errors" | ||||||
| 	"fmt" | 	"fmt" | ||||||
|  | 	"unsafe" | ||||||
|  | 
 | ||||||
| 	"github.com/go-kit/log" | 	"github.com/go-kit/log" | ||||||
| 	"github.com/prometheus/client_golang/prometheus" | 	"github.com/prometheus/client_golang/prometheus" | ||||||
| 	"unsafe" |  | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| type thermCollector struct { | type thermCollector struct { | ||||||
|  | @ -118,7 +119,9 @@ func (c *thermCollector) Update(ch chan<- prometheus.Metric) error { | ||||||
| func fetchCPUPowerStatus() (map[string]int, error) { | func fetchCPUPowerStatus() (map[string]int, error) { | ||||||
| 	cfDictRef, _ := C.FetchThermal() | 	cfDictRef, _ := C.FetchThermal() | ||||||
| 	defer func() { | 	defer func() { | ||||||
| 		C.CFRelease(C.CFTypeRef(cfDictRef.ref)) | 		if cfDictRef.ref != 0x0 { | ||||||
|  | 			C.CFRelease(C.CFTypeRef(cfDictRef.ref)) | ||||||
|  | 		} | ||||||
| 	}() | 	}() | ||||||
| 
 | 
 | ||||||
| 	if C.kIOReturnNotFound == cfDictRef.ret { | 	if C.kIOReturnNotFound == cfDictRef.ret { | ||||||
|  |  | ||||||
|  | @ -11,6 +11,7 @@ enabled_collectors=$(cat << COLLECTORS | ||||||
|   cpu |   cpu | ||||||
|   cpufreq |   cpufreq | ||||||
|   diskstats |   diskstats | ||||||
|  |   dmi | ||||||
|   drbd |   drbd | ||||||
|   edac |   edac | ||||||
|   entropy |   entropy | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue