Fixed ArgumentNullException in ContainerTracker.cs

Fixed crash (ArgumentNullException) caused by resources.BlkioStats.IoServiceBytesRecursive being null when other docker containers keep getting restarted.
This commit is contained in:
GitHubPang 2020-02-25 08:49:37 +08:00 committed by GitHub
parent adc3bef880
commit 384034d91f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -187,16 +187,16 @@ namespace DockerExporter
} }
else else
{ {
var readEntries = resources.BlkioStats.IoServiceBytesRecursive var readEntries = resources.BlkioStats.IoServiceBytesRecursive?
.Where(entry => entry.Op.Equals("read", StringComparison.InvariantCultureIgnoreCase)) .Where(entry => entry.Op.Equals("read", StringComparison.InvariantCultureIgnoreCase))
.ToArray(); .ToArray();
var writeEntries = resources.BlkioStats.IoServiceBytesRecursive var writeEntries = resources.BlkioStats.IoServiceBytesRecursive?
.Where(entry => entry.Op.Equals("write", StringComparison.InvariantCultureIgnoreCase)) .Where(entry => entry.Op.Equals("write", StringComparison.InvariantCultureIgnoreCase))
.ToArray(); .ToArray();
var totalRead = readEntries.Any() ? readEntries.Sum(entry => (long)entry.Value) : 0; var totalRead = readEntries == null ? 0 : readEntries.Any() ? readEntries.Sum(entry => (long)entry.Value) : 0;
var totalWrite = writeEntries.Any() ? writeEntries.Sum(entry => (long)entry.Value) : 0; var totalWrite = writeEntries == null ? 0 : writeEntries.Any() ? writeEntries.Sum(entry => (long)entry.Value) : 0;
metrics.TotalDiskBytesRead.Set(totalRead); metrics.TotalDiskBytesRead.Set(totalRead);
metrics.TotalDiskBytesWrite.Set(totalWrite); metrics.TotalDiskBytesWrite.Set(totalWrite);