This commit is contained in:
Mateusz Gruszczyński committed 2026-10-03 10:05:46 +02:00
1 parent 5e23e9af02
commit 3883a21bc4
56 files changed
+1640 -403

No files matched your search

+78 -10
View File
@@ -265,6 +265,10 @@
<dt data-i18n="cacheTransientBreakdown">Fill / cold queue / cold I/O</dt>
<dd id="cache-transient-breakdown">-</dd>
</div>
<div>
<dt data-i18n="cacheColdStorageUsage">COLD storage / budget</dt>
<dd id="cache-cold-storage">-</dd>
</div>
<div>
<dt data-i18n="cacheEvictions">Evicted / expired</dt>
<dd id="cache-evictions">-</dd>
@@ -339,6 +343,26 @@
<dt data-i18n="processRssTotal">RSS total</dt>
<dd id="process-rss-total">-</dd>
</div>
<div>
<dt data-i18n="memoryCacheHot">HOT cache RAM / limit</dt>
<dd id="memory-cache-hot">-</dd>
</div>
<div>
<dt data-i18n="memoryCacheTransient">Cache transient RAM / limit</dt>
<dd id="memory-cache-transient">-</dd>
</div>
<div>
<dt data-i18n="memoryTransform">Transform reserved RAM / budget</dt>
<dd id="memory-transform">-</dd>
</div>
<div>
<dt data-i18n="memoryTransformInflight">Active transforms / limit</dt>
<dd id="memory-transform-inflight">-</dd>
</div>
<div>
<dt data-i18n="memoryNonCacheRss">Non-cache process RSS</dt>
<dd id="memory-non-cache-rss">-</dd>
</div>
<div>
<dt data-i18n="processRssAnon">Anonymous RSS</dt>
<dd id="process-rss-anon">-</dd>
@@ -356,8 +380,7 @@
<dd id="cgroup-memory">-</dd>
</div>
</dl>
<p class="fine" data-i18n="memoryAccountingHint">OS RSS categories and RustProxy cache
accounting are overlapping views; do not add them together.</p>
<p class="fine" data-i18n="memoryAccountingHint">RSS is the real process footprint. HOT/transient cache values are RustProxy-accounted allocations; transform memory is a conservative active reservation. Non-cache RSS is RSS minus accounted cache and includes transforms, connections, TLS, logging, Tokio/runtime state, allocator overhead and other buffers, so these rows are not all additive.</p>
<div class="mini-live-chart-stack">
<div class="mini-live-chart">
<div class="mini-live-chart-head"><span data-i18n="processCpuHistory">Process CPU
@@ -1099,6 +1122,10 @@
id="tp-skipped">-</strong><small id="tp-skip-top">-</small></article>
<article class="stat"><span data-i18n="transformErrors">Body/transport errors</span><strong
id="tp-errors">-</strong><small id="tp-duration">-</small></article>
<article class="stat"><span data-i18n="transformMemoryUsage">Transform RAM reservation</span><strong
id="tp-memory">-</strong><small id="tp-memory-detail">-</small></article>
<article class="stat"><span data-i18n="transformConcurrencyUsage">Active transform slots</span><strong
id="tp-inflight">-</strong><small id="tp-inflight-detail">-</small></article>
</div>
<div class="diagnostics-grid transform-diagnostics">
<article class="card">
@@ -1326,7 +1353,7 @@
<option data-i18n="serverCustom" value="custom">Replace / add custom value</option>
</select>
<label data-i18n="serverValue" for="server-value">Custom Server value</label><input
id="server-value" maxlength="256" placeholder="RustProxy/v0.24.5"
id="server-value" maxlength="256" placeholder="RustProxy/v0.24.7"
spellcheck="false" />
<h3 class="subheading" data-i18n="diagnosticHeaders">Diagnostic headers</h3>
<div class="switch-grid">
@@ -1377,8 +1404,9 @@
multipart/unsupported ranges pass through.</p>
<div class="card soft-card cache-memory-sizing">
<div class="card-heading">
<h3 data-i18n="cacheMemorySizingTitle">Memory sizing</h3><span class="pill"
id="cache-memory-detected">-</span>
<h3 data-i18n="cacheMemorySizingTitle">Memory sizing</h3>
<span class="pill" id="cache-memory-preset-selected">-</span>
<span class="pill" id="cache-memory-detected">-</span>
</div>
<p class="fine" data-i18n="cacheMemorySizingHelp">Presets use the effective
memory available to RustProxy (host RAM capped by cgroup when present). They
@@ -1387,7 +1415,7 @@
<div class="form-actions">
<button class="outline" data-cache-memory-preset="conservative"
data-i18n="cachePresetConservative" type="button">Conservative</button>
<button class="primary" data-cache-memory-preset="recommended"
<button class="outline" data-cache-memory-preset="recommended"
data-i18n="cachePresetRecommended" type="button">Recommended</button>
<button class="outline" data-cache-memory-preset="performance"
data-i18n="cachePresetPerformance" type="button">Performance</button>
@@ -1480,6 +1508,17 @@
deterministic sampling and a global concurrency cap to avoid refresh storms.</p>
</div>
<div data-cache-settings-page="cold" hidden>
<div class="card soft-card cache-memory-sizing">
<div class="card-heading">
<h3 data-i18n="cacheColdPresetTitle">COLD policy preset</h3>
<span class="pill" id="cache-cold-preset-selected">-</span>
</div>
<p class="fine" data-i18n="cacheColdPresetHelp">The recommended policy enables idle/LRU/shutdown demotion, uses a queue sized from transient RAM and conservative GC timings. Disk path, disk budget and object limit are left unchanged.</p>
<div class="form-actions">
<button class="outline" data-cache-cold-preset="recommended"
data-i18n="cachePresetRecommended" type="button">Recommended</button>
</div>
</div>
<label class="check"><input id="cache-cold-enabled" type="checkbox" /><span
data-i18n="cacheColdEnable">Enable persistent disk tier</span></label>
<p class="fine" data-i18n="cacheColdHelp">Idle and LRU hot objects are demoted to
@@ -1569,6 +1608,38 @@
<p class="fine" data-i18n="transformHelp">Transformation happens after upstream decoding
and before cache storage and client compression. Each vhost must opt in separately.
</p>
<div class="card soft-card cache-memory-sizing">
<div class="card-heading">
<h3 data-i18n="transformResourcePresetTitle">Resource preset</h3>
<span class="pill" id="transform-preset-selected">-</span>
</div>
<p class="fine" data-i18n="transformResourcePresetHelp">Presets tune the temporary
memory ceiling, maximum transformable response size and global concurrent
transformation limit. Content types and extension allow-lists are left unchanged.</p>
<div class="form-actions">
<button class="outline" data-i18n="transformPresetConservative"
data-transform-preset="conservative" type="button">RAM saver</button>
<button class="outline" data-i18n="transformPresetRecommended"
data-transform-preset="recommended" type="button">Recommended</button>
<button class="outline" data-i18n="transformPresetPerformance"
data-transform-preset="performance" type="button">Performance</button>
<button class="outline" data-i18n="transformPresetUber"
data-transform-preset="uber" type="button">Uber performance</button>
</div>
<p class="fine" id="transform-preset-summary">-</p>
</div>
<p class="fine" id="transform-memory-warning" hidden></p>
<div class="field-grid">
<div><label data-i18n="transformMemoryBudget" for="transform-memory-budget">Temporary
transform memory budget (MiB)</label><input id="transform-memory-budget"
max="2048" min="1" required="" step="1" type="number" /></div>
<div><label data-i18n="transformMaxBody" for="transform-max-body">Maximum transformable
response (KiB)</label><input id="transform-max-body" min="1" max="32768"
required="" type="number" /></div>
<div><label data-i18n="transformMaxInflight" for="transform-max-inflight">Maximum
concurrent transformations</label><input id="transform-max-inflight" min="1"
max="1024" required="" type="number" /></div>
</div>
<div class="switch-grid">
<label class="check"><input id="transform-javascript" type="checkbox" /><span
data-i18n="transformJavascript">JavaScript minification</span></label>
@@ -1584,9 +1655,6 @@
<label data-i18n="transformExtensions" for="transform-extensions">Allowed file
extensions, one per line</label>
<textarea id="transform-extensions" rows="6" spellcheck="false"></textarea>
<label data-i18n="transformMaxBody" for="transform-max-body">Maximum transformable
response (KiB)</label>
<input id="transform-max-body" min="1" max="65536" required="" type="number" />
<p class="fine" data-i18n="transformSafety">Cache-Control: no-transform is always
respected. Transformed representations receive a new ETag and are cached before
gzip, Brotli or zstd encoding.</p>
@@ -1992,7 +2060,7 @@
</section>
</div>
</section>
<footer class="page-footer"><span>RustProxy <b>0.24.5</b></span><span id="footer-status">API - /
<footer class="page-footer"><span>RustProxy <b>0.24.7</b></span><span id="footer-status">API - /
dropped: 0</span></footer>
</div>
</main>