Use name filter for IOCounters in diskio (#2649)
Use IOCountersForNames for disk counters.
This commit is contained in:
parent
fa0f5bd6f3
commit
8b4c3201a2
|
@ -97,6 +97,7 @@ be deprecated eventually.
|
||||||
- [#2610](https://github.com/influxdata/telegraf/pull/2610): Fix deadlock when output cannot write
|
- [#2610](https://github.com/influxdata/telegraf/pull/2610): Fix deadlock when output cannot write
|
||||||
- [#2410](https://github.com/influxdata/telegraf/issues/2410): Fix connection leak in postgresql.
|
- [#2410](https://github.com/influxdata/telegraf/issues/2410): Fix connection leak in postgresql.
|
||||||
- [#2628](https://github.com/influxdata/telegraf/issues/2628): Set default measurement name for snmp input.
|
- [#2628](https://github.com/influxdata/telegraf/issues/2628): Set default measurement name for snmp input.
|
||||||
|
- [#2649](https://github.com/influxdata/telegraf/pull/2649): Improve performance of diskio with many disks
|
||||||
|
|
||||||
## v1.2.1 [2017-02-01]
|
## v1.2.1 [2017-02-01]
|
||||||
|
|
||||||
|
|
2
Godeps
2
Godeps
|
@ -44,7 +44,7 @@ github.com/prometheus/common dd2f054febf4a6c00f2343686efb775948a8bff4
|
||||||
github.com/prometheus/procfs 1878d9fbb537119d24b21ca07effd591627cd160
|
github.com/prometheus/procfs 1878d9fbb537119d24b21ca07effd591627cd160
|
||||||
github.com/rcrowley/go-metrics 1f30fe9094a513ce4c700b9a54458bbb0c96996c
|
github.com/rcrowley/go-metrics 1f30fe9094a513ce4c700b9a54458bbb0c96996c
|
||||||
github.com/samuel/go-zookeeper 1d7be4effb13d2d908342d349d71a284a7542693
|
github.com/samuel/go-zookeeper 1d7be4effb13d2d908342d349d71a284a7542693
|
||||||
github.com/shirou/gopsutil d371ba1293cb48fedc6850526ea48b3846c54f2c
|
github.com/shirou/gopsutil dfbb3e40da8d6fcd1aa0d87003e965fe0ca745ea
|
||||||
github.com/soniah/gosnmp 5ad50dc75ab389f8a1c9f8a67d3a1cd85f67ed15
|
github.com/soniah/gosnmp 5ad50dc75ab389f8a1c9f8a67d3a1cd85f67ed15
|
||||||
github.com/streadway/amqp 63795daa9a446c920826655f26ba31c81c860fd6
|
github.com/streadway/amqp 63795daa9a446c920826655f26ba31c81c860fd6
|
||||||
github.com/stretchr/testify 4d4bfba8f1d1027c4fdbe371823030df51419987
|
github.com/stretchr/testify 4d4bfba8f1d1027c4fdbe371823030df51419987
|
||||||
|
|
|
@ -125,25 +125,12 @@ func (_ *DiskIOStats) SampleConfig() string {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DiskIOStats) Gather(acc telegraf.Accumulator) error {
|
func (s *DiskIOStats) Gather(acc telegraf.Accumulator) error {
|
||||||
diskio, err := s.ps.DiskIO()
|
diskio, err := s.ps.DiskIO(s.Devices)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("error getting disk io info: %s", err)
|
return fmt.Errorf("error getting disk io info: %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
var restrictDevices bool
|
|
||||||
devices := make(map[string]bool)
|
|
||||||
if len(s.Devices) != 0 {
|
|
||||||
restrictDevices = true
|
|
||||||
for _, dev := range s.Devices {
|
|
||||||
devices[dev] = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, io := range diskio {
|
for _, io := range diskio {
|
||||||
_, member := devices[io.Name]
|
|
||||||
if restrictDevices && !member {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
tags := map[string]string{}
|
tags := map[string]string{}
|
||||||
tags["name"] = s.diskName(io.Name)
|
tags["name"] = s.diskName(io.Name)
|
||||||
for t, v := range s.diskTags(io.Name) {
|
for t, v := range s.diskTags(io.Name) {
|
||||||
|
|
|
@ -61,7 +61,7 @@ func (m *MockPS) NetProto() ([]net.ProtoCountersStat, error) {
|
||||||
return r0, r1
|
return r0, r1
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *MockPS) DiskIO() (map[string]disk.IOCountersStat, error) {
|
func (m *MockPS) DiskIO(names []string) (map[string]disk.IOCountersStat, error) {
|
||||||
ret := m.Called()
|
ret := m.Called()
|
||||||
|
|
||||||
r0 := ret.Get(0).(map[string]disk.IOCountersStat)
|
r0 := ret.Get(0).(map[string]disk.IOCountersStat)
|
||||||
|
|
|
@ -17,7 +17,7 @@ type PS interface {
|
||||||
DiskUsage(mountPointFilter []string, fstypeExclude []string) ([]*disk.UsageStat, []*disk.PartitionStat, error)
|
DiskUsage(mountPointFilter []string, fstypeExclude []string) ([]*disk.UsageStat, []*disk.PartitionStat, error)
|
||||||
NetIO() ([]net.IOCountersStat, error)
|
NetIO() ([]net.IOCountersStat, error)
|
||||||
NetProto() ([]net.ProtoCountersStat, error)
|
NetProto() ([]net.ProtoCountersStat, error)
|
||||||
DiskIO() (map[string]disk.IOCountersStat, error)
|
DiskIO(names []string) (map[string]disk.IOCountersStat, error)
|
||||||
VMStat() (*mem.VirtualMemoryStat, error)
|
VMStat() (*mem.VirtualMemoryStat, error)
|
||||||
SwapStat() (*mem.SwapMemoryStat, error)
|
SwapStat() (*mem.SwapMemoryStat, error)
|
||||||
NetConnections() ([]net.ConnectionStat, error)
|
NetConnections() ([]net.ConnectionStat, error)
|
||||||
|
@ -120,8 +120,8 @@ func (s *systemPS) NetConnections() ([]net.ConnectionStat, error) {
|
||||||
return net.Connections("all")
|
return net.Connections("all")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *systemPS) DiskIO() (map[string]disk.IOCountersStat, error) {
|
func (s *systemPS) DiskIO(names []string) (map[string]disk.IOCountersStat, error) {
|
||||||
m, err := disk.IOCounters()
|
m, err := disk.IOCountersForNames(names)
|
||||||
if err == internal.NotImplementedError {
|
if err == internal.NotImplementedError {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue