mirror of
https://github.com/prometheus/node_exporter.git
synced 2024-11-09 23:24:09 -08: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