Skip to content

Set 'HostProcMountinfo' for Disk integration #37826

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 10 commits into from
Jun 11, 2025
Merged
9 changes: 9 additions & 0 deletions cmd/agent/dist/conf.d/disk.d/conf.yaml.default
Original file line number Diff line number Diff line change
Expand Up @@ -241,3 +241,12 @@ instances:
# host: nfsserver
# share: /mnt/nfs_share
# type: nfs

## @param proc_mountinfo_path - string - optional
## Path to the file from which to read mount information when enumerating disk partitions.
## By default this points at /proc/self/mounts (the same source used by Python’s disk check).
## If this setting is empty or does not exist, Go’s disk check built-in fallback
## logic will be used in order: /proc/1/mountinfo → /proc/self/mountinfo → /proc/mounts.
#
# proc_mountinfo_path: /proc/self/mounts

29 changes: 19 additions & 10 deletions pkg/collector/corechecks/system/disk/diskv2/disk.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,15 @@
package diskv2

import (
"context"
"errors"
"fmt"
"regexp"
"strings"
"time"

"github.com/benbjohnson/clock"
"github.com/shirou/gopsutil/v4/common"
gopsutil_disk "github.com/shirou/gopsutil/v4/disk"
yaml "gopkg.in/yaml.v2"

Expand Down Expand Up @@ -86,6 +88,7 @@ type diskInstanceConfig struct {
DeviceTagRe map[string]string `yaml:"device_tag_re"`
LowercaseDeviceTag bool `yaml:"lowercase_device_tag"`
Timeout uint16 `yaml:"timeout"`
ProcMountInfoPath string `yaml:"proc_mountinfo_path"`
}

func sliceMatchesExpression(slice []regexp.Regexp, expression string) bool {
Expand All @@ -111,10 +114,10 @@ func compileRegExp(expr string, ignoreCase bool) (*regexp.Regexp, error) {
// Check represents the Disk check that will be periodically executed via the Run() function
type Check struct {
core.CheckBase
clock clock.Clock
diskPartitions func(bool) ([]gopsutil_disk.PartitionStat, error)
diskUsage func(string) (*gopsutil_disk.UsageStat, error)
diskIOCounters func(...string) (map[string]gopsutil_disk.IOCountersStat, error)
clock clock.Clock
diskPartitionsWithContext func(context.Context, bool) ([]gopsutil_disk.PartitionStat, error)
diskUsage func(string) (*gopsutil_disk.UsageStat, error)
diskIOCounters func(...string) (map[string]gopsutil_disk.IOCountersStat, error)

initConfig diskInitConfig
instanceConfig diskInstanceConfig
Expand Down Expand Up @@ -410,7 +413,11 @@ func (c *Check) configureIncludeMountPoint() error {
}

func (c *Check) collectPartitionMetrics(sender sender.Sender) error {
partitions, err := c.diskPartitions(c.instanceConfig.IncludeAllDevices)
ctx := context.Background()
if c.instanceConfig.ProcMountInfoPath != "" {
ctx = context.WithValue(ctx, common.EnvKey, common.EnvMap{common.HostProcMountinfo: c.instanceConfig.ProcMountInfoPath})
}
partitions, err := c.diskPartitionsWithContext(ctx, c.instanceConfig.IncludeAllDevices)
if err != nil {
log.Warnf("Unable to get disk partitions: %s", err)
return err
Expand Down Expand Up @@ -671,11 +678,11 @@ func Factory() option.Option[func() check.Check] {

func newCheck() check.Check {
return &Check{
CheckBase: core.NewCheckBase(CheckName),
clock: clock.New(),
diskPartitions: gopsutil_disk.Partitions,
diskUsage: gopsutil_disk.Usage,
diskIOCounters: gopsutil_disk.IOCounters,
CheckBase: core.NewCheckBase(CheckName),
clock: clock.New(),
diskPartitionsWithContext: gopsutil_disk.PartitionsWithContext,
diskUsage: gopsutil_disk.Usage,
diskIOCounters: gopsutil_disk.IOCounters,
initConfig: diskInitConfig{
DeviceGlobalExclude: []string{},
DeviceGlobalBlacklist: []string{},
Expand Down Expand Up @@ -714,6 +721,8 @@ func newCheck() check.Check {
DeviceTagRe: make(map[string]string),
LowercaseDeviceTag: false,
Timeout: 5,
// Match psutil exactly setting default value (https://github.com/giampaolo/psutil/blob/3d21a43a47ab6f3c4a08d235d2a9a55d4adae9b1/psutil/_pslinux.py#L1277)
ProcMountInfoPath: "/proc/self/mounts",
},
includedDevices: []regexp.Regexp{},
excludedDevices: []regexp.Regexp{},
Expand Down
17 changes: 9 additions & 8 deletions pkg/collector/corechecks/system/disk/diskv2/disk_nix_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
package diskv2_test

import (
"context"
"errors"
"testing"

Expand Down Expand Up @@ -82,7 +83,7 @@ func TestGivenADiskCheckWithDefaultConfig_WhenCheckRuns_ThenAllUsageMetricsAreRe
func TestGivenADiskCheckWithLowercaseDeviceTagConfigured_WhenCheckRuns_ThenLowercaseDevicesAreReported(t *testing.T) {
setupDefaultMocks()
diskCheck := createDiskCheck(t)
diskCheck = diskv2.WithDiskPartitions(diskv2.WithDiskIOCounters(diskCheck, func(...string) (map[string]gopsutil_disk.IOCountersStat, error) {
diskCheck = diskv2.WithDiskPartitionsWithContext(diskv2.WithDiskIOCounters(diskCheck, func(...string) (map[string]gopsutil_disk.IOCountersStat, error) {
return map[string]gopsutil_disk.IOCountersStat{
"/dev/SDA1": {
Name: "sda1",
Expand All @@ -103,7 +104,7 @@ func TestGivenADiskCheckWithLowercaseDeviceTagConfigured_WhenCheckRuns_ThenLower
WriteTime: 150,
},
}, nil
}), func(_ bool) ([]gopsutil_disk.PartitionStat, error) {
}), func(_ context.Context, _ bool) ([]gopsutil_disk.PartitionStat, error) {
return []gopsutil_disk.PartitionStat{
{
Device: "/dev/SDA1",
Expand Down Expand Up @@ -183,7 +184,7 @@ func TestGivenADiskCheckWithIncludeAllDevicesFalseConfigured_WhenCheckRuns_ThenO
func TestGivenADiskCheckWithDefaultConfig_WhenCheckRunsAndPartitionsSystemReturnsEmptyDevice_ThenNoUsageMetricsAreReportedForThatPartition(t *testing.T) {
setupDefaultMocks()
diskCheck := createDiskCheck(t)
diskCheck = diskv2.WithDiskPartitions(diskCheck, func(_ bool) ([]gopsutil_disk.PartitionStat, error) {
diskCheck = diskv2.WithDiskPartitionsWithContext(diskCheck, func(_ context.Context, _ bool) ([]gopsutil_disk.PartitionStat, error) {
return []gopsutil_disk.PartitionStat{
{
Device: "",
Expand Down Expand Up @@ -217,7 +218,7 @@ func TestGivenADiskCheckWithDefaultConfig_WhenCheckRunsAndPartitionsSystemReturn
func TestGivenADiskCheckWithAllPartitionsFalseConfigured_WhenCheckRunsAndPartitionsSystemReturnsEmptyDevice_ThenNoUsageMetricsAreReportedForThatPartition(t *testing.T) {
setupDefaultMocks()
diskCheck := createDiskCheck(t)
diskCheck = diskv2.WithDiskPartitions(diskCheck, func(_ bool) ([]gopsutil_disk.PartitionStat, error) {
diskCheck = diskv2.WithDiskPartitionsWithContext(diskCheck, func(_ context.Context, _ bool) ([]gopsutil_disk.PartitionStat, error) {
return []gopsutil_disk.PartitionStat{
{
Device: "",
Expand Down Expand Up @@ -252,7 +253,7 @@ func TestGivenADiskCheckWithAllPartitionsFalseConfigured_WhenCheckRunsAndPartiti
func TestGivenADiskCheckWithAllPartitionsTrueConfigured_WhenCheckRunsAndPartitionsSystemReturnsEmptyDevice_ThenUsageMetricsAreReportedForThatPartition(t *testing.T) {
setupDefaultMocks()
diskCheck := createDiskCheck(t)
diskCheck = diskv2.WithDiskPartitions(diskCheck, func(_ bool) ([]gopsutil_disk.PartitionStat, error) {
diskCheck = diskv2.WithDiskPartitionsWithContext(diskCheck, func(_ context.Context, _ bool) ([]gopsutil_disk.PartitionStat, error) {
return []gopsutil_disk.PartitionStat{
{
Device: "",
Expand Down Expand Up @@ -343,7 +344,7 @@ device_whitelist:
func TestGivenADiskCheckWithFileSystemGlobalExcludeNotConfigured_WhenCheckRuns_ThenUsageMetricsAreNotReportedForPartitionsWithIso9660FileSystems(t *testing.T) {
setupDefaultMocks()
diskCheck := createDiskCheck(t)
diskCheck = diskv2.WithDiskPartitions(diskCheck, func(_ bool) ([]gopsutil_disk.PartitionStat, error) {
diskCheck = diskv2.WithDiskPartitionsWithContext(diskCheck, func(_ context.Context, _ bool) ([]gopsutil_disk.PartitionStat, error) {
return []gopsutil_disk.PartitionStat{
{
Device: "cdrom",
Expand Down Expand Up @@ -376,7 +377,7 @@ func TestGivenADiskCheckWithFileSystemGlobalExcludeNotConfigured_WhenCheckRuns_T
func TestGivenADiskCheckWithFileSystemGlobalExcludeNotConfigured_WhenCheckRuns_ThenUsageMetricsAreNotReportedForPartitionsWithTracefsFileSystems(t *testing.T) {
setupDefaultMocks()
diskCheck := createDiskCheck(t)
diskCheck = diskv2.WithDiskPartitions(diskCheck, func(_ bool) ([]gopsutil_disk.PartitionStat, error) {
diskCheck = diskv2.WithDiskPartitionsWithContext(diskCheck, func(_ context.Context, _ bool) ([]gopsutil_disk.PartitionStat, error) {
return []gopsutil_disk.PartitionStat{
{
Device: "trace",
Expand Down Expand Up @@ -500,7 +501,7 @@ excluded_filesystems:
func TestGivenADiskCheckWithExcludedFileSystemsConfiguredWithTmpfs_WhenCheckRuns_ThenUsageMetricsAreReportedForPartitionsWithDevTmpfsFileSystem(t *testing.T) {
setupDefaultMocks()
diskCheck := createDiskCheck(t)
diskCheck = diskv2.WithDiskPartitions(diskCheck, func(_ bool) ([]gopsutil_disk.PartitionStat, error) {
diskCheck = diskv2.WithDiskPartitionsWithContext(diskCheck, func(_ context.Context, _ bool) ([]gopsutil_disk.PartitionStat, error) {
return []gopsutil_disk.PartitionStat{
{
Device: "devtmpfs",
Expand Down
29 changes: 15 additions & 14 deletions pkg/collector/corechecks/system/disk/diskv2/disk_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ package diskv2_test
import (
"bufio"
"bytes"
"context"
"errors"
"testing"
"time"
Expand Down Expand Up @@ -169,11 +170,11 @@ func createDiskCheck(t *testing.T) check.Check {
diskCheckOpt := diskv2.Factory()
diskCheckFunc, _ := diskCheckOpt.Get()
diskCheck := diskCheckFunc()
diskCheck = diskv2.WithDiskPartitions(diskv2.WithDiskUsage(diskv2.WithDiskIOCounters(diskCheck, func(...string) (map[string]gopsutil_disk.IOCountersStat, error) {
diskCheck = diskv2.WithDiskPartitionsWithContext(diskv2.WithDiskUsage(diskv2.WithDiskIOCounters(diskCheck, func(...string) (map[string]gopsutil_disk.IOCountersStat, error) {
return ioCountersData, nil
}), func(mountpoint string) (*gopsutil_disk.UsageStat, error) {
return usageData[mountpoint], nil
}), func(all bool) ([]gopsutil_disk.PartitionStat, error) {
}), func(_ context.Context, all bool) ([]gopsutil_disk.PartitionStat, error) {
if all {
return partitionsTrue, nil
}
Expand Down Expand Up @@ -221,7 +222,7 @@ func TestGivenADiskCheckAndStoppedSender(t *testing.T) {
func TestGivenADiskCheckWithDefaultConfig_WhenCheckRunsAndPartitionsSystemCallReturnsError_ThenErrorIsReturnedAndNoUsageMetricsAreReported(t *testing.T) {
setupDefaultMocks()
diskCheck := createDiskCheck(t)
diskCheck = diskv2.WithDiskPartitions(diskCheck, func(_ bool) ([]gopsutil_disk.PartitionStat, error) {
diskCheck = diskv2.WithDiskPartitionsWithContext(diskCheck, func(_ context.Context, _ bool) ([]gopsutil_disk.PartitionStat, error) {
return nil, errors.New("error calling disk.DiskPartitions")
})
m := mocksender.NewMockSender(diskCheck.ID())
Expand Down Expand Up @@ -725,7 +726,7 @@ excluded_disks:
func TestGivenADiskCheckWithExcludedDisksConfiguredWithDa2_WhenCheckRuns_ThenUsageMetricsAreNotReportedForPartitionsWithSda2Devices(t *testing.T) {
setupDefaultMocks()
diskCheck := createDiskCheck(t)
diskCheck = diskv2.WithDiskPartitions(diskCheck, func(_ bool) ([]gopsutil_disk.PartitionStat, error) {
diskCheck = diskv2.WithDiskPartitionsWithContext(diskCheck, func(_ context.Context, _ bool) ([]gopsutil_disk.PartitionStat, error) {
return []gopsutil_disk.PartitionStat{
{
Device: "sda2",
Expand Down Expand Up @@ -865,7 +866,7 @@ file_system_include:
func TestGivenADiskCheckWithMountPointGlobalExcludeNotConfigured_WhenCheckRuns_ThenUsageMetricsAreNotReportedForPartitionsWithBinfmt_miscMountPoints(t *testing.T) {
setupDefaultMocks()
diskCheck := createDiskCheck(t)
diskCheck = diskv2.WithDiskPartitions(diskv2.WithDiskUsage(diskCheck, func(_ string) (*gopsutil_disk.UsageStat, error) {
diskCheck = diskv2.WithDiskPartitionsWithContext(diskv2.WithDiskUsage(diskCheck, func(_ string) (*gopsutil_disk.UsageStat, error) {
return &gopsutil_disk.UsageStat{
Path: "/host/proc/sys/fs/binfmt_misc",
Fstype: "ext4",
Expand All @@ -878,7 +879,7 @@ func TestGivenADiskCheckWithMountPointGlobalExcludeNotConfigured_WhenCheckRuns_T
InodesFree: 500000,
InodesUsedPercent: 50.0,
}, nil
}), func(_ bool) ([]gopsutil_disk.PartitionStat, error) {
}), func(_ context.Context, _ bool) ([]gopsutil_disk.PartitionStat, error) {
return []gopsutil_disk.PartitionStat{
{
Device: "first",
Expand Down Expand Up @@ -1024,7 +1025,7 @@ mount_point_include:
func TestGivenADiskCheckWithDefaultConfig_WhenCheckRunsAndUsageSystemCallReturnsAPartitionWithZeroTotal_ThenNoUsageMetricsAreReportedForThatPartition(t *testing.T) {
setupDefaultMocks()
diskCheck := createDiskCheck(t)
diskCheck = diskv2.WithDiskPartitions(diskv2.WithDiskUsage(diskCheck, func(_ string) (*gopsutil_disk.UsageStat, error) {
diskCheck = diskv2.WithDiskPartitionsWithContext(diskv2.WithDiskUsage(diskCheck, func(_ string) (*gopsutil_disk.UsageStat, error) {
return &gopsutil_disk.UsageStat{
Path: "/dev/shm",
Fstype: "tmpfs",
Expand All @@ -1037,7 +1038,7 @@ func TestGivenADiskCheckWithDefaultConfig_WhenCheckRunsAndUsageSystemCallReturns
InodesFree: 0,
InodesUsedPercent: 0,
}, nil
}), func(_ bool) ([]gopsutil_disk.PartitionStat, error) {
}), func(_ context.Context, _ bool) ([]gopsutil_disk.PartitionStat, error) {
return []gopsutil_disk.PartitionStat{
{
Device: "shm",
Expand All @@ -1059,7 +1060,7 @@ func TestGivenADiskCheckWithDefaultConfig_WhenCheckRunsAndUsageSystemCallReturns
func TestGivenADiskCheckWithMinDiskSizeConfiguredTo1MiBConfig_WhenCheckRunsAndUsageSystemCallReturnsAPartitionWith1024Total_ThenNoUsageMetricsAreReportedForThatPartition(t *testing.T) {
setupDefaultMocks()
diskCheck := createDiskCheck(t)
diskCheck = diskv2.WithDiskPartitions(diskv2.WithDiskUsage(diskCheck, func(_ string) (*gopsutil_disk.UsageStat, error) {
diskCheck = diskv2.WithDiskPartitionsWithContext(diskv2.WithDiskUsage(diskCheck, func(_ string) (*gopsutil_disk.UsageStat, error) {
return &gopsutil_disk.UsageStat{
Path: "/dev/shm",
Fstype: "tmpfs",
Expand All @@ -1072,7 +1073,7 @@ func TestGivenADiskCheckWithMinDiskSizeConfiguredTo1MiBConfig_WhenCheckRunsAndUs
InodesFree: 0,
InodesUsedPercent: 0,
}, nil
}), func(_ bool) ([]gopsutil_disk.PartitionStat, error) {
}), func(_ context.Context, _ bool) ([]gopsutil_disk.PartitionStat, error) {
return []gopsutil_disk.PartitionStat{
{
Device: "shm",
Expand Down Expand Up @@ -1104,7 +1105,7 @@ func TestGivenADiskCheckWithMinDiskSizeConfiguredTo1MiBConfig_WhenCheckRunsAndUs
func TestGivenADiskCheckWithMinDiskSizeConfiguredTo1MiBConfig_WhenCheckRunsAndUsageSystemCallReturnsAPartitionWith1048576Total_ThenUsageMetricsAreReportedForThatPartition(t *testing.T) {
setupDefaultMocks()
diskCheck := createDiskCheck(t)
diskCheck = diskv2.WithDiskPartitions(diskv2.WithDiskUsage(diskCheck, func(_ string) (*gopsutil_disk.UsageStat, error) {
diskCheck = diskv2.WithDiskPartitionsWithContext(diskv2.WithDiskUsage(diskCheck, func(_ string) (*gopsutil_disk.UsageStat, error) {
return &gopsutil_disk.UsageStat{
Path: "/dev/shm",
Fstype: "tmpfs",
Expand All @@ -1117,7 +1118,7 @@ func TestGivenADiskCheckWithMinDiskSizeConfiguredTo1MiBConfig_WhenCheckRunsAndUs
InodesFree: 0,
InodesUsedPercent: 0,
}, nil
}), func(_ bool) ([]gopsutil_disk.PartitionStat, error) {
}), func(_ context.Context, _ bool) ([]gopsutil_disk.PartitionStat, error) {
return []gopsutil_disk.PartitionStat{
{
Device: "shm",
Expand Down Expand Up @@ -1307,7 +1308,7 @@ func TestGivenADiskCheckWithDefaultConfig_WhenUsagePartitionTimeout_ThenUsageMet
afterCalled: afterCalled,
}
diskCheck := createDiskCheck(t)
diskCheck = diskv2.WithClock(diskv2.WithDiskPartitions(diskv2.WithDiskUsage(diskCheck, func(_ string) (*gopsutil_disk.UsageStat, error) {
diskCheck = diskv2.WithClock(diskv2.WithDiskPartitionsWithContext(diskv2.WithDiskUsage(diskCheck, func(_ string) (*gopsutil_disk.UsageStat, error) {
// Sleep 10s (longer than default timeout)
time.Sleep(10 * time.Second)
return &gopsutil_disk.UsageStat{
Expand All @@ -1322,7 +1323,7 @@ func TestGivenADiskCheckWithDefaultConfig_WhenUsagePartitionTimeout_ThenUsageMet
InodesFree: 0,
InodesUsedPercent: 0,
}, nil
}), func(_ bool) ([]gopsutil_disk.PartitionStat, error) {
}), func(_ context.Context, _ bool) ([]gopsutil_disk.PartitionStat, error) {
return []gopsutil_disk.PartitionStat{
{
Device: "shm",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ package diskv2_test
import (
"bufio"
"bytes"
"context"
"errors"
"testing"

Expand Down Expand Up @@ -40,7 +41,7 @@ func createWindowsCheck(t *testing.T) check.Check {
diskCheckOpt := diskv2.Factory()
diskCheckFunc, _ := diskCheckOpt.Get()
diskCheck := diskCheckFunc()
diskCheck = diskv2.WithDiskPartitions(diskv2.WithDiskUsage(diskv2.WithDiskIOCounters(diskCheck, func(...string) (map[string]gopsutil_disk.IOCountersStat, error) {
diskCheck = diskv2.WithDiskPartitionsWithContext(diskv2.WithDiskUsage(diskv2.WithDiskIOCounters(diskCheck, func(...string) (map[string]gopsutil_disk.IOCountersStat, error) {
return map[string]gopsutil_disk.IOCountersStat{
"\\\\?\\Volume{a1b2c3d4-e5f6-7890-abcd-ef1234567890}\\": {
Name: "sda1",
Expand All @@ -65,7 +66,7 @@ func createWindowsCheck(t *testing.T) check.Check {
InodesFree: 500000,
InodesUsedPercent: 50.0,
}, nil
}), func(_ bool) ([]gopsutil_disk.PartitionStat, error) {
}), func(_ context.Context, _ bool) ([]gopsutil_disk.PartitionStat, error) {
return []gopsutil_disk.PartitionStat{
{
Device: `\\?\Volume{a1b2c3d4-e5f6-7890-abcd-ef1234567890}\`,
Expand Down Expand Up @@ -147,7 +148,7 @@ func TestGivenADiskCheckWithIncludeAllDevicesFalseConfigured_WhenCheckRuns_ThenO
func TestGivenADiskCheckWithDefaultConfig_WhenCheckRunsAndPartitionsSystemReturnsEmptyDevice_ThenNoUsageMetricsAreReportedForThatPartition(t *testing.T) {
setupDefaultMocks()
diskCheck := createWindowsCheck(t)
diskCheck = diskv2.WithDiskPartitions(diskCheck, func(_ bool) ([]gopsutil_disk.PartitionStat, error) {
diskCheck = diskv2.WithDiskPartitionsWithContext(diskCheck, func(_ context.Context, _ bool) ([]gopsutil_disk.PartitionStat, error) {
return []gopsutil_disk.PartitionStat{
{
Device: "",
Expand Down Expand Up @@ -218,7 +219,7 @@ device_whitelist:
func TestGivenADiskCheckWithFileSystemGlobalExcludeNotConfigured_WhenCheckRuns_ThenUsageMetricsAreNotReportedForPartitionsWithIso9660FileSystems(t *testing.T) {
setupDefaultMocks()
diskCheck := createWindowsCheck(t)
diskCheck = diskv2.WithDiskPartitions(diskCheck, func(_ bool) ([]gopsutil_disk.PartitionStat, error) {
diskCheck = diskv2.WithDiskPartitionsWithContext(diskCheck, func(_ context.Context, _ bool) ([]gopsutil_disk.PartitionStat, error) {
return []gopsutil_disk.PartitionStat{
{
Device: "cdrom",
Expand Down Expand Up @@ -251,7 +252,7 @@ func TestGivenADiskCheckWithFileSystemGlobalExcludeNotConfigured_WhenCheckRuns_T
func TestGivenADiskCheckWithFileSystemGlobalExcludeNotConfigured_WhenCheckRuns_ThenUsageMetricsAreNotReportedForPartitionsWithTracefsFileSystems(t *testing.T) {
setupDefaultMocks()
diskCheck := createWindowsCheck(t)
diskCheck = diskv2.WithDiskPartitions(diskCheck, func(_ bool) ([]gopsutil_disk.PartitionStat, error) {
diskCheck = diskv2.WithDiskPartitionsWithContext(diskCheck, func(_ context.Context, _ bool) ([]gopsutil_disk.PartitionStat, error) {
return []gopsutil_disk.PartitionStat{
{
Device: "trace",
Expand Down
8 changes: 5 additions & 3 deletions pkg/collector/corechecks/system/disk/diskv2/with_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
package diskv2

import (
"context"

"github.com/DataDog/datadog-agent/pkg/collector/check"
"github.com/benbjohnson/clock"
gopsutil_disk "github.com/shirou/gopsutil/v4/disk"
Expand All @@ -20,9 +22,9 @@ func WithClock(c check.Check, clock clock.Clock) check.Check {
return c
}

// WithDiskPartitions sets a diskPartitions call on the Check and returns the updated Check.
func WithDiskPartitions(c check.Check, f func(bool) ([]gopsutil_disk.PartitionStat, error)) check.Check {
c.(*Check).diskPartitions = f
// WithDiskPartitionsWithContext sets a diskPartitionsWithContext call on the Check and returns the updated Check.
func WithDiskPartitionsWithContext(c check.Check, f func(context.Context, bool) ([]gopsutil_disk.PartitionStat, error)) check.Check {
c.(*Check).diskPartitionsWithContext = f
return c
}

Expand Down