diff options
| author | Dan Engelbrecht <[email protected]> | 2023-11-13 16:19:39 +0100 |
|---|---|---|
| committer | GitHub <[email protected]> | 2023-11-13 16:19:39 +0100 |
| commit | d52bed8d5a37a39c88b78a19e22f2b7b3f6dd1d6 (patch) | |
| tree | 2709bce7020faa9c73e784dd2a5997b384395b56 /src/zenserver/admin/admin.cpp | |
| parent | package dependency clean-ups (#531) (diff) | |
| download | zen-d52bed8d5a37a39c88b78a19e22f2b7b3f6dd1d6.tar.xz zen-d52bed8d5a37a39c88b78a19e22f2b7b3f6dd1d6.zip | |
gc history log (#519)
- Feature: Writes a `gc.log` with settings and detailed result after each GC execution (version 2 only)
- Break out file name rotate to allow access for gclog
- CompactBinaryToJson(MemoryView Data, StringBuilderBase& InBuilder)
Diffstat (limited to 'src/zenserver/admin/admin.cpp')
| -rw-r--r-- | src/zenserver/admin/admin.cpp | 101 |
1 files changed, 4 insertions, 97 deletions
diff --git a/src/zenserver/admin/admin.cpp b/src/zenserver/admin/admin.cpp index 00a5c79ed..d4c69f41b 100644 --- a/src/zenserver/admin/admin.cpp +++ b/src/zenserver/admin/admin.cpp @@ -231,101 +231,6 @@ HttpAdminService::HttpAdminService(GcScheduler& Scheduler, Response << "DiskUsed" << NiceBytes(State.DiskUsed); Response << "DiskFree" << NiceBytes(State.DiskFree); - auto WriteReferencerStats = [&](CbObjectWriter& Response, const GcReferencerStats& Stats) { - if (Stats.Count == 0) - { - return; - } - Response << "Count" << Stats.Count; - Response << "Expired" << Stats.Expired; - Response << "Deleted" << Stats.Deleted; - - Response << "RemovedDisk" << NiceBytes(Stats.RemovedDisk); - Response << "RemovedMemory" << NiceBytes(Stats.RemovedMemory); - - Response << "RemoveExpiredData" << NiceTimeSpanMs(Stats.RemoveExpiredDataMS.count()); - Response << "CreateReferenceCheckers" << NiceTimeSpanMs(Stats.CreateReferenceCheckersMS.count()); - Response << "LockState" << NiceTimeSpanMs(Stats.LockStateMS.count()); - Response << "Elapsed" << NiceTimeSpanMs(Stats.ElapsedMS.count()); - }; - - auto WriteReferenceStoreStats = [&](CbObjectWriter& Response, const GcReferenceStoreStats& Stats) { - if (Stats.Count == 0) - { - return; - } - Response << "Count" << Stats.Count; - Response << "Pruned" << Stats.Pruned; - Response << "Compacted" << Stats.Compacted; - - Response << "RemovedDisk" << NiceBytes(Stats.RemovedDisk); - Response << "RemovedMemory" << NiceBytes(Stats.RemovedMemory); - - Response << "CreateReferencePruner" << NiceTimeSpanMs(Stats.CreateReferencePrunerMS.count()); - Response << "RemoveUnreferencedData" << NiceTimeSpanMs(Stats.RemoveUnreferencedDataMS.count()); - Response << "CompactReferenceStore" << NiceTimeSpanMs(Stats.CompactReferenceStoreMS.count()); - Response << "Elapsed" << NiceTimeSpanMs(Stats.ElapsedMS.count()); - }; - - auto WriteGCResult = [&](CbObjectWriter& Response, const GcResult& Result) { - Response << "RemovedDisk" << NiceBytes(Result.RemovedDisk); - Response << "RemovedMemory" << NiceBytes(Result.RemovedMemory); - Response << "WriteBlock" << NiceTimeSpanMs(Result.WriteBlockMS.count()); - Response << "Elapsed" << NiceTimeSpanMs(Result.ElapsedMS.count()); - - if (!Details) - { - return; - } - - Response << "RemoveExpiredData" << NiceTimeSpanMs(Result.RemoveExpiredDataMS.count()); - Response << "CreateReferenceCheckers" << NiceTimeSpanMs(Result.CreateReferenceCheckersMS.count()); - Response << "LockState" << NiceTimeSpanMs(Result.LockStateMS.count()); - - Response << "CreateReferencePruner" << NiceTimeSpanMs(Result.CreateReferencePrunerMS.count()); - Response << "RemoveUnreferencedData" << NiceTimeSpanMs(Result.RemoveUnreferencedDataMS.count()); - Response << "CompactReferenceStore" << NiceTimeSpanMs(Result.CompactReferenceStoreMS.count()); - - Response.BeginObject("ReferencerStats"); - { - WriteReferencerStats(Response, Result.ReferencerStat); - } - Response.EndObject(); - - Response.BeginObject("ReferenceStoreStats"); - { - WriteReferenceStoreStats(Response, Result.ReferenceStoreStat); - } - Response.EndObject(); - - if (!Result.ReferencerStats.empty()) - { - Response.BeginArray("Referencers"); - { - for (const std::pair<std::string, GcReferencerStats>& It : Result.ReferencerStats) - { - Response.BeginObject(); - Response << "Name" << It.first; - WriteReferencerStats(Response, It.second); - Response.EndObject(); - } - } - Response.EndArray(); - } - if (!Result.ReferenceStoreStats.empty()) - { - Response.BeginArray("ReferenceStores"); - for (const std::pair<std::string, GcReferenceStoreStats>& It : Result.ReferenceStoreStats) - { - Response.BeginObject(); - Response << "Name" << It.first; - WriteReferenceStoreStats(Response, It.second); - Response.EndObject(); - } - Response.EndArray(); - } - }; - Response.BeginObject("FullGC"); { Response << "LastTime" << fmt::format("{}", State.LastFullGcTime); @@ -336,7 +241,8 @@ HttpAdminService::HttpAdminService(GcScheduler& Scheduler, } if (State.LastFullGCV2Result) { - WriteGCResult(Response, State.LastFullGCV2Result.value()); + const bool HumanReadable = true; + WriteGCResult(Response, State.LastFullGCV2Result.value(), HumanReadable, Details); } else { @@ -353,7 +259,8 @@ HttpAdminService::HttpAdminService(GcScheduler& Scheduler, if (State.LastLightweightGCV2Result) { - WriteGCResult(Response, State.LastLightweightGCV2Result.value()); + const bool HumanReadable = true; + WriteGCResult(Response, State.LastLightweightGCV2Result.value(), HumanReadable, Details); } else { |