mirror of
https://github.com/prometheus-community/windows_exporter
synced 2025-02-18 04:57:20 +00:00
Address GitHub feedback
- Defer registry close calls - Ensure size parameter in GetComputerName is properly specified - Clean up some comments to ensure correctness Signed-off-by: Ben Ridley <benridley29@gmail.com>
This commit is contained in:
parent
ee3848141c
commit
33c6b2c6a5
@ -173,6 +173,8 @@ func (c *OSCollector) collect(ctx *ScrapeContext, ch chan<- prometheus.Metric) (
|
|||||||
|
|
||||||
// Get total allocation of paging files across all disks.
|
// Get total allocation of paging files across all disks.
|
||||||
memManKey, err := registry.OpenKey(registry.LOCAL_MACHINE, `SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management`, registry.QUERY_VALUE)
|
memManKey, err := registry.OpenKey(registry.LOCAL_MACHINE, `SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management`, registry.QUERY_VALUE)
|
||||||
|
defer memManKey.Close()
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -181,15 +183,14 @@ func (c *OSCollector) collect(ctx *ScrapeContext, ch chan<- prometheus.Metric) (
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := memManKey.Close(); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get build number and product name from registry
|
// Get build number and product name from registry
|
||||||
ntKey, err := registry.OpenKey(registry.LOCAL_MACHINE, `SOFTWARE\Microsoft\Windows NT\CurrentVersion`, registry.QUERY_VALUE)
|
ntKey, err := registry.OpenKey(registry.LOCAL_MACHINE, `SOFTWARE\Microsoft\Windows NT\CurrentVersion`, registry.QUERY_VALUE)
|
||||||
|
defer ntKey.Close()
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
pn, _, err := ntKey.GetStringValue("ProductName")
|
pn, _, err := ntKey.GetStringValue("ProductName")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -200,10 +201,6 @@ func (c *OSCollector) collect(ctx *ScrapeContext, ch chan<- prometheus.Metric) (
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := ntKey.Close(); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var fsipf float64 = 0
|
var fsipf float64 = 0
|
||||||
for _, pagingFile := range pagingFiles {
|
for _, pagingFile := range pagingFiles {
|
||||||
fileString := strings.ReplaceAll(pagingFile, `\??\`, "")
|
fileString := strings.ReplaceAll(pagingFile, `\??\`, "")
|
||||||
|
@ -73,7 +73,6 @@ func netApiBufferFree(buffer *wKSTAInfo102) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// NetWkstaGetInfo returns information about the configuration of a workstation.
|
// NetWkstaGetInfo returns information about the configuration of a workstation.
|
||||||
// WARNING: The caller must call netApiBufferFree to free the memory allocated by this function.
|
|
||||||
// https://docs.microsoft.com/en-us/windows/win32/api/lmwksta/nf-lmwksta-netwkstagetinfo
|
// https://docs.microsoft.com/en-us/windows/win32/api/lmwksta/nf-lmwksta-netwkstagetinfo
|
||||||
func netWkstaGetInfo() (*wKSTAInfo102, uint32, error) {
|
func netWkstaGetInfo() (*wKSTAInfo102, uint32, error) {
|
||||||
var lpwi *wKSTAInfo102
|
var lpwi *wKSTAInfo102
|
||||||
|
@ -148,12 +148,12 @@ func GetSystemInfo() SystemInfo {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// GetComputerName wraps the GetComputerNameW function in a more Go-like way
|
// GetComputerName wraps the GetComputerNameW function in a more Go-like way
|
||||||
// https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-getcomputernamew
|
// https://docs.microsoft.com/en-us/windows/win32/api/sysinfoapi/nf-sysinfoapi-getcomputernameexw
|
||||||
func GetComputerName(f WinComputerNameFormat) (string, error) {
|
func GetComputerName(f WinComputerNameFormat) (string, error) {
|
||||||
// 1kb buffer to accept computer name. This should be more than enough as the maximum size
|
// 1kb buffer to accept computer name. This should be more than enough as the maximum size
|
||||||
// returned is the max length of a DNS name, which this author believes is 253 characters.
|
// returned is the max length of a DNS name, which this author believes is 253 characters.
|
||||||
size := 1024
|
size := 1024
|
||||||
var buffer [4096]uint16
|
var buffer [1024]uint16
|
||||||
r1, _, err := procGetComputerNameExW.Call(uintptr(f), uintptr(unsafe.Pointer(&buffer)), uintptr(unsafe.Pointer(&size)))
|
r1, _, err := procGetComputerNameExW.Call(uintptr(f), uintptr(unsafe.Pointer(&buffer)), uintptr(unsafe.Pointer(&size)))
|
||||||
if r1 == 0 {
|
if r1 == 0 {
|
||||||
return "", err
|
return "", err
|
||||||
|
Loading…
Reference in New Issue
Block a user