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
{
var readEntries = resources.BlkioStats.IoServiceBytesRecursive
var readEntries = resources.BlkioStats.IoServiceBytesRecursive?
.Where(entry => entry.Op.Equals("read", StringComparison.InvariantCultureIgnoreCase))
.ToArray();
var writeEntries = resources.BlkioStats.IoServiceBytesRecursive
var writeEntries = resources.BlkioStats.IoServiceBytesRecursive?
.Where(entry => entry.Op.Equals("write", StringComparison.InvariantCultureIgnoreCase))
.ToArray();
var totalRead = readEntries.Any() ? readEntries.Sum(entry => (long)entry.Value) : 0;
var totalWrite = writeEntries.Any() ? writeEntries.Sum(entry => (long)entry.Value) : 0;
var totalRead = readEntries == null ? 0 : readEntries.Any() ? readEntries.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.TotalDiskBytesWrite.Set(totalWrite);