feat: add runtime profiling parity and close config runtime drift
This commit is contained in:
@@ -70,6 +70,11 @@ internal sealed class PprofMonitorFixture : IAsyncDisposable
|
||||
return _http.GetStringAsync($"http://127.0.0.1:{_monitorPort}{path}");
|
||||
}
|
||||
|
||||
public Task<byte[]> GetBytesAsync(string path)
|
||||
{
|
||||
return _http.GetByteArrayAsync($"http://127.0.0.1:{_monitorPort}{path}");
|
||||
}
|
||||
|
||||
public async ValueTask DisposeAsync()
|
||||
{
|
||||
_http.Dispose();
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
using System.Text.Json;
|
||||
|
||||
namespace NATS.Server.Tests.Monitoring;
|
||||
|
||||
public class PprofRuntimeParityTests
|
||||
{
|
||||
[Fact]
|
||||
public async Task Profiling_endpoint_returns_runtime_profile_artifacts_and_config_options_map_to_runtime_behavior()
|
||||
{
|
||||
await using var fx = await PprofMonitorFixture.StartWithProfilingAsync();
|
||||
var payload = await fx.GetBytesAsync("/debug/pprof/profile?seconds=2");
|
||||
var doc = JsonDocument.Parse(payload);
|
||||
|
||||
doc.RootElement.GetProperty("profile").GetString().ShouldBe("cpu");
|
||||
doc.RootElement.GetProperty("seconds").GetInt32().ShouldBe(2);
|
||||
doc.RootElement.GetProperty("thread_count").GetInt32().ShouldBeGreaterThan(0);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user