mirror of
https://github.com/prometheus/node_exporter.git
synced 2024-11-23 12:30:46 +01:00
os_release.go: Removed caching of modtime/filename of os-release file. (#2987)
Signed-off-by: Jonathan Davies <jpds@protonmail.com>
This commit is contained in:
parent
0202220881
commit
36e0d1f6d4
@ -60,8 +60,6 @@ type osReleaseCollector struct {
|
|||||||
infoDesc *prometheus.Desc
|
infoDesc *prometheus.Desc
|
||||||
logger log.Logger
|
logger log.Logger
|
||||||
os *osRelease
|
os *osRelease
|
||||||
osFilename string // file name of cached release information
|
|
||||||
osMtime time.Time // mtime of cached release file
|
|
||||||
osMutex sync.RWMutex
|
osMutex sync.RWMutex
|
||||||
osReleaseFilenames []string // all os-release file names to check
|
osReleaseFilenames []string // all os-release file names to check
|
||||||
version float64
|
version float64
|
||||||
@ -134,28 +132,10 @@ func (c *osReleaseCollector) UpdateStruct(path string) error {
|
|||||||
}
|
}
|
||||||
defer releaseFile.Close()
|
defer releaseFile.Close()
|
||||||
|
|
||||||
stat, err := releaseFile.Stat()
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
t := stat.ModTime()
|
|
||||||
c.osMutex.RLock()
|
|
||||||
upToDate := path == c.osFilename && t == c.osMtime
|
|
||||||
c.osMutex.RUnlock()
|
|
||||||
if upToDate {
|
|
||||||
// osReleaseCollector struct is already up-to-date.
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// Acquire a lock to update the osReleaseCollector struct.
|
// Acquire a lock to update the osReleaseCollector struct.
|
||||||
c.osMutex.Lock()
|
c.osMutex.Lock()
|
||||||
defer c.osMutex.Unlock()
|
defer c.osMutex.Unlock()
|
||||||
|
|
||||||
level.Debug(c.logger).Log("msg", "file modification time has changed",
|
|
||||||
"file", path, "old_value", c.osMtime, "new_value", t)
|
|
||||||
c.osFilename = path
|
|
||||||
c.osMtime = t
|
|
||||||
// SystemVersion.plist is xml file with MacOs version info
|
// SystemVersion.plist is xml file with MacOs version info
|
||||||
if strings.Contains(releaseFile.Name(), "SystemVersion.plist") {
|
if strings.Contains(releaseFile.Name(), "SystemVersion.plist") {
|
||||||
c.os, err = getMacosProductVersion(releaseFile.Name())
|
c.os, err = getMacosProductVersion(releaseFile.Name())
|
||||||
|
Loading…
Reference in New Issue
Block a user