Logging bytes per millisecond for twoclient upload and download
This commit is contained in:
parent
0a2bca9f52
commit
42b0ab67a0
|
@ -51,7 +51,7 @@ namespace Logging
|
||||||
return new Stopwatch(log, name, debug);
|
return new Stopwatch(log, name, debug);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void End(string msg = "", int skipFrames = 0)
|
public TimeSpan End(string msg = "", int skipFrames = 0)
|
||||||
{
|
{
|
||||||
var duration = DateTime.UtcNow - start;
|
var duration = DateTime.UtcNow - start;
|
||||||
var entry = $"{name} {msg} ({Time.FormatDuration(duration)})";
|
var entry = $"{name} {msg} ({Time.FormatDuration(duration)})";
|
||||||
|
@ -64,6 +64,8 @@ namespace Logging
|
||||||
{
|
{
|
||||||
log.Log(entry);
|
log.Log(entry);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return duration;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
using CodexPlugin;
|
using CodexPlugin;
|
||||||
using FileUtils;
|
using FileUtils;
|
||||||
|
using Logging;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using Utils;
|
using Utils;
|
||||||
|
|
||||||
|
@ -15,16 +16,16 @@ namespace ContinuousTests.Tests
|
||||||
|
|
||||||
private ContentId? cid;
|
private ContentId? cid;
|
||||||
private TrackedFile file = null!;
|
private TrackedFile file = null!;
|
||||||
|
private readonly ByteSize size = 80.MB();
|
||||||
|
|
||||||
[TestMoment(t: Zero)]
|
[TestMoment(t: Zero)]
|
||||||
public void UploadTestFile()
|
public void UploadTestFile()
|
||||||
{
|
{
|
||||||
var size = 80.MB();
|
|
||||||
file = FileManager.GenerateFile(size);
|
file = FileManager.GenerateFile(size);
|
||||||
|
|
||||||
AssertBytesStoredMetric(size, Nodes[0], () =>
|
AssertBytesStoredMetric(Nodes[0], () =>
|
||||||
{
|
{
|
||||||
cid = Nodes[0].UploadFile(file);
|
LogBytesPerMillisecond(() => cid = Nodes[0].UploadFile(file));
|
||||||
Assert.That(cid, Is.Not.Null);
|
Assert.That(cid, Is.Not.Null);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -32,15 +33,17 @@ namespace ContinuousTests.Tests
|
||||||
[TestMoment(t: 10)]
|
[TestMoment(t: 10)]
|
||||||
public void DownloadTestFile()
|
public void DownloadTestFile()
|
||||||
{
|
{
|
||||||
var dl = Nodes[1].DownloadContent(cid!);
|
TrackedFile? dl = null;
|
||||||
|
|
||||||
|
LogBytesPerMillisecond(() => dl = Nodes[1].DownloadContent(cid!));
|
||||||
|
|
||||||
file.AssertIsEqual(dl);
|
file.AssertIsEqual(dl);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void AssertBytesStoredMetric(ByteSize uploadedSize, ICodexNode node, Action action)
|
private void AssertBytesStoredMetric(ICodexNode node, Action action)
|
||||||
{
|
{
|
||||||
var lowExpected = uploadedSize.SizeInBytes;
|
var lowExpected = size.SizeInBytes;
|
||||||
var highExpected = uploadedSize.SizeInBytes * 1.2;
|
var highExpected = size.SizeInBytes * 1.2;
|
||||||
|
|
||||||
var metrics = CreateMetricsAccess(node);
|
var metrics = CreateMetricsAccess(node);
|
||||||
var before = metrics.GetMetric(BytesStoredMetric);
|
var before = metrics.GetMetric(BytesStoredMetric);
|
||||||
|
@ -57,5 +60,17 @@ namespace ContinuousTests.Tests
|
||||||
return highExpected > newBytes && newBytes > lowExpected;
|
return highExpected > newBytes && newBytes > lowExpected;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void LogBytesPerMillisecond(Action action)
|
||||||
|
{
|
||||||
|
var sw = Stopwatch.Begin(Log);
|
||||||
|
action();
|
||||||
|
var duration = sw.End();
|
||||||
|
double totalMs = duration.TotalMilliseconds;
|
||||||
|
double totalBytes = size.SizeInBytes;
|
||||||
|
|
||||||
|
var bytesPerMs = totalBytes / totalMs;
|
||||||
|
Log.Log($"Bytes per millisecond: {bytesPerMs}");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
using CodexPlugin;
|
using CodexPlugin;
|
||||||
using GethPlugin;
|
using GethPlugin;
|
||||||
using KubernetesWorkflow;
|
using KubernetesWorkflow;
|
||||||
|
using Logging;
|
||||||
using MetricsPlugin;
|
using MetricsPlugin;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using Utils;
|
using Utils;
|
||||||
|
@ -53,6 +54,18 @@ namespace Tests.BasicTests
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void LogBytesPerMillisecond(Action action)
|
||||||
|
{
|
||||||
|
var sw = Stopwatch.Begin(GetTestLog());
|
||||||
|
action();
|
||||||
|
var duration = sw.End();
|
||||||
|
double totalMs = duration.TotalMilliseconds;
|
||||||
|
double totalBytes = fileSize.SizeInBytes;
|
||||||
|
|
||||||
|
var bytesPerMs = totalBytes / totalMs;
|
||||||
|
Log($"Bytes per millisecond: {bytesPerMs}");
|
||||||
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void PeerTest()
|
public void PeerTest()
|
||||||
{
|
{
|
||||||
|
@ -122,7 +135,8 @@ namespace Tests.BasicTests
|
||||||
var metrics = Ci.WrapMetricsCollector(rc, primary);
|
var metrics = Ci.WrapMetricsCollector(rc, primary);
|
||||||
var beforeBytesStored = metrics.GetMetric(BytesStoredMetric);
|
var beforeBytesStored = metrics.GetMetric(BytesStoredMetric);
|
||||||
|
|
||||||
var contentId = primary.UploadFile(testFile);
|
ContentId contentId = null!;
|
||||||
|
LogBytesPerMillisecond(() => contentId = primary.UploadFile(testFile));
|
||||||
|
|
||||||
var low = fileSize.SizeInBytes;
|
var low = fileSize.SizeInBytes;
|
||||||
var high = low * 1.2;
|
var high = low * 1.2;
|
||||||
|
@ -136,7 +150,8 @@ namespace Tests.BasicTests
|
||||||
return high > newBytes && newBytes > low;
|
return high > newBytes && newBytes > low;
|
||||||
}, TimeSpan.FromMinutes(1), TimeSpan.FromSeconds(2));
|
}, TimeSpan.FromMinutes(1), TimeSpan.FromSeconds(2));
|
||||||
|
|
||||||
var downloadedFile = secondary.DownloadContent(contentId);
|
FileUtils.TrackedFile? downloadedFile = null;
|
||||||
|
LogBytesPerMillisecond(() => downloadedFile = secondary.DownloadContent(contentId));
|
||||||
|
|
||||||
testFile.AssertIsEqual(downloadedFile);
|
testFile.AssertIsEqual(downloadedFile);
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue