tcp: fix panic on collector (#1699)

This commit is contained in:
Jan-Otto Kröpke 2024-10-17 02:29:53 +02:00 committed by GitHub
parent 92b7e445e1
commit ce2df385a6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 9 additions and 1 deletions

View File

@ -10,3 +10,7 @@ import (
func BenchmarkCollector(b *testing.B) {
testutils.FuncBenchmarkCollector(b, tcp.Name, tcp.NewWithFlags)
}
func TestCollector(t *testing.T) {
testutils.TestCollector(t, tcp.New, nil)
}

View File

@ -44,7 +44,7 @@ func (c *Collector) Collect() (map[string]map[string]perftypes.CounterValues, er
return nil, fmt.Errorf("QueryPerformanceData: %w", err)
}
if len(perfObjects) == 0 {
if len(perfObjects) == 0 || perfObjects[0] == nil || len(perfObjects[0].Instances) == 0 {
return map[string]map[string]perftypes.CounterValues{}, nil
}

View File

@ -418,6 +418,10 @@ func QueryPerformanceData(query string, counterName string) ([]*PerfObject, erro
}
}
if counterName != "" {
return objects[i : i+1], nil
}
// Next perfObjectType
objOffset += int64(obj.TotalByteLength)
numFilteredObjects++