v0.35.1: performance, AGPL licensing and documentation overhaul
- Web Server reads static files inline; proxy middleware chain flattened - About window with license summary and project links; AGPL-3.0-or-later - Rewritten documentation: feature list, screenshots, performance guide - Fix false spikes in per-Vhost request-rate charts
This commit is contained in:
1 parent
d3b492874b
commit
eba9f89283
135 files changed
+1425
-1064
No files matched your search
@@ -1,6 +1,4 @@
|
||||
// One continuity policy for all browser-side counter-derived rates.
|
||||
// Background tabs cannot supply a valid instantaneous rate for an interval
|
||||
// spanning the pause. Keep the plotted history and rebase on the next sample.
|
||||
// Shared rate sampling: rebase after background-tab pauses instead of plotting a false spike.
|
||||
const rustProxyRateSampling = (() => {
|
||||
let generation = 0;
|
||||
const pause = () => { generation += 1; };
|
||||
@@ -19,6 +17,10 @@ const rustProxyRateSampling = (() => {
|
||||
at - previous.at <= Math.max(10000, seconds * 3000));
|
||||
}
|
||||
function difference(previous, values, at, intervalSeconds = 3) {
|
||||
if (previous && previous.generation === generation && Number.isFinite(at) &&
|
||||
Number.isFinite(previous.at) && at >= previous.at && at - previous.at < 250) {
|
||||
return { next: previous, deltas: null, seconds: null, rapid: true };
|
||||
}
|
||||
const next = { ...stamp(at), values: [...values] };
|
||||
if (!continuous(previous, at, intervalSeconds) ||
|
||||
values.some((value, i) => !Number.isFinite(value) || value < 0 ||
|
||||
|
||||
Reference in new issue
Block a user