mirror of
https://github.com/kemko/nomad.git
synced 2026-01-06 18:35:44 +03:00
Squelch logspam when unable to get disk usage stats
To reproduce logspam: ``` $ docker plugin install --grant-all-permissions vieux/sshfs $ nomad agent -dev ... 2017/08/25 17:09:03.282868 [WARN] client: error fetching host disk usage stats for /var/lib/docker/plugins/a8b4a69b07e5180f828d19e1e9e102ccc0e26f9c9939eaef85357260c30b20a7/rootfs/mnt/volumes: permission denied ... repeats every collection period ... ```
This commit is contained in:
@@ -70,6 +70,10 @@ type HostStatsCollector struct {
|
||||
hostStats *HostStats
|
||||
hostStatsLock sync.RWMutex
|
||||
allocDir string
|
||||
|
||||
// badParts is a set of partitions whose usage cannot be read; used to
|
||||
// squelch logspam.
|
||||
badParts map[string]struct{}
|
||||
}
|
||||
|
||||
// NewHostStatsCollector returns a HostStatsCollector. The allocDir is passed in
|
||||
@@ -83,6 +87,7 @@ func NewHostStatsCollector(logger *log.Logger, allocDir string) *HostStatsCollec
|
||||
numCores: numCores,
|
||||
logger: logger,
|
||||
allocDir: allocDir,
|
||||
badParts: make(map[string]struct{}),
|
||||
}
|
||||
return collector
|
||||
}
|
||||
@@ -134,9 +139,17 @@ func (h *HostStatsCollector) Collect() error {
|
||||
for _, partition := range partitions {
|
||||
usage, err := disk.Usage(partition.Mountpoint)
|
||||
if err != nil {
|
||||
if _, ok := h.badParts[partition.Mountpoint]; ok {
|
||||
// already known bad, don't log again
|
||||
continue
|
||||
}
|
||||
|
||||
h.badParts[partition.Mountpoint] = struct{}{}
|
||||
h.logger.Printf("[WARN] client: error fetching host disk usage stats for %v: %v", partition.Mountpoint, err)
|
||||
continue
|
||||
}
|
||||
delete(h.badParts, partition.Mountpoint)
|
||||
|
||||
ds := h.toDiskStats(usage, &partition)
|
||||
diskStats = append(diskStats, ds)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user