diff --git a/frameworks/apache/Dockerfile b/frameworks/apache/Dockerfile
deleted file mode 100644
index be1edc1ed..000000000
--- a/frameworks/apache/Dockerfile
+++ /dev/null
@@ -1,41 +0,0 @@
-FROM debian:bookworm-slim
-
-ARG DEBIAN_FRONTEND=noninteractive
-
-# Stock Debian Apache 2.4. mod_lua.so ships with apache2-bin on Debian 12 —
-# no separate libapache2-mod-lua package.
-RUN apt-get update && apt-get install -y --no-install-recommends \
- apache2 \
- ca-certificates \
- && rm -rf /var/lib/apt/lists/*
-
-# We load all needed modules explicitly from httpd.conf, so purge the
-# distro's default site/mod/conf wiring to keep the image deterministic.
-RUN rm -rf /etc/apache2/sites-enabled/* \
- /etc/apache2/conf-enabled/* \
- /etc/apache2/mods-enabled/* \
- /etc/apache2/apache2.conf \
- /etc/apache2/ports.conf
-
-# Drop in our config + lua handlers.
-COPY httpd.conf /etc/apache2/httpd.conf
-COPY baseline11.lua /etc/apache2/baseline11.lua
-COPY pipeline.lua /etc/apache2/pipeline.lua
-
-# Runtime dirs that Apache expects.
-RUN mkdir -p /var/run/apache2 /var/lock/apache2 /var/log/apache2 && \
- chown -R www-data:www-data /var/run/apache2 /var/lock/apache2 /var/log/apache2
-
-EXPOSE 8080
-
-# Apache needs a few envvars defined; /etc/apache2/envvars is the normal
-# shell-sourced file but we pass the equivalents directly and start with
-# apache2ctl in foreground, pointing explicitly at our config.
-ENV APACHE_RUN_USER=www-data \
- APACHE_RUN_GROUP=www-data \
- APACHE_PID_FILE=/var/run/apache2/apache2.pid \
- APACHE_RUN_DIR=/var/run/apache2 \
- APACHE_LOCK_DIR=/var/lock/apache2 \
- APACHE_LOG_DIR=/var/log/apache2
-
-CMD ["apache2", "-D", "FOREGROUND", "-f", "/etc/apache2/httpd.conf"]
diff --git a/frameworks/apache/README.md b/frameworks/apache/README.md
deleted file mode 100644
index 14fda1f83..000000000
--- a/frameworks/apache/README.md
+++ /dev/null
@@ -1,30 +0,0 @@
-# apache
-
-Stock Debian Apache HTTPD 2.4 with the event MPM and `mod_lua`. The
-dynamic `/baseline11` handler is a short Lua script invoked via
-`LuaMapHandler`; static files under `/static/` are served directly by
-`mod_alias` + Apache core.
-
-## Stack
-
-- **Language:** C (Apache core) + Lua (handler)
-- **Engine:** Apache HTTPD 2.4
-- **MPM:** event (async keepalive)
-
-## Endpoints
-
-| Endpoint | Method | Description |
-|----------|--------|-------------|
-| `/baseline11` | GET | Sum of integer query args |
-| `/baseline11` | POST | Sum of integer query args + integer body |
-| `/static/{filename}` | GET | Serves files from `/data/static/` |
-
-## Notes
-
-- No custom C modules or source builds; everything comes from
- `apache2` + `libapache2-mod-lua` in Debian bookworm.
-- `MaxRequestWorkers=1024` across up to 32 children (32 threads each).
- The event MPM keeps idle keepalive connections off worker threads,
- so 1024 in-flight slots comfortably cover the benchmark's 4096
- concurrent-connection ceiling.
-- Access log disabled; `EnableMMAP`/`EnableSendfile` on for `/static/`.
diff --git a/frameworks/apache/baseline11.lua b/frameworks/apache/baseline11.lua
deleted file mode 100644
index 14b337f27..000000000
--- a/frameworks/apache/baseline11.lua
+++ /dev/null
@@ -1,45 +0,0 @@
--- mod_lua handler for GET|POST /baseline11
---
--- Contract:
--- - Sum all integer query parameter values (a, b, ...).
--- - If method is POST and a body is present, parse it as an integer
--- and add to the sum.
--- - Respond 200 text/plain with the decimal sum (no trailing newline).
-
-local function to_int(v)
- if v == nil then return 0 end
- local n = tonumber(v)
- if n == nil then return 0 end
- -- Truncate toward zero for floats; benchmarks only send integers.
- if n >= 0 then
- return math.floor(n)
- else
- return -math.floor(-n)
- end
-end
-
-function handle(r)
- local sum = 0
-
- -- Query args: r:parseargs() returns (table, multitable); the first is
- -- the last-value map, which is what array_sum-style behavior expects.
- local args = r:parseargs()
- if args ~= nil then
- for _, v in pairs(args) do
- sum = sum + to_int(v)
- end
- end
-
- -- POST body: r:parsebody() handles application/x-www-form-urlencoded and
- -- multipart. For raw integer bodies (text/plain), read r:requestbody().
- if r.method == "POST" then
- local body = r:requestbody()
- if body ~= nil and #body > 0 then
- sum = sum + to_int(body)
- end
- end
-
- r.content_type = "text/plain"
- r:puts(tostring(sum))
- return apache2.OK
-end
diff --git a/frameworks/apache/httpd.conf b/frameworks/apache/httpd.conf
deleted file mode 100644
index 3c9d96e79..000000000
--- a/frameworks/apache/httpd.conf
+++ /dev/null
@@ -1,111 +0,0 @@
-# Apache HTTPD 2.4 config for HttpArena
-#
-# Deterministic module loading (no reliance on conf-enabled/).
-# event MPM for async worker model, mod_lua for the /baseline11 handler.
-
-ServerRoot "/etc/apache2"
-PidFile /var/run/apache2/apache2.pid
-DefaultRuntimeDir /var/run/apache2
-ServerName localhost
-ServerTokens Prod
-ServerSignature Off
-
-User www-data
-Group www-data
-
-Listen 8080
-
-# --- Core modules required just to boot -------------------------------------
-LoadModule mpm_event_module /usr/lib/apache2/modules/mod_mpm_event.so
-LoadModule authz_core_module /usr/lib/apache2/modules/mod_authz_core.so
-LoadModule mime_module /usr/lib/apache2/modules/mod_mime.so
-LoadModule dir_module /usr/lib/apache2/modules/mod_dir.so
-LoadModule alias_module /usr/lib/apache2/modules/mod_alias.so
-LoadModule headers_module /usr/lib/apache2/modules/mod_headers.so
-LoadModule lua_module /usr/lib/apache2/modules/mod_lua.so
-
-# --- MPM event tuning -------------------------------------------------------
-# Benchmarks push up to 4096 concurrent connections; we need enough worker
-# threads across enough child processes to cover that without queuing.
-# event MPM keeps idle keepalive connections off the worker threads, so the
-# thread pool only needs to cover in-flight requests, not total connections.
-
- StartServers 4
- ServerLimit 32
- ThreadLimit 64
- ThreadsPerChild 32
- MaxRequestWorkers 1024
- MinSpareThreads 64
- MaxSpareThreads 512
- MaxConnectionsPerChild 0
- AsyncRequestWorkerFactor 4
-
-
-# --- HTTP knobs -------------------------------------------------------------
-Timeout 30
-KeepAlive On
-KeepAliveTimeout 65
-MaxKeepAliveRequests 1000000
-
-HostnameLookups Off
-UseCanonicalName Off
-AccessFileName .htaccess
-
- Require all denied
-
-
-# Access log disabled for benchmark; errors still go to stderr.
-ErrorLog /dev/stderr
-# authz_core logs every 403 at error level. A single missing block
-# could otherwise spam the log at request rate (~500K/s × 15s × 3 runs ≈ 2 GB).
-# Silence authz_core's error-level lines while keeping real errors elsewhere.
-LogLevel error authz_core:crit
-
-EnableMMAP on
-EnableSendfile on
-
-# --- MIME types -------------------------------------------------------------
-TypesConfig /etc/mime.types
-AddType text/html html htm
-AddType text/css css
-AddType application/javascript js
-AddType application/json json
-AddType image/svg+xml svg
-AddType image/webp webp
-AddType font/woff2 woff2
-AddType image/png png
-AddType image/jpeg jpg jpeg
-
-# --- Document roots / handlers ---------------------------------------------
-DocumentRoot /var/www/html
-
- AllowOverride None
- Require all denied
-
-
-# Static files: /static/ -> /data/static/
-Alias /static/ /data/static/
-
- AllowOverride None
- Options -Indexes -MultiViews +FollowSymLinks
- Require all granted
- # Suppress Last-Modified to keep responses tight (matches nginx config).
- Header unset Last-Modified
- Header unset ETag
- FileETag None
-
-
-# Dynamic endpoint: /baseline11 -> mod_lua handle() in baseline11.lua.
-# LuaMapHandler takes a URI regex and maps it to script + function.
-# The block is required because denies by default
-# and authorization runs before the handler phase.
-
- Require all granted
-
-LuaMapHandler "^/baseline11(/.*)?$" /etc/apache2/baseline11.lua handle
-
-# Pipelined profile: GET /pipeline -> fixed "ok" via mod_lua.
-
- Require all granted
-
-LuaMapHandler "^/pipeline$" /etc/apache2/pipeline.lua handle
diff --git a/frameworks/apache/meta.json b/frameworks/apache/meta.json
deleted file mode 100644
index f30e88cb8..000000000
--- a/frameworks/apache/meta.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "display_name": "apache",
- "language": "C",
- "type": "infrastructure",
- "engine": "apache",
- "description": "Apache HTTPD 2.4 with event MPM and mod_lua for the dynamic /baseline11 handler. Native file serving for /static/.",
- "repo": "https://github.com/apache/httpd",
- "enabled": true,
- "tests": ["baseline", "pipelined", "limited-conn", "static"],
- "maintainers": []
-}
diff --git a/frameworks/apache/pipeline.lua b/frameworks/apache/pipeline.lua
deleted file mode 100644
index 3a90551b1..000000000
--- a/frameworks/apache/pipeline.lua
+++ /dev/null
@@ -1,10 +0,0 @@
--- mod_lua handler for GET /pipeline — fixed "ok" body, text/plain.
--- Used by the pipelined profile (16 requests per batch via HTTP/1.1
--- pipelining); response is short enough that many responses fit in a
--- single TCP write.
-
-function handle(r)
- r.content_type = "text/plain"
- r:puts("ok")
- return apache2.OK
-end
diff --git a/frameworks/caddy/Caddyfile b/frameworks/caddy/Caddyfile
deleted file mode 100644
index f4e2d6a85..000000000
--- a/frameworks/caddy/Caddyfile
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- admin off
- auto_https off
- log {
- output discard
- }
- order httparena before respond
- servers {
- protocols h1 h2
- }
-}
-
-:8080 {
- # Custom Go handler compiled in via xcaddy — matches nginx's
- # ngx_http_httparena_module and h2o's on_baseline11 behavior.
- @baseline11 path /baseline11
- handle @baseline11 {
- httparena
- }
-
- # Pipelined profile: fixed "ok" response. Inline respond avoids
- # the httparena module's query-parsing overhead — critical at 16
- # pipelined requests per batch.
- @pipeline path /pipeline
- handle @pipeline {
- header Content-Type text/plain
- respond "ok" 200
- }
-
- # Static files mounted read-only at /data/static by the benchmark
- # harness. handle_path strips the /static/ prefix so file_server
- # resolves directly against /data/static/.
- handle_path /static/* {
- root * /data/static
- file_server
- }
-
- handle {
- respond "Not Found" 404
- }
-}
diff --git a/frameworks/caddy/Dockerfile b/frameworks/caddy/Dockerfile
deleted file mode 100644
index f0ae0f0d1..000000000
--- a/frameworks/caddy/Dockerfile
+++ /dev/null
@@ -1,36 +0,0 @@
-ARG GO_VERSION=1.22-bookworm
-
-# Stage 1: build a custom caddy binary with the httparena handler module
-# compiled in. xcaddy's `--with module=./local/path` form uses a go.mod
-# `replace` under the hood, so the local module path does not need to be
-# a real importable URL.
-FROM golang:${GO_VERSION} AS build
-
-RUN go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest
-
-WORKDIR /src
-COPY httparena/ ./httparena/
-
-# xcaddy synthesizes a tiny main package that imports the module by its
-# declared path and uses `replace` to point at /src/httparena. The local
-# module's go.mod only needs to declare its own path and the caddy/v2
-# dependency; xcaddy drives `go build` from there.
-RUN mkdir -p /out && \
- xcaddy build v2.8.4 \
- --with github.com/mda2av/httparena-caddy/httparena=/src/httparena \
- --output /out/caddy
-
-# Stage 2: slim runtime. Caddy is a single static-ish binary; we just need
-# CA certs for TLS (unused here with auto_https off, but cheap to keep).
-FROM debian:bookworm-slim
-
-RUN apt-get update && apt-get install -y --no-install-recommends \
- ca-certificates && \
- rm -rf /var/lib/apt/lists/*
-
-COPY --from=build /out/caddy /caddy
-COPY Caddyfile /etc/caddy/Caddyfile
-
-EXPOSE 8080
-
-CMD ["/caddy", "run", "--config", "/etc/caddy/Caddyfile", "--adapter", "caddyfile"]
diff --git a/frameworks/caddy/README.md b/frameworks/caddy/README.md
deleted file mode 100644
index 10f9309da..000000000
--- a/frameworks/caddy/README.md
+++ /dev/null
@@ -1,25 +0,0 @@
-# caddy
-
-Caddy with a custom Go handler module (`httparena`) compiled into the caddy binary via `xcaddy`. Static files are served by Caddy's native `file_server`.
-
-## Stack
-
-- **Language:** Go
-- **Engine:** Caddy v2.8.x
-- **Build:** `golang:1.22-bookworm` (xcaddy) -> `debian:bookworm-slim` runtime
-
-## Endpoints
-
-| Endpoint | Method | Description |
-|----------|--------|-------------|
-| `/baseline11` | GET | Sums query parameter values |
-| `/baseline11` | POST | Sums query parameters + request body |
-| `/static/{filename}` | GET | Serves static files from `/data/static` |
-
-## Notes
-
-- `httparena/` is a self-contained Go module; `xcaddy build --with =./httparena` plugs it into the caddy binary at build time.
-- The handler accepts only GET and POST; other methods get `405`.
-- Query values that fail to parse as `int64` are skipped (matches nginx/h2o reference behavior).
-- HTTP/1.1 on port 8080. No TLS, no HTTP/3.
-- `auto_https off`, `admin off`, access log discarded.
diff --git a/frameworks/caddy/httparena/go.mod b/frameworks/caddy/httparena/go.mod
deleted file mode 100644
index 1b320ba17..000000000
--- a/frameworks/caddy/httparena/go.mod
+++ /dev/null
@@ -1,5 +0,0 @@
-module github.com/mda2av/httparena-caddy/httparena
-
-go 1.22
-
-require github.com/caddyserver/caddy/v2 v2.8.4
diff --git a/frameworks/caddy/httparena/httparena.go b/frameworks/caddy/httparena/httparena.go
deleted file mode 100644
index 557d39a9f..000000000
--- a/frameworks/caddy/httparena/httparena.go
+++ /dev/null
@@ -1,119 +0,0 @@
-// Package httparena provides a Caddy HTTP handler module implementing the
-// HttpArena /baseline11 contract: sum integer query parameters (and, for
-// POST, the request body parsed as an integer), respond with the decimal
-// sum as text/plain, no trailing newline.
-//
-// This is Caddy's native extension surface — the Go equivalent of nginx's
-// C modules or h2o's mruby handlers — compiled into the caddy binary via
-// xcaddy at build time.
-package httparena
-
-import (
- "bytes"
- "fmt"
- "io"
- "net/http"
- "strconv"
-
- "github.com/caddyserver/caddy/v2"
- "github.com/caddyserver/caddy/v2/caddyconfig/caddyfile"
- "github.com/caddyserver/caddy/v2/caddyconfig/httpcaddyfile"
- "github.com/caddyserver/caddy/v2/modules/caddyhttp"
-)
-
-// maxBodyBytes caps the POST body we'll read. The contract only asks for a
-// single integer so anything past a few bytes is noise; 64 KB is generous.
-const maxBodyBytes = 64 * 1024
-
-// HttpArena is the Caddy handler module implementing /baseline11.
-// It has no configuration — the Caddyfile directive `httparena` takes no
-// arguments.
-type HttpArena struct{}
-
-// CaddyModule registers the module with Caddy under the id
-// `http.handlers.httparena`, which matches the Caddyfile directive name.
-func (HttpArena) CaddyModule() caddy.ModuleInfo {
- return caddy.ModuleInfo{
- ID: "http.handlers.httparena",
- New: func() caddy.Module { return new(HttpArena) },
- }
-}
-
-// ServeHTTP implements the /baseline11 contract. GET and POST only; anything
-// else gets a 405. Query args are summed as int64, invalid values skipped.
-// For POST, the body (capped at maxBodyBytes) is parsed as an integer and
-// added. Response is text/plain with the decimal sum and no trailing newline.
-func (HttpArena) ServeHTTP(w http.ResponseWriter, r *http.Request, _ caddyhttp.Handler) error {
- if r.Method != http.MethodGet && r.Method != http.MethodPost {
- w.Header().Set("Content-Type", "text/plain")
- w.WriteHeader(http.StatusMethodNotAllowed)
- _, _ = io.WriteString(w, "Method Not Allowed")
- return nil
- }
-
- var sum int64
- for _, values := range r.URL.Query() {
- for _, v := range values {
- n, err := strconv.ParseInt(v, 10, 64)
- if err != nil {
- continue
- }
- sum += n
- }
- }
-
- if r.Method == http.MethodPost && r.Body != nil {
- body, err := io.ReadAll(io.LimitReader(r.Body, maxBodyBytes))
- if err == nil && len(body) > 0 {
- n, err := strconv.ParseInt(string(bytes.TrimSpace(body)), 10, 64)
- if err == nil {
- sum += n
- }
- }
- }
-
- out := strconv.FormatInt(sum, 10)
- w.Header().Set("Content-Type", "text/plain")
- w.Header().Set("Content-Length", strconv.Itoa(len(out)))
- w.WriteHeader(http.StatusOK)
- if _, err := io.WriteString(w, out); err != nil {
- return fmt.Errorf("httparena: write response: %w", err)
- }
- return nil
-}
-
-// parseCaddyfile wires the `httparena` directive into the handler. The
-// directive takes no arguments.
-func parseCaddyfile(h httpcaddyfile.Helper) (caddyhttp.MiddlewareHandler, error) {
- // Consume the directive token (and reject any args/blocks).
- for h.Next() {
- if h.NextArg() {
- return nil, h.ArgErr()
- }
- }
- return HttpArena{}, nil
-}
-
-// UnmarshalCaddyfile satisfies caddyfile.Unmarshaler so the module plays
-// nicely with JSON-based configs that reference it by name.
-func (HttpArena) UnmarshalCaddyfile(d *caddyfile.Dispenser) error {
- for d.Next() {
- if d.NextArg() {
- return d.ArgErr()
- }
- }
- return nil
-}
-
-func init() {
- caddy.RegisterModule(HttpArena{})
- httpcaddyfile.RegisterHandlerDirective("httparena", parseCaddyfile)
-}
-
-// Interface guards — compile-time checks that HttpArena satisfies the
-// interfaces Caddy expects from a middleware handler module.
-var (
- _ caddy.Module = (*HttpArena)(nil)
- _ caddyhttp.MiddlewareHandler = (*HttpArena)(nil)
- _ caddyfile.Unmarshaler = (*HttpArena)(nil)
-)
diff --git a/frameworks/caddy/meta.json b/frameworks/caddy/meta.json
deleted file mode 100644
index 8928dfba1..000000000
--- a/frameworks/caddy/meta.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "display_name": "caddy",
- "language": "Go",
- "type": "infrastructure",
- "engine": "caddy",
- "description": "Caddy with a custom Go handler module for /baseline11, compiled via xcaddy. Native file_server for /static.",
- "repo": "https://github.com/caddyserver/caddy",
- "enabled": true,
- "tests": ["baseline", "pipelined", "limited-conn", "static"],
- "maintainers": []
-}
diff --git a/frameworks/envoy/Dockerfile b/frameworks/envoy/Dockerfile
deleted file mode 100644
index 666af4382..000000000
--- a/frameworks/envoy/Dockerfile
+++ /dev/null
@@ -1,11 +0,0 @@
-FROM envoyproxy/envoy:v1.30-latest
-
-COPY envoy.yaml /etc/envoy/envoy.yaml
-
-EXPOSE 8080
-
-# --concurrency must match the benchmark cpuset (scripts/lib/profiles.sh:
-# "0-31,64-95" = 64 logical CPUs for infrastructure-tier profiles). Envoy's
-# --concurrency 0 means "zero worker threads; serve on the main dispatcher",
-# which pins throughput to a single core regardless of cpuset width.
-CMD ["envoy", "-c", "/etc/envoy/envoy.yaml", "--concurrency", "64"]
diff --git a/frameworks/envoy/README.md b/frameworks/envoy/README.md
deleted file mode 100644
index 8952a8f7b..000000000
--- a/frameworks/envoy/README.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# envoy
-
-Envoy proxy acting as a standalone HTTP/1.1 server. The `/baseline11` dynamic
-endpoint is handled entirely inside an inline Lua HTTP filter — no upstream
-cluster is contacted for that route. Static files under `/static/` are
-served using one `direct_response` route per file, with `body.filename`
-pointing at `/data/static/` (the mount used by every framework in this
-repo).
-
-## Stack
-
-- **Engine:** envoyproxy/envoy:v1.30-latest (Docker image)
-- **Language:** C++ (Envoy core); inline Lua for the dynamic handler
-- **Config:** single `envoy.yaml` bootstrap, self-contained (no external files)
-
-## Endpoints
-
-| Endpoint | Method | Description |
-|----------|--------|-------------|
-| `/baseline11` | GET | Sums query parameter integer values |
-| `/baseline11` | POST | Sums query parameters + parsed request body |
-| `/static/{filename}` | GET | Streams a file from `/data/static/` |
-
-## Notes
-
-- Envoy has no native static file server, so each static asset is enumerated
- as its own `direct_response` route. `body.filename` on `direct_response`
- requires Envoy **v1.19+** and streams the mounted file at request time.
-- The Lua filter short-circuits the request with `request_handle:respond(...)`,
- so the `local_cluster` defined in the config is never actually dialed.
-- `--concurrency 0` tells Envoy to auto-size worker threads to the CPU count.
diff --git a/frameworks/envoy/envoy.yaml b/frameworks/envoy/envoy.yaml
deleted file mode 100644
index 21f6dce35..000000000
--- a/frameworks/envoy/envoy.yaml
+++ /dev/null
@@ -1,263 +0,0 @@
-admin:
- access_log:
- - name: envoy.access_loggers.file
- typed_config:
- "@type": type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog
- path: /dev/null
- address:
- socket_address:
- address: 127.0.0.1
- port_value: 9901
-
-static_resources:
- listeners:
- - name: main
- address:
- socket_address:
- address: 0.0.0.0
- port_value: 8080
- # SO_REUSEPORT per-worker accept socket so the kernel balances connections
- # across workers. Default is true in v1.30+, set explicitly for clarity.
- enable_reuse_port: true
- # Default (1 MiB) is plenty — /baseline11 responses are <32 bytes and the
- # upload profile is not in envoy's test subscriptions. 32 MiB × 4096 conns
- # is a 128 GiB commit ceiling that never fires but costs bookkeeping.
- per_connection_buffer_limit_bytes: 1048576
- filter_chains:
- - filters:
- - name: envoy.filters.network.http_connection_manager
- typed_config:
- "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
- stat_prefix: ingress_http
- codec_type: HTTP1
- use_remote_address: false
- skip_xff_append: true
- # Benchmark paths are clean (/baseline11, /pipeline, /static/)
- # so path canonicalization is pure overhead.
- normalize_path: false
- merge_slashes: false
- server_header_transformation: PASS_THROUGH
- common_http_protocol_options:
- max_connection_duration: 0s
- max_headers_count: 100
- http_protocol_options:
- accept_http_10: false
- allow_chunked_length: true
- http_filters:
- - name: envoy.filters.http.lua
- typed_config:
- "@type": type.googleapis.com/envoy.extensions.filters.http.lua.v3.Lua
- default_source_code:
- inline_string: |
- -- Parse an integer from a substring between [s, e).
- -- Returns the integer value; ignores leading whitespace and
- -- trailing non-digit characters, matching nginx/h2o reference.
- local function parse_int(str, s, e)
- local n = 0
- local neg = false
- local i = s
- -- skip leading whitespace
- while i <= e do
- local c = string.byte(str, i)
- if c ~= 32 and c ~= 9 and c ~= 13 and c ~= 10 then
- break
- end
- i = i + 1
- end
- if i <= e and string.byte(str, i) == 45 then -- '-'
- neg = true
- i = i + 1
- end
- while i <= e do
- local c = string.byte(str, i)
- if c < 48 or c > 57 then break end
- n = n * 10 + (c - 48)
- i = i + 1
- end
- if neg then return -n end
- return n
- end
-
- -- Sum all `=` values in a query string like "a=1&b=2".
- local function sum_query(q)
- if q == nil or #q == 0 then return 0 end
- local sum = 0
- local len = #q
- local i = 1
- while i <= len do
- local eq = string.find(q, "=", i, true)
- if eq == nil then break end
- local v = eq + 1
- local amp = string.find(q, "&", v, true)
- local e
- if amp == nil then
- e = len
- else
- e = amp - 1
- end
- sum = sum + parse_int(q, v, e)
- if amp == nil then
- break
- else
- i = amp + 1
- end
- end
- return sum
- end
-
- -- Split the request path into the path portion and the raw
- -- query string (without the leading '?').
- local function split_path(p)
- if p == nil then return "", "" end
- local q = string.find(p, "?", 1, true)
- if q == nil then return p, "" end
- return string.sub(p, 1, q - 1), string.sub(p, q + 1)
- end
-
- -- Static file cache, populated lazily on first hit per worker.
- -- Envoy's direct_response.body.filename caps at 4096 bytes, so
- -- we serve /static/* through the Lua filter instead.
- if static_cache == nil then
- static_cache = {}
- mime_by_ext = {
- css = "text/css",
- js = "application/javascript",
- html = "text/html",
- json = "application/json",
- svg = "image/svg+xml",
- webp = "image/webp",
- woff2 = "font/woff2",
- png = "image/png",
- jpg = "image/jpeg",
- jpeg = "image/jpeg",
- }
- end
-
- local function ext_of(name)
- local dot = name:match(".*()%.")
- if dot == nil then return "" end
- return string.sub(name, dot + 1)
- end
-
- local function load_static(name)
- local hit = static_cache[name]
- if hit ~= nil then return hit end
- local f = io.open("/data/static/" .. name, "rb")
- if f == nil then return nil end
- local data = f:read("*a")
- f:close()
- local ct = mime_by_ext[ext_of(name)] or "application/octet-stream"
- local entry = { body = data, ct = ct }
- static_cache[name] = entry
- return entry
- end
-
- function envoy_on_request(request_handle)
- local hdrs = request_handle:headers()
- local full_path = hdrs:get(":path") or ""
- local path, query = split_path(full_path)
-
- if path == "/baseline11" then
- local method = hdrs:get(":method") or "GET"
- if method ~= "GET" and method ~= "POST" and method ~= "HEAD" then
- request_handle:respond(
- {[":status"] = "405",
- ["content-type"] = "text/plain"},
- "Method Not Allowed")
- return
- end
- local sum = sum_query(query)
- if method == "POST" then
- local body = request_handle:body()
- if body ~= nil and body:length() > 0 then
- local buf = body:getBytes(0, body:length())
- sum = sum + parse_int(buf, 1, #buf)
- end
- end
- request_handle:respond(
- {[":status"] = "200",
- ["content-type"] = "text/plain"},
- tostring(sum))
- return
- end
-
- if string.sub(path, 1, 8) == "/static/" then
- local name = string.sub(path, 9)
- -- Reject any traversal attempt.
- if string.find(name, "..", 1, true) ~= nil then
- request_handle:respond(
- {[":status"] = "403", ["content-type"] = "text/plain"},
- "Forbidden")
- return
- end
- local f = load_static(name)
- if f == nil then
- request_handle:respond(
- {[":status"] = "404", ["content-type"] = "text/plain"},
- "Not Found")
- return
- end
- request_handle:respond(
- {[":status"] = "200", ["content-type"] = f.ct},
- f.body)
- return
- end
-
- -- Fall through — router will 404 via direct_response.
- end
- - name: envoy.filters.http.router
- typed_config:
- "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
- suppress_envoy_headers: true
- route_config:
- name: local_route
- virtual_hosts:
- - name: default
- domains: ["*"]
- response_headers_to_remove: ["x-envoy-upstream-service-time", "date", "server"]
- routes:
- # /baseline11 — Lua filter intercepts and responds before this
- # route is used. The direct_response here is a safety net in case
- # the filter does not short-circuit.
- - match: { path: "/baseline11" }
- direct_response:
- status: 200
- body: { inline_string: "0" }
- response_headers_to_add:
- - header: { key: "content-type", value: "text/plain" }
-
- # /pipeline — fixed "ok" response. Route-level direct_response
- # is cheaper than sending every request through the Lua VM.
- # The Lua filter falls through for this path so the router
- # handles it directly.
- - match: { path: "/pipeline" }
- direct_response:
- status: 200
- body: { inline_string: "ok" }
- response_headers_to_add:
- - header: { key: "content-type", value: "text/plain" }
-
- # /static/* is served by the Lua filter above (envoy's
- # direct_response.body.filename has a 4KB size cap).
-
- # Catch-all 404
- - match: { prefix: "/" }
- direct_response:
- status: 404
- body: { inline_string: "Not Found" }
- response_headers_to_add:
- - header: { key: "content-type", value: "text/plain" }
-
- # No upstream clusters are actually dialed — the Lua filter short-circuits
- # /baseline11 with respond(), and every other route is a direct_response.
- clusters: []
-
-layered_runtime:
- layers:
- - name: static_layer
- static_layer:
- envoy:
- resource_limits:
- listener:
- main:
- connection_limit: 1048576
diff --git a/frameworks/envoy/meta.json b/frameworks/envoy/meta.json
deleted file mode 100644
index 89c7cfe30..000000000
--- a/frameworks/envoy/meta.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "display_name": "envoy",
- "language": "C++",
- "type": "infrastructure",
- "engine": "envoy",
- "description": "Envoy proxy with an inline Lua HTTP filter for /baseline11 and direct_response routes for /static files.",
- "repo": "https://github.com/envoyproxy/envoy",
- "enabled": true,
- "tests": ["baseline", "pipelined", "limited-conn", "static"],
- "maintainers": []
-}
diff --git a/frameworks/h2o-h2c/CMakeLists.txt b/frameworks/h2o-h2c/CMakeLists.txt
deleted file mode 100644
index 97f55faa8..000000000
--- a/frameworks/h2o-h2c/CMakeLists.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-cmake_minimum_required(VERSION 3.16)
-project(h2o_h2c C)
-
-set(CMAKE_C_STANDARD 11)
-
-add_executable(h2o-h2c-app src/main.c)
-
-target_include_directories(h2o-h2c-app PRIVATE /usr/local/include)
-target_link_directories(h2o-h2c-app PRIVATE /usr/local/lib)
-target_link_libraries(h2o-h2c-app PRIVATE h2o-evloop ssl crypto cjson pthread m)
diff --git a/frameworks/h2o-h2c/Dockerfile b/frameworks/h2o-h2c/Dockerfile
deleted file mode 100644
index db0051d17..000000000
--- a/frameworks/h2o-h2c/Dockerfile
+++ /dev/null
@@ -1,39 +0,0 @@
-FROM buildpack-deps:bookworm AS build
-
-RUN apt-get update && apt-get install -y --no-install-recommends \
- cmake clang libssl-dev zlib1g-dev libuv1-dev libbrotli-dev libcjson-dev
-
-# Build h2o from source (same pin as the infrastructure h2o entry)
-ARG H2O_VERSION=ccea64b17ade832753db933658047ede9f31a380
-WORKDIR /tmp/h2o
-RUN curl -LSs "https://github.com/h2o/h2o/archive/${H2O_VERSION}.tar.gz" | \
- tar --strip-components=1 -xz && \
- cmake -B build \
- -DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_C_COMPILER=clang \
- -DCMAKE_C_FLAGS="-flto=auto -march=native -mtune=native" \
- -DWITH_MRUBY=off \
- -S . && \
- cmake --build build -j && \
- cmake --install build
-
-# Build app
-COPY CMakeLists.txt /app/
-COPY src /app/src/
-WORKDIR /app/build
-RUN cmake \
- -DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_C_COMPILER=clang \
- -DCMAKE_C_FLAGS="-flto=auto -march=native -mtune=native" \
- -S .. && \
- cmake --build . -j
-
-FROM debian:bookworm-slim
-RUN apt-get update && apt-get install -y --no-install-recommends \
- libssl3 libbrotli1 libcjson1 && \
- rm -rf /var/lib/apt/lists/*
-COPY --from=build /usr/local/lib/libh2o-evloop.so* /usr/local/lib/
-COPY --from=build /app/build/h2o-h2c-app /server
-RUN ldconfig
-EXPOSE 8082
-CMD ["/server"]
diff --git a/frameworks/h2o-h2c/meta.json b/frameworks/h2o-h2c/meta.json
deleted file mode 100644
index 3d4d70da7..000000000
--- a/frameworks/h2o-h2c/meta.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "display_name": "h2o",
- "language": "C",
- "type": "infrastructure",
- "engine": "h2o",
- "description": "libh2o evloop with a dedicated h2c-only listener on port 8082. The accept callback calls h2o_http2_accept directly instead of h2o_accept, so the connection must begin with the HTTP/2 client preface — plain HTTP/1.1 clients are dropped at protocol negotiation. Handlers for /baseline2 (query sum) and /json/{count} (serialized via cJSON).",
- "repo": "https://github.com/h2o/h2o",
- "enabled": true,
- "tests": [
- "baseline-h2c",
- "json-h2c"
- ],
- "maintainers": []
-}
diff --git a/frameworks/h2o-h2c/src/main.c b/frameworks/h2o-h2c/src/main.c
deleted file mode 100644
index 5ad4d621b..000000000
--- a/frameworks/h2o-h2c/src/main.c
+++ /dev/null
@@ -1,278 +0,0 @@
-#define H2O_USE_LIBUV 0
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-static h2o_globalconf_t globalconf;
-
-/* Dataset loaded once at startup; shared read-only across threads. */
-static cJSON *dataset = NULL;
-static int dataset_size = 0;
-
-static void load_dataset(void)
-{
- const char *path = getenv("DATASET_PATH");
- if (!path) path = "/data/dataset.json";
- FILE *f = fopen(path, "rb");
- if (!f) return;
- fseek(f, 0, SEEK_END);
- long sz = ftell(f);
- fseek(f, 0, SEEK_SET);
- if (sz <= 0) { fclose(f); return; }
- char *buf = malloc((size_t)sz + 1);
- if (!buf) { fclose(f); return; }
- if (fread(buf, 1, sz, f) != (size_t)sz) { free(buf); fclose(f); return; }
- buf[sz] = '\0';
- fclose(f);
- dataset = cJSON_Parse(buf);
- free(buf);
- if (dataset && cJSON_IsArray(dataset)) {
- dataset_size = cJSON_GetArraySize(dataset);
- }
-}
-
-static int64_t sum_query_values(h2o_req_t *req)
-{
- if (req->query_at == SIZE_MAX) return 0;
- int64_t sum = 0;
- const char *p = req->path.base + req->query_at + 1;
- const char *end = req->path.base + req->path.len;
- while (p < end) {
- const char *eq = memchr(p, '=', end - p);
- if (!eq) break;
- const char *v = eq + 1;
- const char *amp = memchr(v, '&', end - v);
- if (!amp) amp = end;
- char *ep;
- long long n = strtoll(v, &ep, 10);
- if (ep > v && ep <= amp) sum += n;
- p = amp < end ? amp + 1 : end;
- }
- return sum;
-}
-
-static int read_m_param(h2o_req_t *req)
-{
- if (req->query_at == SIZE_MAX) return 1;
- const char *p = req->path.base + req->query_at + 1;
- const char *end = req->path.base + req->path.len;
- while (p < end) {
- const char *eq = memchr(p, '=', end - p);
- if (!eq) break;
- const char *v = eq + 1;
- const char *amp = memchr(v, '&', end - v);
- if (!amp) amp = end;
- if (eq - p == 1 && *p == 'm') {
- char *ep;
- long n = strtol(v, &ep, 10);
- if (ep > v && ep <= amp) return n == 0 ? 1 : (int)n;
- }
- p = amp < end ? amp + 1 : end;
- }
- return 1;
-}
-
-static inline int reject_bad_method(h2o_req_t *req)
-{
- if (h2o_memis(req->method.base, req->method.len, H2O_STRLIT("GET"))) return 0;
- req->res.status = 405;
- req->res.reason = "Method Not Allowed";
- req->res.content_length = 18;
- h2o_add_header(&req->pool, &req->res.headers, H2O_TOKEN_CONTENT_TYPE,
- NULL, H2O_STRLIT("text/plain"));
- h2o_generator_t gen;
- memset(&gen, 0, sizeof(gen));
- h2o_iovec_t body = {H2O_STRLIT("Method Not Allowed")};
- h2o_start_response(req, &gen);
- h2o_send(req, &body, 1, H2O_SEND_STATE_FINAL);
- return 1;
-}
-
-/* GET /baseline2 — sum a+b (same semantics as the h1 /baseline11 GET path). */
-static int on_baseline2(h2o_handler_t *h, h2o_req_t *req)
-{
- (void)h;
- if (reject_bad_method(req)) return 0;
- int64_t sum = sum_query_values(req);
- char buf[32];
- int len = snprintf(buf, sizeof(buf), "%lld", (long long)sum);
- h2o_generator_t gen;
- memset(&gen, 0, sizeof(gen));
- h2o_iovec_t body = h2o_iovec_init(buf, len);
- req->res.status = 200;
- req->res.reason = "OK";
- req->res.content_length = len;
- h2o_add_header(&req->pool, &req->res.headers, H2O_TOKEN_CONTENT_TYPE,
- NULL, H2O_STRLIT("text/plain"));
- h2o_start_response(req, &gen);
- h2o_send(req, &body, 1, H2O_SEND_STATE_FINAL);
- return 0;
-}
-
-/* GET /json/{count}?m=M — serialize first N items with total=price*quantity*m. */
-static int on_json(h2o_handler_t *h, h2o_req_t *req)
-{
- (void)h;
- if (reject_bad_method(req)) return 0;
-
- /* Parse count from path after "/json/". */
- const char *prefix = "/json/";
- size_t plen = strlen(prefix);
- if (req->path_normalized.len <= plen) {
- h2o_send_error_404(req, "Not Found", "Not Found", 0);
- return 0;
- }
- const char *rest = req->path_normalized.base + plen;
- size_t rest_len = req->path_normalized.len - plen;
- char count_buf[32];
- if (rest_len >= sizeof(count_buf)) rest_len = sizeof(count_buf) - 1;
- memcpy(count_buf, rest, rest_len);
- count_buf[rest_len] = '\0';
- int count = atoi(count_buf);
- if (count < 0) count = 0;
- if (count > dataset_size) count = dataset_size;
-
- int m = read_m_param(req);
-
- cJSON *response = cJSON_CreateObject();
- cJSON *items = cJSON_CreateArray();
- for (int i = 0; i < count; i++) {
- cJSON *src = cJSON_GetArrayItem(dataset, i);
- cJSON *dup = cJSON_Duplicate(src, 1);
- cJSON *price_n = cJSON_GetObjectItem(dup, "price");
- cJSON *qty_n = cJSON_GetObjectItem(dup, "quantity");
- long long price = (price_n && cJSON_IsNumber(price_n)) ? (long long)price_n->valuedouble : 0;
- long long qty = (qty_n && cJSON_IsNumber(qty_n)) ? (long long)qty_n->valuedouble : 0;
- double total = (double)(price * qty * (long long)m);
- cJSON_AddNumberToObject(dup, "total", total);
- cJSON_AddItemToArray(items, dup);
- }
- cJSON_AddItemToObject(response, "items", items);
- cJSON_AddNumberToObject(response, "count", count);
-
- char *body_str = cJSON_PrintUnformatted(response);
- cJSON_Delete(response);
- size_t body_len = body_str ? strlen(body_str) : 0;
-
- char *body_buf = h2o_mem_alloc_pool(&req->pool, char, body_len);
- if (body_str) memcpy(body_buf, body_str, body_len);
- free(body_str);
-
- h2o_generator_t gen;
- memset(&gen, 0, sizeof(gen));
- h2o_iovec_t iov = h2o_iovec_init(body_buf, body_len);
- req->res.status = 200;
- req->res.reason = "OK";
- req->res.content_length = body_len;
- h2o_add_header(&req->pool, &req->res.headers, H2O_TOKEN_CONTENT_TYPE,
- NULL, H2O_STRLIT("application/json"));
- h2o_start_response(req, &gen);
- h2o_send(req, &iov, 1, H2O_SEND_STATE_FINAL);
- return 0;
-}
-
-static void register_handler(h2o_hostconf_t *host, const char *path,
- int (*fn)(h2o_handler_t *, h2o_req_t *))
-{
- h2o_pathconf_t *pc = h2o_config_register_path(host, path, 0);
- h2o_handler_t *h = h2o_create_handler(pc, sizeof(*h));
- h->on_req = fn;
-}
-
-static void setup_host(h2o_hostconf_t *host)
-{
- register_handler(host, "/baseline2", on_baseline2);
- register_handler(host, "/json/", on_json);
-}
-
-static int create_listener(int port)
-{
- struct sockaddr_in addr;
- memset(&addr, 0, sizeof(addr));
- addr.sin_family = AF_INET;
- addr.sin_port = htons(port);
- addr.sin_addr.s_addr = htonl(INADDR_ANY);
- int fd = socket(AF_INET, SOCK_STREAM, 0);
- if (fd < 0) return -1;
- int one = 1;
- setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &one, sizeof(one));
- setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, &one, sizeof(one));
- setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, &one, sizeof(one));
- if (bind(fd, (struct sockaddr *)&addr, sizeof(addr)) < 0) { close(fd); return -1; }
- if (listen(fd, 4096) < 0) { close(fd); return -1; }
- return fd;
-}
-
-/* h2c-only accept callback: h2o_http2_accept bypasses h2o's h1/h2 sniff and
- * expects the HTTP/2 client preface immediately. Plain HTTP/1.1 clients fail
- * protocol negotiation at the h2 framing layer and the connection is dropped,
- * which gives us the h2c-only behavior validate.sh asserts. */
-static void on_accept_h2c(h2o_socket_t *listener, const char *err)
-{
- (void)err;
- h2o_accept_ctx_t *ctx = listener->data;
- h2o_socket_t *sock;
- while ((sock = h2o_evloop_socket_accept(listener)) != NULL) {
- struct timeval now;
- gettimeofday(&now, NULL);
- h2o_http2_accept(ctx, sock, now);
- }
-}
-
-static void *worker_run(void *arg)
-{
- (void)arg;
- h2o_evloop_t *loop = h2o_evloop_create();
- h2o_context_t ctx;
- h2o_context_init(&ctx, loop, &globalconf);
-
- h2o_accept_ctx_t accept_ctx;
- memset(&accept_ctx, 0, sizeof(accept_ctx));
- accept_ctx.ctx = &ctx;
- accept_ctx.hosts = globalconf.hosts;
-
- int fd = create_listener(8082);
- if (fd >= 0) {
- h2o_socket_t *sock = h2o_evloop_socket_create(loop, fd, H2O_SOCKET_FLAG_DONT_READ);
- sock->data = &accept_ctx;
- h2o_socket_read_start(sock, on_accept_h2c);
- }
-
- while (h2o_evloop_run(loop, INT32_MAX) == 0)
- ;
- return NULL;
-}
-
-int main(void)
-{
- signal(SIGPIPE, SIG_IGN);
- load_dataset();
-
- h2o_config_init(&globalconf);
- globalconf.server_name = h2o_iovec_init(H2O_STRLIT("h2o"));
-
- h2o_hostconf_t *host = h2o_config_register_host(
- &globalconf, h2o_iovec_init(H2O_STRLIT("default")), 8082);
- setup_host(host);
-
- int nthreads = sysconf(_SC_NPROCESSORS_ONLN);
- if (nthreads < 1) nthreads = 1;
-
- for (int i = 1; i < nthreads; i++) {
- pthread_t t;
- pthread_create(&t, NULL, worker_run, NULL);
- }
- worker_run(NULL);
- return 0;
-}
diff --git a/frameworks/h2o/CMakeLists.txt b/frameworks/h2o/CMakeLists.txt
deleted file mode 100644
index 617bdea15..000000000
--- a/frameworks/h2o/CMakeLists.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-cmake_minimum_required(VERSION 3.10)
-project(h2o-app C)
-set(CMAKE_C_STANDARD 11)
-set(CMAKE_C_STANDARD_REQUIRED ON)
-add_compile_definitions(H2O_USE_LIBUV=0)
-set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O3")
-find_library(H2O_LIB h2o-evloop REQUIRED)
-add_executable(h2o-app src/main.c)
-find_library(BROTLI_ENC brotlienc)
-find_library(BROTLI_DEC brotlidec)
-find_library(BROTLI_COMMON brotlicommon)
-target_link_libraries(h2o-app ${H2O_LIB} ssl crypto z ${BROTLI_ENC} ${BROTLI_DEC} ${BROTLI_COMMON} pthread m)
diff --git a/frameworks/h2o/Dockerfile b/frameworks/h2o/Dockerfile
deleted file mode 100644
index a46638d21..000000000
--- a/frameworks/h2o/Dockerfile
+++ /dev/null
@@ -1,39 +0,0 @@
-FROM buildpack-deps:bookworm AS build
-
-RUN apt-get update && apt-get install -y --no-install-recommends \
- cmake clang libssl-dev zlib1g-dev libuv1-dev libbrotli-dev
-
-# Build h2o from source
-ARG H2O_VERSION=ccea64b17ade832753db933658047ede9f31a380
-WORKDIR /tmp/h2o
-RUN curl -LSs "https://github.com/h2o/h2o/archive/${H2O_VERSION}.tar.gz" | \
- tar --strip-components=1 -xz && \
- cmake -B build \
- -DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_C_COMPILER=clang \
- -DCMAKE_C_FLAGS="-flto=auto -march=native -mtune=native" \
- -DWITH_MRUBY=off \
- -S . && \
- cmake --build build -j && \
- cmake --install build
-
-# Build app
-COPY CMakeLists.txt /app/
-COPY src /app/src/
-WORKDIR /app/build
-RUN cmake \
- -DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_C_COMPILER=clang \
- -DCMAKE_C_FLAGS="-flto=auto -march=native -mtune=native" \
- -S .. && \
- cmake --build . -j
-
-FROM debian:bookworm-slim
-RUN apt-get update && apt-get install -y --no-install-recommends \
- libssl3 libbrotli1 && \
- rm -rf /var/lib/apt/lists/*
-COPY --from=build /usr/local/lib/libh2o-evloop.so* /usr/local/lib/
-COPY --from=build /app/build/h2o-app /server
-RUN ldconfig
-EXPOSE 8080 8443
-CMD ["/server"]
diff --git a/frameworks/h2o/README.md b/frameworks/h2o/README.md
deleted file mode 100644
index bf2eb0167..000000000
--- a/frameworks/h2o/README.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# h2o
-
-High-performance C HTTP server using the libh2o library with multi-threaded event loops and native HTTP/2 support.
-
-## Stack
-
-- **Language:** C
-- **Engine:** h2o
-- **Build:** `buildpack-deps:bookworm` → `debian:bookworm-slim`, clang with `-flto=auto -march=native`
-
-## Endpoints
-
-| Endpoint | Method | Description |
-|----------|--------|-------------|
-| `/pipeline` | GET | Returns `ok` (plain text) |
-| `/baseline11` | GET | Sums query parameter values |
-| `/baseline11` | POST | Sums query parameters + request body |
-| `/baseline2` | GET | Sums query parameter values (HTTP/2 variant) |
-| `/json` | GET | Processes 50-item dataset, serializes JSON |
-| `/compression` | GET | Gzip-compressed large JSON response |
-| `/db` | GET | SQLite range query with JSON response |
-| `/upload` | POST | Receives 1 MB body, returns byte count |
-| `/static` | GET | Serves preloaded static files (max 32) |
-
-## Notes
-
-- Custom C handler registered directly with h2o
-- Thread-local SQLite connections with prepared statement caching
-- yajl for JSON parsing
-- Static files preloaded at startup with MIME type mapping
-- HTTP/1.1 and HTTP/2 support
diff --git a/frameworks/h2o/meta.json b/frameworks/h2o/meta.json
deleted file mode 100644
index d5191531f..000000000
--- a/frameworks/h2o/meta.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "display_name": "h2o",
- "language": "C",
- "type": "infrastructure",
- "engine": "h2o",
- "description": "High-performance C HTTP server using libh2o with multi-threaded event loops and native HTTP/2 support.",
- "repo": "https://github.com/h2o/h2o",
- "enabled": true,
- "tests": [
- "baseline",
- "pipelined",
- "limited-conn",
- "baseline-h2",
- "static-h2"
- ],
- "maintainers": []
-}
diff --git a/frameworks/h2o/src/main.c b/frameworks/h2o/src/main.c
deleted file mode 100644
index 383c1649c..000000000
--- a/frameworks/h2o/src/main.c
+++ /dev/null
@@ -1,370 +0,0 @@
-#define H2O_USE_LIBUV 0
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-static h2o_globalconf_t globalconf;
-static SSL_CTX *ssl_ctx;
-/* Pre-loaded static files */
-#define MAX_STATIC_FILES 32
-typedef struct {
- const char *name;
- const char *content_type;
- char *data;
- size_t len;
-} static_file_t;
-static static_file_t static_files[MAX_STATIC_FILES];
-static int static_file_count;
-
-/* Parse query string values and return their sum */
-static int64_t sum_query_values(h2o_req_t *req)
-{
- if (req->query_at == SIZE_MAX)
- return 0;
- int64_t sum = 0;
- const char *p = req->path.base + req->query_at + 1;
- const char *end = req->path.base + req->path.len;
- while (p < end) {
- const char *eq = memchr(p, '=', end - p);
- if (!eq) break;
- const char *v = eq + 1;
- const char *amp = memchr(v, '&', end - v);
- if (!amp) amp = end;
- char *ep;
- long long n = strtoll(v, &ep, 10);
- if (ep > v && ep <= amp) sum += n;
- p = amp < end ? amp + 1 : end;
- }
- return sum;
-}
-
-/* Method check helper — returns true if method is not GET/HEAD/POST */
-static inline int reject_bad_method(h2o_req_t *req)
-{
- if (h2o_memis(req->method.base, req->method.len, H2O_STRLIT("GET"))
- || h2o_memis(req->method.base, req->method.len, H2O_STRLIT("HEAD"))
- || h2o_memis(req->method.base, req->method.len, H2O_STRLIT("POST"))) {
- return 0;
- }
- req->res.status = 405;
- req->res.reason = "Method Not Allowed";
- req->res.content_length = 18;
- h2o_add_header(&req->pool, &req->res.headers, H2O_TOKEN_CONTENT_TYPE,
- NULL, H2O_STRLIT("text/plain"));
- h2o_generator_t gen;
- memset(&gen, 0, sizeof(gen));
- h2o_iovec_t body = {H2O_STRLIT("Method Not Allowed")};
- h2o_start_response(req, &gen);
- h2o_send(req, &body, 1, H2O_SEND_STATE_FINAL);
- return 1;
-}
-
-/* GET /pipeline — return "ok" (zero-copy static response) */
-static int on_pipeline(h2o_handler_t *h, h2o_req_t *req)
-{
- static h2o_iovec_t body = {H2O_STRLIT("ok")};
- (void)h;
- if (reject_bad_method(req)) return 0;
- h2o_generator_t gen;
- memset(&gen, 0, sizeof(gen));
- req->res.status = 200;
- req->res.reason = "OK";
- req->res.content_length = body.len;
- h2o_add_header(&req->pool, &req->res.headers, H2O_TOKEN_CONTENT_TYPE,
- NULL, H2O_STRLIT("text/plain"));
- h2o_start_response(req, &gen);
- h2o_send(req, &body, 1, H2O_SEND_STATE_FINAL);
- return 0;
-}
-
-/* GET|POST /baseline11 — sum query params (+ body for POST) */
-static int on_baseline11(h2o_handler_t *h, h2o_req_t *req)
-{
- (void)h;
- if (reject_bad_method(req)) return 0;
- int64_t sum = sum_query_values(req);
- if (h2o_memis(req->method.base, req->method.len, H2O_STRLIT("POST"))
- && req->entity.len > 0) {
- const char *p = req->entity.base;
- const char *end = p + req->entity.len;
- while (p < end && *p <= ' ') p++;
- char *ep;
- long long n = strtoll(p, &ep, 10);
- if (ep > p) sum += n;
- }
- char buf[32];
- int len = snprintf(buf, sizeof(buf), "%lld", (long long)sum);
- h2o_generator_t gen;
- memset(&gen, 0, sizeof(gen));
- h2o_iovec_t body = h2o_iovec_init(buf, len);
- req->res.status = 200;
- req->res.reason = "OK";
- req->res.content_length = len;
- h2o_add_header(&req->pool, &req->res.headers, H2O_TOKEN_CONTENT_TYPE,
- NULL, H2O_STRLIT("text/plain"));
- h2o_start_response(req, &gen);
- h2o_send(req, &body, 1, H2O_SEND_STATE_FINAL);
- return 0;
-}
-
-/* GET /baseline2 — sum query params */
-static int on_baseline2(h2o_handler_t *h, h2o_req_t *req)
-{
- (void)h;
- if (reject_bad_method(req)) return 0;
- int64_t sum = sum_query_values(req);
- char buf[32];
- int len = snprintf(buf, sizeof(buf), "%lld", (long long)sum);
- h2o_generator_t gen;
- memset(&gen, 0, sizeof(gen));
- h2o_iovec_t body = h2o_iovec_init(buf, len);
- req->res.status = 200;
- req->res.reason = "OK";
- req->res.content_length = len;
- h2o_add_header(&req->pool, &req->res.headers, H2O_TOKEN_CONTENT_TYPE,
- NULL, H2O_STRLIT("text/plain"));
- h2o_start_response(req, &gen);
- h2o_send(req, &body, 1, H2O_SEND_STATE_FINAL);
- return 0;
-}
-
-/* GET /static/ — serve pre-loaded static files */
-static int on_static(h2o_handler_t *h, h2o_req_t *req)
-{
- (void)h;
- if (reject_bad_method(req)) return 0;
- /* path is /static/, extract filename after "/static/" (8 chars) */
- if (req->path_normalized.len <= 8) {
- h2o_send_error_404(req, "Not Found", "Not Found", 0);
- return 0;
- }
- const char *fname = req->path_normalized.base + 8;
- size_t fname_len = req->path_normalized.len - 8;
-
- for (int i = 0; i < static_file_count; i++) {
- size_t nlen = strlen(static_files[i].name);
- if (nlen == fname_len && memcmp(static_files[i].name, fname, nlen) == 0) {
- h2o_generator_t gen;
- memset(&gen, 0, sizeof(gen));
- h2o_iovec_t body = h2o_iovec_init(static_files[i].data, static_files[i].len);
- req->res.status = 200;
- req->res.reason = "OK";
- req->res.content_length = static_files[i].len;
- h2o_add_header(&req->pool, &req->res.headers, H2O_TOKEN_CONTENT_TYPE,
- NULL, static_files[i].content_type, strlen(static_files[i].content_type));
- h2o_start_response(req, &gen);
- h2o_send(req, &body, 1, H2O_SEND_STATE_FINAL);
- return 0;
- }
- }
- h2o_send_error_404(req, "Not Found", "Not Found", 0);
- return 0;
-}
-
-/* Load all static files from /data/static/ into memory */
-static void load_static_files(void)
-{
- static const struct { const char *name; const char *ct; } entries[] = {
- {"reset.css", "text/css"},
- {"layout.css", "text/css"},
- {"theme.css", "text/css"},
- {"components.css", "text/css"},
- {"utilities.css", "text/css"},
- {"analytics.js", "application/javascript"},
- {"helpers.js", "application/javascript"},
- {"app.js", "application/javascript"},
- {"vendor.js", "application/javascript"},
- {"router.js", "application/javascript"},
- {"header.html", "text/html"},
- {"footer.html", "text/html"},
- {"regular.woff2", "font/woff2"},
- {"bold.woff2", "font/woff2"},
- {"logo.svg", "image/svg+xml"},
- {"icon-sprite.svg", "image/svg+xml"},
- {"hero.webp", "image/webp"},
- {"thumb1.webp", "image/webp"},
- {"thumb2.webp", "image/webp"},
- {"manifest.json", "application/json"},
- };
- int n = sizeof(entries) / sizeof(entries[0]);
- for (int i = 0; i < n && static_file_count < MAX_STATIC_FILES; i++) {
- char path[256];
- snprintf(path, sizeof(path), "/data/static/%s", entries[i].name);
- FILE *f = fopen(path, "rb");
- if (!f) continue;
- fseek(f, 0, SEEK_END);
- long sz = ftell(f);
- fseek(f, 0, SEEK_SET);
- char *data = malloc(sz);
- if (!data) { fclose(f); continue; }
- fread(data, 1, sz, f);
- fclose(f);
- static_files[static_file_count].name = entries[i].name;
- static_files[static_file_count].content_type = entries[i].ct;
- static_files[static_file_count].data = data;
- static_files[static_file_count].len = sz;
- static_file_count++;
- }
- printf("Loaded %d static files\n", static_file_count);
-}
-
-static h2o_pathconf_t *register_handler(h2o_hostconf_t *host, const char *path,
- int (*fn)(h2o_handler_t *, h2o_req_t *))
-{
- h2o_pathconf_t *pc = h2o_config_register_path(host, path, 0);
- h2o_handler_t *h = h2o_create_handler(pc, sizeof(*h));
- h->on_req = fn;
- return pc;
-}
-
-static void setup_host(h2o_hostconf_t *host)
-{
- register_handler(host, "/pipeline", on_pipeline);
- register_handler(host, "/baseline11", on_baseline11);
- register_handler(host, "/baseline2", on_baseline2);
- register_handler(host, "/static", on_static);
-}
-
-/* Create listener socket with SO_REUSEPORT */
-static int create_listener(int port)
-{
- struct sockaddr_in addr;
- memset(&addr, 0, sizeof(addr));
- addr.sin_family = AF_INET;
- addr.sin_port = htons(port);
-
- int fd = socket(AF_INET, SOCK_STREAM, 0);
- if (fd < 0) return -1;
-
- int on = 1;
- setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on));
- setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, &on, sizeof(on));
- setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, &on, sizeof(on));
- setsockopt(fd, IPPROTO_TCP, TCP_QUICKACK, &on, sizeof(on));
-
- int defer = 10;
- setsockopt(fd, IPPROTO_TCP, TCP_DEFER_ACCEPT, &defer, sizeof(defer));
-
- int qlen = 4096;
- setsockopt(fd, IPPROTO_TCP, TCP_FASTOPEN, &qlen, sizeof(qlen));
-
- if (bind(fd, (struct sockaddr *)&addr, sizeof(addr)) < 0) { close(fd); return -1; }
- if (listen(fd, 4096) < 0) { close(fd); return -1; }
- return fd;
-}
-
-/* Accept callback */
-static void on_accept(h2o_socket_t *listener, const char *err)
-{
- if (err) return;
- h2o_accept_ctx_t *ctx = listener->data;
- h2o_socket_t *sock;
- while ((sock = h2o_evloop_socket_accept(listener)) != NULL)
- h2o_accept(ctx, sock);
-}
-
-/* Worker thread: own event loop + listeners */
-static void *worker_run(void *arg)
-{
- (void)arg;
- h2o_evloop_t *loop = h2o_evloop_create();
- h2o_context_t ctx;
- h2o_context_init(&ctx, loop, &globalconf);
-
- /* HTTP/1.1 on port 8080 */
- h2o_accept_ctx_t accept_http;
- memset(&accept_http, 0, sizeof(accept_http));
- accept_http.ctx = &ctx;
- accept_http.hosts = globalconf.hosts;
-
- int fd = create_listener(8080);
- if (fd >= 0) {
- h2o_socket_t *sock = h2o_evloop_socket_create(loop, fd,
- H2O_SOCKET_FLAG_DONT_READ);
- sock->data = &accept_http;
- h2o_socket_read_start(sock, on_accept);
- }
-
- /* HTTPS/H2 on port 8443 */
- h2o_accept_ctx_t accept_ssl;
- if (ssl_ctx) {
- memset(&accept_ssl, 0, sizeof(accept_ssl));
- accept_ssl.ctx = &ctx;
- accept_ssl.hosts = globalconf.hosts;
- accept_ssl.ssl_ctx = ssl_ctx;
-
- int fd_ssl = create_listener(8443);
- if (fd_ssl >= 0) {
- h2o_socket_t *sock = h2o_evloop_socket_create(loop, fd_ssl,
- H2O_SOCKET_FLAG_DONT_READ);
- sock->data = &accept_ssl;
- h2o_socket_read_start(sock, on_accept);
- }
- }
-
- while (h2o_evloop_run(loop, INT32_MAX) == 0)
- ;
- return NULL;
-}
-
-/* Initialize TLS for HTTP/2 */
-static void init_tls(void)
-{
- const char *cert = getenv("TLS_CERT");
- const char *key = getenv("TLS_KEY");
- if (!cert) cert = "/certs/server.crt";
- if (!key) key = "/certs/server.key";
- if (access(cert, R_OK) != 0 || access(key, R_OK) != 0) return;
-
- ssl_ctx = SSL_CTX_new(TLS_server_method());
- SSL_CTX_set_min_proto_version(ssl_ctx, TLS1_2_VERSION);
- h2o_ssl_register_alpn_protocols(ssl_ctx, h2o_http2_alpn_protocols);
-
- if (SSL_CTX_use_certificate_file(ssl_ctx, cert, SSL_FILETYPE_PEM) != 1 ||
- SSL_CTX_use_PrivateKey_file(ssl_ctx, key, SSL_FILETYPE_PEM) != 1) {
- SSL_CTX_free(ssl_ctx);
- ssl_ctx = NULL;
- }
-}
-
-int main(void)
-{
- signal(SIGPIPE, SIG_IGN);
- load_static_files();
- init_tls();
-
- h2o_config_init(&globalconf);
- globalconf.server_name = h2o_iovec_init(H2O_STRLIT("h2o"));
-
- /* Register host for HTTP (8080) */
- h2o_hostconf_t *host_http = h2o_config_register_host(
- &globalconf, h2o_iovec_init(H2O_STRLIT("default")), 8080);
- setup_host(host_http);
-
- /* Register host for HTTPS (8443) */
- if (ssl_ctx) {
- h2o_hostconf_t *host_ssl = h2o_config_register_host(
- &globalconf, h2o_iovec_init(H2O_STRLIT("default")), 8443);
- setup_host(host_ssl);
- }
-
- int nthreads = sysconf(_SC_NPROCESSORS_ONLN);
- if (nthreads < 1) nthreads = 1;
-
- for (int i = 1; i < nthreads; i++) {
- pthread_t t;
- pthread_create(&t, NULL, worker_run, NULL);
- }
-
- worker_run(NULL);
- return 0;
-}
diff --git a/frameworks/nginx/Dockerfile b/frameworks/nginx/Dockerfile
deleted file mode 100644
index dd55f24ab..000000000
--- a/frameworks/nginx/Dockerfile
+++ /dev/null
@@ -1,63 +0,0 @@
-ARG NGINX_VERSION=1.30.0
-
-FROM debian:bookworm AS build
-
-RUN apt-get update && apt-get install -y --no-install-recommends \
- build-essential libpcre2-dev zlib1g-dev wget ca-certificates git perl cmake
-
-# Build quictls (OpenSSL fork with QUIC support)
-WORKDIR /tmp
-RUN git clone --depth 1 -b openssl-3.1.5+quic https://github.com/quictls/openssl.git quictls && \
- cd quictls && \
- ./Configure --prefix=/opt/quictls --libdir=lib no-tests && \
- make -j$(nproc) && \
- make install_sw
-
-# Download nginx source
-ARG NGINX_VERSION
-RUN wget -q http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz && \
- tar xzf nginx-${NGINX_VERSION}.tar.gz
-
-# Add ngx_brotli
-RUN git clone --recurse-submodules -j8 https://github.com/google/ngx_brotli && \
- cd ngx_brotli/deps/brotli && \
- mkdir out && cd out && \
- cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DCMAKE_C_FLAGS="-Ofast -m64 -march=native -mtune=native -flto -funroll-loops -ffunction-sections -fdata-sections -Wl,--gc-sections" -DCMAKE_CXX_FLAGS="-Ofast -m64 -march=native -mtune=native -flto -funroll-loops -ffunction-sections -fdata-sections -Wl,--gc-sections" -DCMAKE_INSTALL_PREFIX=./installed .. && \
- cmake --build . --config Release --target brotlienc && \
- cd ../../../..
-
-# Copy module
-COPY ngx_http_httparena_module.c config /tmp/module/
-
-# Build nginx with custom module + HTTP/3
-WORKDIR /tmp/nginx-${NGINX_VERSION}
-RUN ./configure \
- --with-http_ssl_module \
- --with-http_v2_module \
- --with-http_v3_module \
- --with-http_gzip_static_module \
- --add-module=/tmp/ngx_brotli \
- --add-module=/tmp/module \
- --with-cc-opt="-O3 -march=native -DNDEBUG -I/opt/quictls/include" \
- --with-ld-opt="-lm -L/opt/quictls/lib -Wl,-rpath,/opt/quictls/lib" && \
- make -j$(nproc)
-
-FROM debian:bookworm-slim
-RUN apt-get update && apt-get install -y --no-install-recommends \
- libpcre2-8-0 && \
- rm -rf /var/lib/apt/lists/*
-COPY --from=build /opt/quictls/lib/libssl.so.81.3 /opt/quictls/lib/libcrypto.so.81.3 /opt/quictls/lib/
-RUN ln -s libssl.so.81.3 /opt/quictls/lib/libssl.so.81 && \
- ln -s libssl.so.81 /opt/quictls/lib/libssl.so && \
- ln -s libcrypto.so.81.3 /opt/quictls/lib/libcrypto.so.81 && \
- ln -s libcrypto.so.81 /opt/quictls/lib/libcrypto.so && \
- ldconfig /opt/quictls/lib
-ARG NGINX_VERSION
-COPY --from=build /tmp/nginx-${NGINX_VERSION}/objs/nginx /usr/sbin/nginx
-RUN mkdir -p /usr/local/nginx/logs
-
-COPY nginx.conf /usr/local/nginx/conf/nginx.conf
-
-EXPOSE 8080 8443/tcp 8443/udp
-
-CMD ["nginx"]
diff --git a/frameworks/nginx/README.md b/frameworks/nginx/README.md
deleted file mode 100644
index 02d50f1bc..000000000
--- a/frameworks/nginx/README.md
+++ /dev/null
@@ -1,28 +0,0 @@
-# nginx
-
-Nginx with a custom C handler module (`ngx_http_httparena_module`) compiled with `-O3 -march=native`. Supports HTTP/2 and HTTP/3 via quictls.
-
-## Stack
-
-- **Language:** C
-- **Engine:** nginx 1.26.2
-- **TLS:** quictls (OpenSSL fork for QUIC)
-- **Build:** Debian bookworm, compiles nginx + quictls from source
-
-## Endpoints
-
-| Endpoint | Method | Description |
-|----------|--------|-------------|
-| `/pipeline` | GET | Returns `ok` (plain text) |
-| `/baseline11` | GET | Sums query parameter values |
-| `/baseline11` | POST | Sums query parameters + request body |
-| `/baseline2` | GET | Sums query parameter values (HTTP/2 variant) |
-| `/static/{filename}` | GET | Serves static files with MIME types |
-
-## Notes
-
-- Custom C module using cJSON for JSON serialization
-- Worker processes auto-configured to CPU count
-- 65536 worker connections per process
-- HTTP/1.1, HTTP/2, and HTTP/3 support
-- Gzip compression at server level
diff --git a/frameworks/nginx/config b/frameworks/nginx/config
deleted file mode 100644
index 6787ec675..000000000
--- a/frameworks/nginx/config
+++ /dev/null
@@ -1,11 +0,0 @@
-ngx_addon_name=ngx_http_httparena_module
-
-if test -n "$ngx_module_link"; then
- ngx_module_type=HTTP
- ngx_module_name=ngx_http_httparena_module
- ngx_module_srcs="$ngx_addon_dir/ngx_http_httparena_module.c"
- . auto/module
-else
- HTTP_MODULES="$HTTP_MODULES ngx_http_httparena_module"
- NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_httparena_module.c"
-fi
diff --git a/frameworks/nginx/meta.json b/frameworks/nginx/meta.json
deleted file mode 100644
index 217f1604e..000000000
--- a/frameworks/nginx/meta.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "display_name": "nginx",
- "language": "C",
- "type": "infrastructure",
- "engine": "nginx",
- "description": "Nginx with a custom C handler module, compiled with -O3 -march=native.",
- "repo": "https://github.com/nginx/nginx",
- "enabled": true,
- "tests": [
- "baseline",
- "pipelined",
- "limited-conn",
- "static",
- "baseline-h2",
- "static-h2",
- "baseline-h3",
- "static-h3"
- ],
- "maintainers": []
-}
diff --git a/frameworks/nginx/nginx.conf b/frameworks/nginx/nginx.conf
deleted file mode 100644
index 639ec3d8f..000000000
--- a/frameworks/nginx/nginx.conf
+++ /dev/null
@@ -1,100 +0,0 @@
-worker_processes auto;
-worker_rlimit_nofile 65536;
-error_log stderr error;
-timer_resolution 1s;
-daemon off;
-pcre_jit on;
-
-events {
- worker_connections 65536;
- multi_accept on;
-}
-
-http {
- access_log off;
- server_tokens off;
- msie_padding off;
- etag off;
-
- types {
- text/html html htm;
- text/css css;
-
- application/javascript js;
- application/json json;
-
- image/webp webp;
- image/svg+xml svg;
-
- font/woff2 woff2;
- }
-
- sendfile on;
- tcp_nopush on;
- tcp_nodelay on;
- keepalive_timeout 65;
- keepalive_requests 1000000;
- client_max_body_size 25m;
- client_body_buffer_size 25m;
-
- gzip on;
- gzip_static on;
- gzip_min_length 100;
- gzip_comp_level 1;
- # brotli 7 is similar to gzip 5 in compression ratio but much faster, so we set gzip to 5 to save CPU while still getting good compression
- # Not text/plain :(
- # text/html is included automatically when gzip is enabled
- gzip_types application/json
- application/javascript
- text/css
- image/svg+xml;
-
- brotli on;
- brotli_static on;
- brotli_comp_level 1;
- brotli_min_length 256;
- brotli_types application/json
- application/javascript
- text/css
- image/svg+xml;
-
- server {
- listen 8080 reuseport;
-
- location / {
- httparena;
- }
-
- location /static/ {
- root /data;
- add_header Last-Modified '';
- }
- }
-
- server {
- listen 8443 ssl reuseport;
- listen 8443 quic reuseport;
- http2 on;
- http3 on;
-
- ssl_certificate /certs/server.crt;
- ssl_certificate_key /certs/server.key;
- ssl_protocols TLSv1.3;
- ssl_session_tickets on;
- ssl_session_cache shared:SSL:10m;
-
- http2_max_concurrent_streams 256;
- keepalive_requests 10000000;
-
- add_header Alt-Svc 'h3=":8443"; ma=86400';
-
- location / {
- httparena;
- }
-
- location /static/ {
- root /data;
- add_header Last-Modified '';
- }
- }
-}
diff --git a/frameworks/nginx/ngx_http_httparena_module.c b/frameworks/nginx/ngx_http_httparena_module.c
deleted file mode 100644
index ad55c22b9..000000000
--- a/frameworks/nginx/ngx_http_httparena_module.c
+++ /dev/null
@@ -1,236 +0,0 @@
-#include
-#include
-#include
-
-/* Static files (/static/) are not handled here — the nginx.conf
- * location /static/ block serves them directly from /data/static via
- * nginx core's sendfile-backed file handler, which is both faster and
- * exercises the "real nginx static path" the benchmark is meant to
- * measure. Any request that reaches this module has already missed
- * that more-specific location. */
-
-/* ---------- Integer parser ---------- */
-
-static int64_t
-parse_int(u_char *start, u_char *end)
-{
- int64_t n = 0;
- int neg = 0;
- u_char *p = start;
- while (p < end && (*p == ' ' || *p == '\t' || *p == '\r' || *p == '\n')) p++;
- if (p < end && *p == '-') { neg = 1; p++; }
- while (p < end && *p >= '0' && *p <= '9') {
- n = n * 10 + (*p - '0');
- p++;
- }
- return neg ? -n : n;
-}
-
-/* ---------- Query string sum ---------- */
-
-static int64_t
-sum_args(ngx_str_t *args)
-{
- if (!args->len) return 0;
- int64_t sum = 0;
- u_char *p = args->data, *end = p + args->len;
- while (p < end) {
- u_char *eq = ngx_strlchr(p, end, '=');
- if (!eq) break;
- u_char *v = eq + 1;
- u_char *amp = ngx_strlchr(v, end, '&');
- if (!amp) amp = end;
- sum += parse_int(v, amp);
- p = (amp < end) ? amp + 1 : end;
- }
- return sum;
-}
-
-/* ---------- Response helper ---------- */
-
-static ngx_int_t
-send_resp(ngx_http_request_t *r, ngx_uint_t status,
- u_char *ct, size_t ct_len,
- u_char *body, size_t body_len, ngx_int_t copy)
-{
- ngx_buf_t *b;
- ngx_chain_t out;
-
- r->headers_out.status = status;
- r->headers_out.content_type.data = ct;
- r->headers_out.content_type.len = ct_len;
- r->headers_out.content_type_len = ct_len;
- r->headers_out.content_length_n = body_len;
-
- if (r->method == NGX_HTTP_HEAD) {
- return ngx_http_send_header(r);
- }
-
- if (copy) {
- b = ngx_create_temp_buf(r->pool, body_len);
- if (!b) return NGX_HTTP_INTERNAL_SERVER_ERROR;
- b->last = ngx_copy(b->last, body, body_len);
- } else {
- b = ngx_calloc_buf(r->pool);
- if (!b) return NGX_HTTP_INTERNAL_SERVER_ERROR;
- b->pos = body;
- b->last = body + body_len;
- b->memory = 1;
- }
- b->last_buf = 1;
-
- out.buf = b;
- out.next = NULL;
-
- ngx_int_t rc = ngx_http_send_header(r);
- if (rc == NGX_ERROR || rc > NGX_OK || r->header_only) return rc;
- return ngx_http_output_filter(r, &out);
-}
-
-/* ---------- POST body handler for /baseline11 ---------- */
-
-static void
-baseline11_post_handler(ngx_http_request_t *r)
-{
- int64_t sum = sum_args(&r->args);
-
- /* The canonical nginx idiom for reading a buffered request body is to
- * walk r->request_body->bufs. One chain node per recv(); reading only
- * bufs->buf gives you just the first chunk, which silently breaks on
- * fragmented bodies (validate.sh splits "20" as "2"+"0").
- *
- * request_body_in_single_buf=1 only sizes rb->buf's allocation; it does
- * not produce a merged view. rb->buf->pos is advanced to last by the
- * body-length filter as it hands data off to the save filter, so
- * reading rb->buf directly returns an empty range. Walk the chain. */
- if (r->request_body && r->request_body->bufs) {
- u_char body[64];
- size_t body_len = 0;
- ngx_chain_t *cl;
- for (cl = r->request_body->bufs; cl; cl = cl->next) {
- ngx_buf_t *buf = cl->buf;
- if (!buf || buf->in_file) continue;
- size_t chunk_len = buf->last - buf->pos;
- if (chunk_len == 0) continue;
- if (body_len + chunk_len > sizeof(body)) {
- chunk_len = sizeof(body) - body_len;
- }
- ngx_memcpy(body + body_len, buf->pos, chunk_len);
- body_len += chunk_len;
- if (body_len >= sizeof(body)) break;
- }
- if (body_len > 0) {
- sum += parse_int(body, body + body_len);
- }
- }
-
- u_char resp[32];
- u_char *last = ngx_snprintf(resp, sizeof(resp), "%L", sum);
-
- ngx_int_t rc = send_resp(r, 200,
- (u_char *)"text/plain", 10,
- resp, last - resp, 1);
- ngx_http_finalize_request(r, rc);
-}
-
-/* ---------- Main request handler ---------- */
-
-static ngx_int_t
-ngx_http_httparena_handler(ngx_http_request_t *r)
-{
- u_char *uri = r->uri.data;
- size_t uri_len = r->uri.len;
-
- /* Reject unknown HTTP methods — only allow GET, HEAD, POST */
- if (!(r->method & (NGX_HTTP_GET | NGX_HTTP_POST | NGX_HTTP_HEAD))) {
- ngx_http_discard_request_body(r);
- return send_resp(r, 405,
- (u_char *)"text/plain", 10,
- (u_char *)"Method Not Allowed", 18, 1);
- }
-
- /* /pipeline */
- if (uri_len == 9 && ngx_strncmp(uri, "/pipeline", 9) == 0) {
- ngx_http_discard_request_body(r);
- return send_resp(r, 200,
- (u_char *)"text/plain", 10,
- (u_char *)"ok", 2, 0);
- }
-
- /* /baseline2 */
- if (uri_len == 10 && ngx_strncmp(uri, "/baseline2", 10) == 0) {
- ngx_http_discard_request_body(r);
- int64_t sum = sum_args(&r->args);
- u_char buf[32];
- u_char *last = ngx_snprintf(buf, sizeof(buf), "%L", sum);
- return send_resp(r, 200,
- (u_char *)"text/plain", 10,
- buf, last - buf, 1);
- }
-
- /* /baseline11 */
- if (uri_len == 11 && ngx_strncmp(uri, "/baseline11", 11) == 0) {
- if (r->method == NGX_HTTP_POST) {
- r->request_body_in_single_buf = 1;
- ngx_int_t rc = ngx_http_read_client_request_body(r,
- baseline11_post_handler);
- if (rc >= NGX_HTTP_SPECIAL_RESPONSE) return rc;
- return NGX_DONE;
- }
- ngx_http_discard_request_body(r);
- int64_t sum = sum_args(&r->args);
- u_char buf[32];
- u_char *last = ngx_snprintf(buf, sizeof(buf), "%L", sum);
- return send_resp(r, 200,
- (u_char *)"text/plain", 10,
- buf, last - buf, 1);
- }
-
- /* Unknown path — return 404 instead of falling through to nginx default */
- ngx_http_discard_request_body(r);
- return send_resp(r, 404,
- (u_char *)"text/plain", 10,
- (u_char *)"Not Found", 9, 1);
-}
-
-/* ---------- Module boilerplate ---------- */
-
-static char *
-ngx_http_httparena(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
-{
- ngx_http_core_loc_conf_t *clcf;
- clcf = ngx_http_conf_get_module_loc_conf(cf, ngx_http_core_module);
- clcf->handler = ngx_http_httparena_handler;
- return NGX_CONF_OK;
-}
-
-static ngx_command_t ngx_http_httparena_commands[] = {
- {
- ngx_string("httparena"),
- NGX_HTTP_LOC_CONF | NGX_CONF_NOARGS,
- ngx_http_httparena,
- 0,
- 0,
- NULL
- },
- ngx_null_command
-};
-
-static ngx_http_module_t ngx_http_httparena_module_ctx = {
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
-};
-
-ngx_module_t ngx_http_httparena_module = {
- NGX_MODULE_V1,
- &ngx_http_httparena_module_ctx,
- ngx_http_httparena_commands,
- NGX_HTTP_MODULE,
- NULL, /* init master */
- NULL, /* init module */
- NULL, /* init process */
- NULL, /* init thread */
- NULL, /* exit thread */
- NULL, /* exit process */
- NULL, /* exit master */
- NGX_MODULE_V1_PADDING
-};
diff --git a/frameworks/pingora/Cargo.toml b/frameworks/pingora/Cargo.toml
deleted file mode 100644
index bfc643eb2..000000000
--- a/frameworks/pingora/Cargo.toml
+++ /dev/null
@@ -1,21 +0,0 @@
-[package]
-name = "httparena-pingora"
-version = "0.1.0"
-edition = "2021"
-
-[dependencies]
-pingora = { version = "0.8", features = ["openssl"] }
-tokio = { version = "1", features = ["rt", "rt-multi-thread", "macros", "net", "io-util"] }
-bytes = "1"
-async-trait = "0.1"
-http = "1"
-log = "0.4"
-env_logger = "0.11"
-num_cpus = "1"
-
-[profile.release]
-opt-level = 3
-codegen-units = 1
-lto = "fat"
-strip = true
-panic = "abort"
diff --git a/frameworks/pingora/Dockerfile b/frameworks/pingora/Dockerfile
deleted file mode 100644
index 02b649b1b..000000000
--- a/frameworks/pingora/Dockerfile
+++ /dev/null
@@ -1,27 +0,0 @@
-FROM rust:1.85-bookworm AS build
-WORKDIR /app
-
-# Pingora's "openssl" feature links against the system OpenSSL. bookworm
-# ships libssl3 + libssl-dev already usable by the openssl-sys build script.
-RUN apt-get update \
- && apt-get install -y --no-install-recommends pkg-config libssl-dev cmake \
- && rm -rf /var/lib/apt/lists/*
-
-# Prime the dependency cache with an empty lib so we only rebuild app sources
-# when src/ changes.
-COPY Cargo.toml .
-RUN mkdir src \
- && echo "fn main() {}" > src/main.rs \
- && cargo build --release \
- && rm -rf src/ target/release/httparena-pingora* target/release/deps/httparena_pingora*
-
-COPY src ./src
-RUN RUSTFLAGS="-C target-cpu=native" cargo build --release
-
-FROM debian:bookworm-slim
-RUN apt-get update \
- && apt-get install -y --no-install-recommends ca-certificates libssl3 \
- && rm -rf /var/lib/apt/lists/*
-COPY --from=build /app/target/release/httparena-pingora /server
-EXPOSE 8080
-CMD ["/server"]
diff --git a/frameworks/pingora/README.md b/frameworks/pingora/README.md
deleted file mode 100644
index ef5b6e58b..000000000
--- a/frameworks/pingora/README.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# pingora
-
-Cloudflare's [Pingora](https://github.com/cloudflare/pingora) Rust HTTP framework, wrapped as a standalone HTTP/1.1 server for the HttpArena `infrastructure` suite.
-
-## Stack
-
-- **Language:** Rust, edition 2021
-- **Crate:** `pingora` 0.8 with the `openssl` feature (required to link the core runtime; no TLS listener is opened).
-- **Build:** Multi-stage, `rust:1.85-bookworm` build image, `debian:bookworm-slim` runtime.
-
-## Why it looks like this
-
-Pingora is a _library_, not a daemon. Unlike nginx/h2o, there's no ready-made binary: this entry is a thin main.rs that implements the `ServeHttp` trait (from `pingora::apps::http_app`) and registers it as a TCP listener on `0.0.0.0:8080` via `HttpServer::new_app` + `Service::add_tcp`. The proxy modules (`pingora-proxy`, `ProxyHttp`) are deliberately _not_ used — there is no upstream.
-
-## Endpoints
-
-| Endpoint | Method | Description |
-|----------|--------|-------------|
-| `/baseline11` | GET | Sums integer query parameter values |
-| `/baseline11` | POST | Sums query parameters + request body (body capped at 64 KiB) |
-| `/static/{filename}` | GET | Serves preloaded static file |
-
-## Notes
-
-- **Static preloading.** `/data/static/*` is slurped into a `HashMap>` at startup (~20 small files). Content-Type is derived from the extension.
-- **Thread count.** `ServerConf.threads` is set to `num_cpus::get()` before `Server::bootstrap()`. Pingora builds a work-stealing tokio runtime per service at that size.
-- **Release profile.** `lto = "fat"`, `codegen-units = 1`, `opt-level = 3`, `strip = true`, `panic = "abort"`, compiled with `-C target-cpu=native`.
diff --git a/frameworks/pingora/meta.json b/frameworks/pingora/meta.json
deleted file mode 100644
index 9fd3546b4..000000000
--- a/frameworks/pingora/meta.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "display_name": "pingora",
- "language": "Rust",
- "type": "infrastructure",
- "engine": "pingora",
- "description": "Pingora, Cloudflare's Rust HTTP framework, used as a standalone server with custom handlers for /baseline11 and preloaded /static files.",
- "repo": "https://github.com/cloudflare/pingora",
- "enabled": true,
- "tests": ["baseline", "pipelined", "limited-conn", "static"],
- "maintainers": []
-}
diff --git a/frameworks/pingora/src/main.rs b/frameworks/pingora/src/main.rs
deleted file mode 100644
index 928ea7273..000000000
--- a/frameworks/pingora/src/main.rs
+++ /dev/null
@@ -1,226 +0,0 @@
-// HttpArena entry: Pingora as a standalone HTTP/1.1 server.
-//
-// Pingora is a Rust library — not a ready-to-deploy server. We wrap it via
-// the `ServeHttp` trait (from `pingora::apps::http_app`) to serve requests
-// directly without an upstream, the same way we'd treat nginx or h2o as a
-// server. No proxy modules are used.
-
-use std::collections::HashMap;
-use std::sync::Arc;
-
-use async_trait::async_trait;
-use bytes::Bytes;
-use http::{Response, StatusCode};
-
-use pingora::apps::http_app::{HttpServer, ServeHttp};
-use pingora::prelude::*;
-use pingora::protocols::http::ServerSession;
-use pingora::server::configuration::ServerConf;
-use pingora::services::listening::Service;
-
-// --- Static files ---------------------------------------------------------
-
-struct StaticFile {
- data: Vec,
- content_type: &'static str,
-}
-
-fn mime_for(name: &str) -> &'static str {
- // Mirrors the nginx/h2o reference modules: only the extensions we actually
- // serve in the static test set. Unknown extensions fall back to octet-stream.
- if let Some(dot) = name.rfind('.') {
- match &name[dot..] {
- ".html" => "text/html",
- ".css" => "text/css",
- ".js" => "application/javascript",
- ".json" => "application/json",
- ".svg" => "image/svg+xml",
- ".webp" => "image/webp",
- ".woff2" => "font/woff2",
- _ => "application/octet-stream",
- }
- } else {
- "application/octet-stream"
- }
-}
-
-fn load_static_files() -> HashMap {
- let mut files = HashMap::new();
- let Ok(entries) = std::fs::read_dir("/data/static") else {
- return files;
- };
- for entry in entries.flatten() {
- let name = entry.file_name().to_string_lossy().into_owned();
- if let Ok(data) = std::fs::read(entry.path()) {
- let ct = mime_for(&name);
- files.insert(
- name,
- StaticFile {
- data,
- content_type: ct,
- },
- );
- }
- }
- files
-}
-
-// --- Query + body integer sum --------------------------------------------
-
-// Parse one `&`-separated `k=v` pair list, summing the integer `v` values.
-// Non-integer values are silently skipped — matches the nginx/h2o reference.
-fn sum_query_values(query: &str) -> i64 {
- let mut sum: i64 = 0;
- for pair in query.split('&') {
- if pair.is_empty() {
- continue;
- }
- if let Some(eq) = pair.find('=') {
- let v = &pair[eq + 1..];
- // Stop at the first `&` fragment boundary is already handled by split.
- if let Ok(n) = v.parse::() {
- sum += n;
- }
- }
- }
- sum
-}
-
-fn parse_body_int(body: &[u8]) -> Option {
- let s = std::str::from_utf8(body).ok()?;
- s.trim().parse::().ok()
-}
-
-// --- App ------------------------------------------------------------------
-
-struct HttpArenaApp {
- statics: Arc>,
-}
-
-impl HttpArenaApp {
- fn new(statics: Arc>) -> Self {
- Self { statics }
- }
-}
-
-// Read the full request body, capped at 64 KiB. The `read_request_body`
-// method returns Some(chunk) until EOF, then None; any error aborts.
-async fn read_full_body(session: &mut ServerSession) -> Bytes {
- const MAX: usize = 64 * 1024;
- let mut buf = bytes::BytesMut::new();
- loop {
- match session.read_request_body().await {
- Ok(Some(chunk)) => {
- if buf.len() + chunk.len() > MAX {
- // Truncate — oversize bodies are not part of the baseline11 contract.
- let remaining = MAX - buf.len();
- buf.extend_from_slice(&chunk[..remaining]);
- break;
- }
- buf.extend_from_slice(&chunk);
- }
- Ok(None) => break,
- Err(_) => break,
- }
- }
- buf.freeze()
-}
-
-#[async_trait]
-impl ServeHttp for HttpArenaApp {
- async fn response(&self, session: &mut ServerSession) -> Response> {
- let req = session.req_header();
- let method = req.method.clone();
- let uri = req.uri.clone();
- let path = uri.path();
- let query = uri.query().unwrap_or("");
-
- // /baseline11 — sum query args (+ body for POST), text/plain response.
- if path == "/baseline11" {
- let mut sum = sum_query_values(query);
- if method == http::Method::POST {
- let body = read_full_body(session).await;
- if let Some(n) = parse_body_int(&body) {
- sum += n;
- }
- }
- let body = sum.to_string().into_bytes();
- return Response::builder()
- .status(StatusCode::OK)
- .header(http::header::CONTENT_TYPE, "text/plain")
- .header(http::header::CONTENT_LENGTH, body.len())
- .body(body)
- .unwrap();
- }
-
- // /pipeline — fixed "ok" response for the pipelined profile (16
- // requests per batch over HTTP/1.1 pipelining).
- if path == "/pipeline" {
- let body = b"ok".to_vec();
- return Response::builder()
- .status(StatusCode::OK)
- .header(http::header::CONTENT_TYPE, "text/plain")
- .header(http::header::CONTENT_LENGTH, body.len())
- .body(body)
- .unwrap();
- }
-
- // /static/ — serve preloaded file from memory.
- if let Some(name) = path.strip_prefix("/static/") {
- if let Some(sf) = self.statics.get(name) {
- return Response::builder()
- .status(StatusCode::OK)
- .header(http::header::CONTENT_TYPE, sf.content_type)
- .header(http::header::CONTENT_LENGTH, sf.data.len())
- .body(sf.data.clone())
- .unwrap();
- }
- return not_found();
- }
-
- not_found()
- }
-}
-
-fn not_found() -> Response> {
- let body = b"Not Found".to_vec();
- Response::builder()
- .status(StatusCode::NOT_FOUND)
- .header(http::header::CONTENT_TYPE, "text/plain")
- .header(http::header::CONTENT_LENGTH, body.len())
- .body(body)
- .unwrap()
-}
-
-// --- Main -----------------------------------------------------------------
-
-fn main() {
- env_logger::init();
-
- // Threads per service. ServerConf::default().threads is 1, so explicitly
- // size to all available CPUs — Pingora uses this for each service's tokio
- // runtime (work-stealing within the service, not shared across services).
- let mut conf = ServerConf::default();
- conf.threads = num_cpus::get();
-
- // new_with_opt_and_conf avoids trying to parse CLI args or load a YAML
- // config file. bootstrap() must run before services are registered.
- let mut server = Server::new_with_opt_and_conf(None, conf);
- server.bootstrap();
-
- let statics = Arc::new(load_static_files());
- log::info!(
- "preloaded {} static files from /data/static",
- statics.len()
- );
-
- let app = HttpArenaApp::new(statics);
- let http_app = HttpServer::new_app(app);
-
- let mut http_service: Service> =
- Service::new("httparena-pingora".to_string(), http_app);
- http_service.add_tcp("0.0.0.0:8080");
-
- server.add_service(http_service);
- server.run_forever();
-}
diff --git a/frameworks/traefik/Dockerfile b/frameworks/traefik/Dockerfile
deleted file mode 100644
index 6d5adb577..000000000
--- a/frameworks/traefik/Dockerfile
+++ /dev/null
@@ -1,19 +0,0 @@
-FROM traefik:v3.1
-
-# Traefik's local-plugin loader expects sources at
-# /plugins-local/src//
-# where matches the `moduleName` declared under
-# experimental.localPlugins. in the static config. Our plugin's
-# import path is github.com/httparena/traefik-httparena, so the Go files
-# go in /plugins-local/src/github.com/httparena/traefik-httparena/.
-COPY plugin/httparena/ /plugins-local/src/github.com/httparena/traefik-httparena/
-
-# Static + dynamic Traefik config.
-COPY traefik.yml /etc/traefik/traefik.yml
-COPY dynamic.yml /etc/traefik/dynamic.yml
-
-EXPOSE 8080
-
-# The traefik image already has an entrypoint that reads --configFile; we
-# point at our static config. No CMD override on the binary itself.
-CMD ["--configFile=/etc/traefik/traefik.yml"]
diff --git a/frameworks/traefik/README.md b/frameworks/traefik/README.md
deleted file mode 100644
index 29503b9d0..000000000
--- a/frameworks/traefik/README.md
+++ /dev/null
@@ -1,39 +0,0 @@
-# traefik
-
-Traefik acting as a standalone HTTP/1.1 server. Traefik is primarily a reverse
-proxy — it has no native way to produce computed responses or serve files off
-disk — so the benchmark contract is implemented via a **local Traefik plugin**
-written in Go and interpreted at runtime by Traefik's embedded Yaegi engine.
-
-## Stack
-
-- **Engine:** traefik:v3.1 (Docker image)
-- **Language:** Go (interpreted by Yaegi at runtime — no pre-compilation)
-- **Config:** `traefik.yml` (static) + `dynamic.yml` (routers/middlewares)
-- **Plugin:** `plugin/httparena/` — stdlib-only middleware, mounted inside
- the container at `/plugins-local/src/github.com/httparena/traefik-httparena/`
- (Traefik's required local-plugin directory layout).
-
-## Endpoints
-
-| Endpoint | Method | Description |
-|----------|--------|-------------|
-| `/baseline11` | GET | Sums query parameter integer values |
-| `/baseline11` | POST | Sums query parameters + parsed request body |
-| `/static/{filename}` | GET | Streams a file from `/data/static/` |
-
-## Notes
-
-- Because the plugin is **interpreted** by Yaegi rather than compiled, per-
- request overhead is materially higher than the other Go-based entries
- (caddy, go-fasthttp) that compile native handlers. Expect this entry to
- rank at or near the bottom of the infrastructure pool. That is the honest
- reality of the Yaegi plugin surface — included for completeness, not
- because it would win.
-- The plugin is pure stdlib. Yaegi's coverage of third-party packages is
- patchy, so hand-rolled content-type detection is used instead of pulling
- the `mime` package.
-- A catch-all router wires every request through the plugin middleware;
- the declared upstream service is a stub (127.0.0.1:1) that the plugin
- never actually calls — it short-circuits `/baseline11` and `/static/*`
- with `WriteHeader` + `io.Copy` and returns without invoking `next`.
diff --git a/frameworks/traefik/dynamic.yml b/frameworks/traefik/dynamic.yml
deleted file mode 100644
index 2f123c2e2..000000000
--- a/frameworks/traefik/dynamic.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-# Traefik dynamic configuration.
-#
-# One catch-all router routes every request through the httparena middleware
-# (our Yaegi-interpreted local plugin). The plugin short-circuits /baseline11
-# and /static/* and never calls next.ServeHTTP for those paths, so the dummy
-# service below is only hit for paths the plugin passes through (which should
-# be none of the benchmarked routes). We still have to declare a service —
-# routers cannot exist without one — hence a stub pointing at a black hole.
-
-http:
- routers:
- catchall:
- entryPoints:
- - web
- rule: "PathPrefix(`/`)"
- middlewares:
- - httparena
- service: dummy
- priority: 1
-
- middlewares:
- httparena:
- plugin:
- httparena: {}
-
- services:
- dummy:
- loadBalancer:
- servers:
- - url: "http://127.0.0.1:1"
diff --git a/frameworks/traefik/meta.json b/frameworks/traefik/meta.json
deleted file mode 100644
index 9199b0b0a..000000000
--- a/frameworks/traefik/meta.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "display_name": "traefik",
- "language": "Go",
- "type": "infrastructure",
- "engine": "traefik",
- "description": "Traefik with a Yaegi-interpreted local plugin handling /baseline11 computation and /static file serving. Plugin code is interpreted, so throughput is modest by design.",
- "repo": "https://github.com/traefik/traefik",
- "enabled": true,
- "tests": ["baseline", "pipelined", "limited-conn", "static"],
- "maintainers": []
-}
diff --git a/frameworks/traefik/plugin/httparena/.traefik.yml b/frameworks/traefik/plugin/httparena/.traefik.yml
deleted file mode 100644
index d0bf4a42e..000000000
--- a/frameworks/traefik/plugin/httparena/.traefik.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-# Traefik plugin manifest. Traefik's local-plugin loader reads this file
-# from the plugin source root to discover display metadata, the plugin
-# type, and the expected import path. `import` MUST match the moduleName
-# declared under experimental.localPlugins. in the static config.
-
-displayName: HttpArena
-type: middleware
-import: github.com/httparena/traefik-httparena
-
-summary: |
- HttpArena benchmark handler. Intercepts GET|POST /baseline11 (sum of
- integer query args plus POST body) and GET /static/ (serves
- files from /data/static), passing everything else through.
-
-testData: {}
diff --git a/frameworks/traefik/plugin/httparena/go.mod b/frameworks/traefik/plugin/httparena/go.mod
deleted file mode 100644
index 267a0eea6..000000000
--- a/frameworks/traefik/plugin/httparena/go.mod
+++ /dev/null
@@ -1,3 +0,0 @@
-module github.com/httparena/traefik-httparena
-
-go 1.22
diff --git a/frameworks/traefik/plugin/httparena/httparena.go b/frameworks/traefik/plugin/httparena/httparena.go
deleted file mode 100644
index 278bfd45a..000000000
--- a/frameworks/traefik/plugin/httparena/httparena.go
+++ /dev/null
@@ -1,207 +0,0 @@
-// Package traefik_httparena is a Traefik local plugin implementing the
-// HttpArena server contract (/baseline11 + /static/*). It is loaded by
-// Traefik's Yaegi interpreter at runtime, so everything here sticks to
-// the standard library — third-party packages tend to break under Yaegi.
-//
-// Contract recap:
-// - GET|POST /baseline11?a=X&b=Y — sum query ints (plus POST body as int),
-// reply text/plain with decimal sum, no trailing newline.
-// - GET /static/ — serve file at /data/static/.
-// - Anything else falls through to next.ServeHTTP (Traefik will 404 when
-// no backend service matches).
-//
-// The underscore in the package name is required because Traefik's plugin
-// loader derives the package from the last path segment of moduleName
-// (`traefik-httparena`) and then sanitises hyphens to underscores.
-package traefik_httparena
-
-import (
- "bytes"
- "context"
- "io"
- "net/http"
- "os"
- "path/filepath"
- "strconv"
- "strings"
-)
-
-// Config holds the plugin configuration. No tunables — the plugin is a
-// drop-in request handler.
-type Config struct{}
-
-// CreateConfig returns the zero-value config. Traefik calls this to
-// allocate the struct it then fills from the dynamic config.
-func CreateConfig() *Config {
- return &Config{}
-}
-
-// HttpArena is the middleware instance Traefik drives per-request.
-type HttpArena struct {
- next http.Handler
- name string
- staticFS string
-}
-
-// maxBodyBytes caps the POST body we'll read — the contract is a single
-// integer so anything past a few bytes is noise. 64 KB is generous.
-const maxBodyBytes = 64 * 1024
-
-// New wires the middleware into Traefik's handler chain. It's invoked
-// once per middleware instance (not per request).
-func New(ctx context.Context, next http.Handler, config *Config, name string) (http.Handler, error) {
- return &HttpArena{
- next: next,
- name: name,
- staticFS: "/data/static",
- }, nil
-}
-
-// ServeHTTP dispatches /baseline11, /pipeline, and /static/* directly and
-// delegates everything else to `next`.
-func (h *HttpArena) ServeHTTP(rw http.ResponseWriter, req *http.Request) {
- path := req.URL.Path
-
- if path == "/baseline11" {
- h.handleBaseline(rw, req)
- return
- }
-
- // Pipelined profile: fixed "ok" body. Cheaper than routing through
- // handleBaseline since there's nothing to parse.
- if path == "/pipeline" {
- rw.Header().Set("Content-Type", "text/plain")
- rw.Header().Set("Content-Length", "2")
- rw.WriteHeader(http.StatusOK)
- _, _ = io.WriteString(rw, "ok")
- return
- }
-
- if strings.HasPrefix(path, "/static/") {
- h.handleStatic(rw, req, path[len("/static/"):])
- return
- }
-
- h.next.ServeHTTP(rw, req)
-}
-
-// handleBaseline sums query ints and (for POST) the body, replying with
-// the decimal sum as text/plain, no trailing newline.
-func (h *HttpArena) handleBaseline(rw http.ResponseWriter, req *http.Request) {
- if req.Method != http.MethodGet && req.Method != http.MethodPost {
- rw.Header().Set("Content-Type", "text/plain")
- rw.WriteHeader(http.StatusMethodNotAllowed)
- _, _ = io.WriteString(rw, "Method Not Allowed")
- return
- }
-
- var sum int64
- for _, values := range req.URL.Query() {
- for _, v := range values {
- n, err := strconv.ParseInt(v, 10, 64)
- if err != nil {
- continue
- }
- sum += n
- }
- }
-
- if req.Method == http.MethodPost && req.Body != nil {
- body, err := io.ReadAll(io.LimitReader(req.Body, maxBodyBytes))
- if err == nil && len(body) > 0 {
- n, err := strconv.ParseInt(string(bytes.TrimSpace(body)), 10, 64)
- if err == nil {
- sum += n
- }
- }
- }
-
- out := strconv.FormatInt(sum, 10)
- rw.Header().Set("Content-Type", "text/plain")
- rw.Header().Set("Content-Length", strconv.Itoa(len(out)))
- rw.WriteHeader(http.StatusOK)
- _, _ = io.WriteString(rw, out)
-}
-
-// handleStatic serves a file from the /data/static mount. The `rel` arg
-// is the path segment after /static/. We reject paths that try to climb
-// out of the mount via ../ before joining.
-func (h *HttpArena) handleStatic(rw http.ResponseWriter, req *http.Request, rel string) {
- if rel == "" || strings.Contains(rel, "..") {
- http.NotFound(rw, req)
- return
- }
-
- full := filepath.Join(h.staticFS, filepath.FromSlash(rel))
- // Extra belt-and-braces: after Join, ensure the result is still under
- // the mount prefix.
- if !strings.HasPrefix(full, h.staticFS+string(filepath.Separator)) && full != h.staticFS {
- http.NotFound(rw, req)
- return
- }
-
- f, err := os.Open(full)
- if err != nil {
- if os.IsNotExist(err) {
- http.NotFound(rw, req)
- return
- }
- http.Error(rw, "internal error", http.StatusInternalServerError)
- return
- }
- defer f.Close()
-
- info, err := f.Stat()
- if err != nil || info.IsDir() {
- http.NotFound(rw, req)
- return
- }
-
- rw.Header().Set("Content-Type", contentTypeFor(rel))
- rw.Header().Set("Content-Length", strconv.FormatInt(info.Size(), 10))
- rw.WriteHeader(http.StatusOK)
- _, _ = io.Copy(rw, f)
-}
-
-// contentTypeFor returns a content-type for common benchmark assets.
-// mime.TypeByExtension would normally cover this, but Yaegi's coverage of
-// the `mime` package has historically been patchy, so a tiny hand-rolled
-// switch is safer and avoids pulling the extra dependency.
-func contentTypeFor(name string) string {
- ext := strings.ToLower(filepath.Ext(name))
- switch ext {
- case ".html", ".htm":
- return "text/html; charset=utf-8"
- case ".css":
- return "text/css; charset=utf-8"
- case ".js", ".mjs":
- return "application/javascript; charset=utf-8"
- case ".json":
- return "application/json"
- case ".txt":
- return "text/plain; charset=utf-8"
- case ".svg":
- return "image/svg+xml"
- case ".png":
- return "image/png"
- case ".jpg", ".jpeg":
- return "image/jpeg"
- case ".gif":
- return "image/gif"
- case ".webp":
- return "image/webp"
- case ".ico":
- return "image/x-icon"
- case ".woff":
- return "font/woff"
- case ".woff2":
- return "font/woff2"
- case ".wasm":
- return "application/wasm"
- case ".br":
- return "application/octet-stream"
- case ".gz":
- return "application/gzip"
- }
- return "application/octet-stream"
-}
diff --git a/frameworks/traefik/traefik.yml b/frameworks/traefik/traefik.yml
deleted file mode 100644
index 5de5a006e..000000000
--- a/frameworks/traefik/traefik.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-# Traefik static configuration.
-#
-# Keep logs quiet so they do not skew benchmark overhead, and register the
-# local plugin that implements the HttpArena contract. The `moduleName`
-# under experimental.localPlugins.httparena MUST match the directory
-# layout under /plugins-local/src/ that the Dockerfile sets up.
-
-global:
- checkNewVersion: false
- sendAnonymousUsage: false
-
-log:
- level: ERROR
-
-# accessLog is intentionally omitted — leaving the key absent disables it.
-
-entryPoints:
- web:
- address: ":8080"
-
-providers:
- file:
- filename: /etc/traefik/dynamic.yml
- watch: false
-
-experimental:
- localPlugins:
- httparena:
- moduleName: github.com/httparena/traefik-httparena
diff --git a/scripts/gen_new_leaderboard_data.py b/scripts/gen_new_leaderboard_data.py
index ec168b6ef..0432e650c 100644
--- a/scripts/gen_new_leaderboard_data.py
+++ b/scripts/gen_new_leaderboard_data.py
@@ -31,54 +31,54 @@
# id, label, category, blurb,
# explorer: conn counts shown in the explorer (all useful runs),
# scored: conn counts that feed the composite (canonical scored set),
-# s/es/is: scored / engineScored / infraScored eligibility flags.
+# s/es: scored / engineScored eligibility flags.
# scored conns are always a subset of explorer conns.
CATALOG = [
("Connection", [
- ("baseline", "Baseline", "Mixed GET/POST with query parsing.", [512,4096,16384],[512,4096], True,True,True),
- ("pipelined", "Pipelined", "16x batched HTTP/1.1 pipelining.", [512,4096,16384],[512,4096], True,True,True),
- ("limited-conn", "Short-lived", "Connections close after 10 requests.", [512,4096], [512,4096], True,True,True),
+ ("baseline", "Baseline", "Mixed GET/POST with query parsing.", [512,4096,16384],[512,4096], True,True),
+ ("pipelined", "Pipelined", "16x batched HTTP/1.1 pipelining.", [512,4096,16384],[512,4096], True,True),
+ ("limited-conn", "Short-lived", "Connections close after 10 requests.", [512,4096], [512,4096], True,True),
]),
("Workload", [
- ("json", "JSON", "Per-request JSON serialization.", [4096], [4096], True,False,False),
- ("json-comp", "JSON Comp", "gzip/brotli content negotiation.", [512,4096,16384], [512,4096,16384],True,False,False),
- ("json-tls", "JSON TLS", "JSON over HTTP/1.1 + TLS.", [4096], [4096], True,True,False),
- ("upload", "Upload", "Large request-body ingestion.", [32,64,256,512], [32,256], True,False,False),
- ("static", "Static", "20-file static asset serving.", [1024,4096,6800,16384],[1024,4096,6800],True,False,True),
+ ("json", "JSON", "Per-request JSON serialization.", [4096], [4096], True,False),
+ ("json-comp", "JSON Comp", "gzip/brotli content negotiation.", [512,4096,16384], [512,4096,16384],True,False),
+ ("json-tls", "JSON TLS", "JSON over HTTP/1.1 + TLS.", [4096], [4096], True,True),
+ ("upload", "Upload", "Large request-body ingestion.", [32,64,256,512], [32,256], True,False),
+ ("static", "Static", "20-file static asset serving.", [1024,4096,6800,16384],[1024,4096,6800],True,False),
]),
("Database", [
- ("async-db", "Async DB", "Async Postgres sequential scan.", [1024], [1024], True,True,False),
- ("crud", "CRUD", "REST API: list, cached read, upsert, update.", [4096], [4096], True,False,False),
- ("fortunes", "Fortunes", "DB query + HTML template render (reference).", [1024], [1024], False,False,False),
+ ("async-db", "Async DB", "Async Postgres sequential scan.", [1024], [1024], True,True),
+ ("crud", "CRUD", "REST API: list, cached read, upsert, update.", [4096], [4096], True,False),
+ ("fortunes", "Fortunes", "DB query + HTML template render (reference).", [1024], [1024], False,False),
]),
("Multi-endpoint", [
- ("api-4", "API-4", "Mixed workload, server capped at 4 CPUs.", [256], [256], True,False,False),
- ("api-16", "API-16", "Mixed workload, server capped at 16 CPUs.", [1024], [1024], True,False,False),
+ ("api-4", "API-4", "Mixed workload, server capped at 4 CPUs.", [256], [256], True,False),
+ ("api-16", "API-16", "Mixed workload, server capped at 16 CPUs.", [1024], [1024], True,False),
]),
("HTTP/2", [
- ("baseline-h2", "Baseline", "Baseline over h2 (TLS, ALPN).", [256,1024], [256,1024], True,True,False),
- ("static-h2", "Static", "Static assets over h2 multiplexing.", [256,1024], [256,1024], True,True,False),
- ("baseline-h2c", "Baseline (h2c)", "Baseline over cleartext h2.", [256,1024,4096],[256,1024,4096],True,True,False),
- ("json-h2c", "JSON (h2c)", "JSON over cleartext h2.", [1024,4096], [1024,4096], True,False,False),
+ ("baseline-h2", "Baseline", "Baseline over h2 (TLS, ALPN).", [256,1024], [256,1024], True,True),
+ ("static-h2", "Static", "Static assets over h2 multiplexing.", [256,1024], [256,1024], True,True),
+ ("baseline-h2c", "Baseline (h2c)", "Baseline over cleartext h2.", [256,1024,4096],[256,1024,4096],True,True),
+ ("json-h2c", "JSON (h2c)", "JSON over cleartext h2.", [1024,4096], [1024,4096], True,False),
]),
("HTTP/3", [
- ("baseline-h3", "Baseline", "Baseline over QUIC + TLS 1.3.", [64], [64], True,True,False),
- ("static-h3", "Static", "Static assets over QUIC.", [64], [64], True,True,False),
+ ("baseline-h3", "Baseline", "Baseline over QUIC + TLS 1.3.", [64], [64], True,True),
+ ("static-h3", "Static", "Static assets over QUIC.", [64], [64], True,True),
]),
("gRPC", [
- ("unary-grpc", "Unary", "Unary gRPC over plaintext h2.", [256,1024],[256,1024],True,True,False),
- ("unary-grpc-tls", "Unary TLS", "Unary gRPC over TLS.", [256,1024],[256,1024],True,True,False),
- ("stream-grpc", "Stream", "Server-streaming gRPC, plaintext.", [64], [64], True,True,False),
- ("stream-grpc-tls","Stream TLS","Server-streaming gRPC over TLS.", [64], [64], True,True,False),
+ ("unary-grpc", "Unary", "Unary gRPC over plaintext h2.", [256,1024],[256,1024],True,True),
+ ("unary-grpc-tls", "Unary TLS", "Unary gRPC over TLS.", [256,1024],[256,1024],True,True),
+ ("stream-grpc", "Stream", "Server-streaming gRPC, plaintext.", [64], [64], True,True),
+ ("stream-grpc-tls","Stream TLS","Server-streaming gRPC over TLS.", [64], [64], True,True),
]),
("Gateway", [
- ("gateway-64", "Gateway (H2)", "Reverse proxy + server, mixed h2.", [256,512,1024],[512,1024],True,True,False),
- ("gateway-h3", "Gateway (H3)", "Reverse proxy + server over h3.", [64,256], [64,256], True,True,False),
- ("production-stack", "Production Stack", "Edge + Redis + JWT auth + server.",[256,1024],[256,1024],True,True,False),
+ ("gateway-64", "Gateway (H2)", "Reverse proxy + server, mixed h2.", [256,512,1024],[512,1024],True,True),
+ ("gateway-h3", "Gateway (H3)", "Reverse proxy + server over h3.", [64,256], [64,256], True,True),
+ ("production-stack", "Production Stack", "Edge + Redis + JWT auth + server.",[256,1024],[256,1024],True,True),
]),
("WebSocket", [
- ("echo-ws", "Echo", "WebSocket echo throughput.", [512,4096,16384],[512,4096,16384],True,True,False),
- ("echo-ws-pipeline", "Echo Pipelined", "Batched WebSocket echo.", [512,4096,16384],[512,4096,16384],True,True,False),
+ ("echo-ws", "Echo", "WebSocket echo throughput.", [512,4096,16384],[512,4096,16384],True,True),
+ ("echo-ws-pipeline", "Echo Pipelined", "Batched WebSocket echo.", [512,4096,16384],[512,4096,16384],True,True),
]),
]
@@ -528,7 +528,7 @@ def main():
profiles, results = [], {}
for category, entries in CATALOG:
- for pid, label, blurb, explorer, scored, s, es, isc in entries:
+ for pid, label, blurb, explorer, scored, s, es in entries:
present = []
for c in explorer:
rows = load(f"{pid}-{c}.json")
@@ -554,7 +554,7 @@ def main():
"id": pid, "label": label, "category": category, "blurb": blurb,
"conns": present,
"scoredConns": [c for c in scored if c in present],
- "scored": s, "engineScored": es, "infraScored": isc,
+ "scored": s, "engineScored": es,
}
docid = PROFILE_DOC.get(pid)
if docid and docid in docs_content:
diff --git a/site/content/docs/add-framework/implementation-rules/_index.md b/site/content/docs/add-framework/implementation-rules/_index.md
index 235c5f051..07bf30422 100644
--- a/site/content/docs/add-framework/implementation-rules/_index.md
+++ b/site/content/docs/add-framework/implementation-rules/_index.md
@@ -8,5 +8,4 @@ Every entry declares a **type** in `meta.json` - what it is and how it is ranked
{{< cards >}}
{{< card link="frameworks" title="Frameworks" subtitle="Flagship, Emerging and Experimental tiers - run in Standard or Tuned mode." icon="collection" >}}
{{< card link="engine" title="Engine" subtitle="Bare-metal HTTP implementations (raw sockets, custom parser). Ranked separately." icon="lightning-bolt" >}}
- {{< card link="infrastructure" title="Infrastructure" subtitle="Reverse proxies and static-file servers (nginx, h2o) without an app framework layer." icon="server" >}}
{{< /cards >}}
diff --git a/site/content/docs/add-framework/implementation-rules/engine.md b/site/content/docs/add-framework/implementation-rules/engine.md
index 3d485ab2b..c09d6f78e 100644
--- a/site/content/docs/add-framework/implementation-rules/engine.md
+++ b/site/content/docs/add-framework/implementation-rules/engine.md
@@ -3,7 +3,7 @@ title: Engine
weight: 2
---
-Engine entries (`type: engine`) are bare-metal HTTP implementations - raw sockets, custom parsers, low-level I/O. They are not frameworks and are ranked separately. (Reverse proxies and static-file servers like nginx and h2o are classified as [Infrastructure](../infrastructure/), not Engine.)
+Engine entries (`type: engine`) are bare-metal HTTP implementations - raw sockets, custom parsers, low-level I/O. They are not frameworks and are ranked separately.
## What qualifies as an engine
diff --git a/site/content/docs/add-framework/implementation-rules/infrastructure.md b/site/content/docs/add-framework/implementation-rules/infrastructure.md
deleted file mode 100644
index a2e2e2377..000000000
--- a/site/content/docs/add-framework/implementation-rules/infrastructure.md
+++ /dev/null
@@ -1,19 +0,0 @@
----
-title: Infrastructure
-weight: 3
----
-
-Infrastructure entries (`type: infrastructure`) are reverse proxies and static-file servers - nginx, h2o, Caddy and the like - run without an application framework layer. Like engines, they are not frameworks and are ranked separately.
-
-## What qualifies
-
-- Reverse proxies terminating TLS and forwarding upstream (nginx, Caddy, h2o)
-- Standalone static-file servers
-- Edge servers used purely as a proxy in front of an application
-
-## Rules
-
-- Must implement the endpoint spec correctly and pass the validation suite
-- No restrictions on configuration
-- Ranked separately from framework entries (flagship and emerging)
-- Participates in the static-file and protocol tests where applicable
diff --git a/site/content/docs/add-framework/meta-json.md b/site/content/docs/add-framework/meta-json.md
index 2931d61ba..b5f7dabd6 100644
--- a/site/content/docs/add-framework/meta-json.md
+++ b/site/content/docs/add-framework/meta-json.md
@@ -26,7 +26,7 @@ Create a `meta.json` file in your framework directory:
| `display_name` | Name shown on the leaderboard |
| `language` | Programming language (e.g., `Go`, `Rust`, `C#`, `Java`) |
| `engine` | HTTP server engine (e.g., `Kestrel`, `Tomcat`, `hyper`) |
-| `type` | `flagship`, `emerging` or `experimental` for frameworks, `engine` for bare-metal implementations, `infrastructure` for reverse proxies / static-file servers |
+| `type` | `flagship`, `emerging` or `experimental` for frameworks, `engine` for bare-metal implementations |
| `mode` | Frameworks only: `standard` (default - idiomatic, production-style usage) or `tuned` (non-default config / optimizations) |
| `description` | Shown in the framework detail popup on the leaderboard |
| `repo` | Link to the framework's source repository |
diff --git a/site/content/docs/scoring/composite-score.md b/site/content/docs/scoring/composite-score.md
index 07a5b0565..6a19806dc 100644
--- a/site/content/docs/scoring/composite-score.md
+++ b/site/content/docs/scoring/composite-score.md
@@ -30,7 +30,7 @@ The final composite score is the **sum** of per-profile scores across all **scor
composite = sum(scored_profile_scores)
```
-Summing instead of averaging means the composite scales with the number of scored profiles: a framework that places well in many profiles separates cleanly from one that only wins a single profile. A perfect-across-the-board framework earns 100 points per profile, so with the current 26 scored profiles for framework (flagship and emerging) entries the raw-throughput ceiling is ~2,600, rising to ~3,900 when the memory-efficiency toggle is on (each profile adds up to 50 more points). Engine and infrastructure entries are scored on smaller subsets and have correspondingly lower ceilings.
+Summing instead of averaging means the composite scales with the number of scored profiles: a framework that places well in many profiles separates cleanly from one that only wins a single profile. A perfect-across-the-board framework earns 100 points per profile, so with the current 26 scored profiles for framework (flagship and emerging) entries the raw-throughput ceiling is ~2,600, rising to ~3,900 when the memory-efficiency toggle is on (each profile adds up to 50 more points). Engine entries are scored on a smaller subset and have a correspondingly lower ceiling.
Frameworks that don't participate in a scored profile receive 0 for that profile, which lowers their composite by the full 100-point ceiling of that profile.
@@ -154,10 +154,9 @@ B actually wins the memory term despite A's 5× throughput advantage, because `s
Types are scored **separately** - each has its own composite ranking and normalization pool. The scored profiles differ by type:
- **Frameworks** (Flagship, Emerging and Experimental, in either Standard or Tuned mode) are scored on all scored profiles across H/1.1, H/2, H/3, gRPC, and WebSocket.
-- **Infrastructure** (nginx, h2o, and similar proxies/servers) are scored only on Baseline, Pipelined, Short-lived, and Static - the profiles that don't require executing application logic. Other profiles (JSON, async-db, etc.) may be displayed as reference data but do not count toward the infrastructure composite.
- **Engines** are scored on a reduced set: Baseline, Pipelined, Short-lived, API-4, H/2 (both), H/3 (both), gRPC (both), and WebSocket, since most engines don't implement the heavier endpoints (JSON, upload).
-The Type filter on the composite leaderboard switches between these rankings. Flagship, Emerging and Experimental can be combined (they share the framework normalization pool); Infrastructure and Engine are each exclusive. Experimental is hidden by default and shown only when selected. Tuned entries (a `mode`, not a type) are shown within whichever framework types are selected, marked with a ring.
+The Type filter on the composite leaderboard switches between these rankings. Flagship, Emerging and Experimental can be combined (they share the framework normalization pool); Engine is exclusive. Experimental is hidden by default and shown only when selected. Tuned entries (a `mode`, not a type) are shown within whichever framework types are selected, marked with a ring.
## Why this approach
diff --git a/site/data/baseline-4096.json b/site/data/baseline-4096.json
index c90e96cee..19aeb75f7 100644
--- a/site/data/baseline-4096.json
+++ b/site/data/baseline-4096.json
@@ -39,25 +39,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "apache",
- "language": "C",
- "rps": 191061,
- "avg_latency": "6.21ms",
- "p99_latency": "71.10ms",
- "cpu": "6079.4%",
- "memory": "214MiB",
- "connections": 4096,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "21.48MB/s",
- "reconnects": 41850,
- "status_2xx": 955308,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "aspnet-minimal",
"language": "C#",
@@ -198,25 +179,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "caddy",
- "language": "Go",
- "rps": 480030,
- "avg_latency": "8.43ms",
- "p99_latency": "155.20ms",
- "cpu": "5334.0%",
- "memory": "281MiB",
- "connections": 4096,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "53.55MB/s",
- "reconnects": 0,
- "status_2xx": 2400154,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "dart-io",
"language": "Dart",
@@ -296,25 +258,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "envoy",
- "language": "C++",
- "rps": 671415,
- "avg_latency": "6.08ms",
- "p99_latency": "16.90ms",
- "cpu": "6361.6%",
- "memory": "193MiB",
- "connections": 4096,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "77.44MB/s",
- "reconnects": 6547,
- "status_2xx": 3357075,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "fastapi",
"language": "Python",
@@ -593,26 +536,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "h2o",
- "language": "C",
- "rps": 3450370,
- "avg_latency": "1.19ms",
- "p99_latency": "6.75ms",
- "cpu": "6395.0%",
- "memory": "73.4MiB",
- "connections": 4096,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "338.77MB/s",
- "input_bw": "266.53MB/s",
- "reconnects": 0,
- "status_2xx": 17251853,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "h2o-mruby",
"language": "Ruby",
@@ -1011,26 +934,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "nginx",
- "language": "C",
- "rps": 3153087,
- "avg_latency": "1.30ms",
- "p99_latency": "6.77ms",
- "cpu": "6370.7%",
- "memory": "3.5GiB",
- "connections": 4096,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "426.80MB/s",
- "input_bw": "243.57MB/s",
- "reconnects": 0,
- "status_2xx": 15765437,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "ngx-php",
"language": "PHP",
@@ -1091,25 +994,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "pingora",
- "language": "Rust",
- "rps": 1132903,
- "avg_latency": "3.60ms",
- "p99_latency": "6.45ms",
- "cpu": "3945.2%",
- "memory": "435MiB",
- "connections": 4096,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "136.09MB/s",
- "reconnects": 0,
- "status_2xx": 5664515,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "pyronova",
"language": "Python",
@@ -1630,25 +1514,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "traefik",
- "language": "Go",
- "rps": 381814,
- "avg_latency": "10.27ms",
- "p99_latency": "381.90ms",
- "cpu": "5291.4%",
- "memory": "421MiB",
- "connections": 4096,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "37.13MB/s",
- "reconnects": 0,
- "status_2xx": 1909072,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "trillium",
"language": "Rust",
diff --git a/site/data/baseline-512.json b/site/data/baseline-512.json
index d59b781b5..5378308d4 100644
--- a/site/data/baseline-512.json
+++ b/site/data/baseline-512.json
@@ -39,25 +39,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "apache",
- "language": "C",
- "rps": 189525,
- "avg_latency": "2.66ms",
- "p99_latency": "16.50ms",
- "cpu": "6083.2%",
- "memory": "160MiB",
- "connections": 512,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "21.31MB/s",
- "reconnects": 54272,
- "status_2xx": 947626,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "aspnet-minimal",
"language": "C#",
@@ -198,25 +179,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "caddy",
- "language": "Go",
- "rps": 403783,
- "avg_latency": "1.27ms",
- "p99_latency": "37.20ms",
- "cpu": "4862.0%",
- "memory": "152MiB",
- "connections": 512,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "45.04MB/s",
- "reconnects": 0,
- "status_2xx": 2018915,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "dart-io",
"language": "Dart",
@@ -296,25 +258,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "envoy",
- "language": "C++",
- "rps": 680913,
- "avg_latency": "747us",
- "p99_latency": "1.37ms",
- "cpu": "6076.9%",
- "memory": "124MiB",
- "connections": 512,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "78.54MB/s",
- "reconnects": 0,
- "status_2xx": 3404566,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "fastapi",
"language": "Python",
@@ -593,26 +536,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "h2o",
- "language": "C",
- "rps": 3108624,
- "avg_latency": "164us",
- "p99_latency": "2.73ms",
- "cpu": "6620.1%",
- "memory": "39.6MiB",
- "connections": 512,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "305.28MB/s",
- "input_bw": "240.13MB/s",
- "reconnects": 0,
- "status_2xx": 15543120,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "h2o-mruby",
"language": "Ruby",
@@ -1011,26 +934,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "nginx",
- "language": "C",
- "rps": 2927306,
- "avg_latency": "174us",
- "p99_latency": "3.09ms",
- "cpu": "6546.2%",
- "memory": "3.4GiB",
- "connections": 512,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "396.31MB/s",
- "input_bw": "226.13MB/s",
- "reconnects": 0,
- "status_2xx": 14636530,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "ngx-php",
"language": "PHP",
@@ -1091,25 +994,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "pingora",
- "language": "Rust",
- "rps": 1026126,
- "avg_latency": "499us",
- "p99_latency": "1.34ms",
- "cpu": "3124.2%",
- "memory": "80MiB",
- "connections": 512,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "123.27MB/s",
- "reconnects": 0,
- "status_2xx": 5130634,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "pyronova",
"language": "Python",
@@ -1630,25 +1514,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "traefik",
- "language": "Go",
- "rps": 367895,
- "avg_latency": "1.39ms",
- "p99_latency": "14.70ms",
- "cpu": "5101.2%",
- "memory": "285MiB",
- "connections": 512,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "35.78MB/s",
- "reconnects": 0,
- "status_2xx": 1839476,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "trillium",
"language": "Rust",
diff --git a/site/data/baseline-h2-1024.json b/site/data/baseline-h2-1024.json
index 91dd37df0..5bebc6990 100644
--- a/site/data/baseline-h2-1024.json
+++ b/site/data/baseline-h2-1024.json
@@ -171,26 +171,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "h2o",
- "language": "C",
- "rps": 14283360,
- "avg_latency": "3.97ms",
- "p99_latency": "3.97ms",
- "cpu": "2893.5%",
- "memory": "156.1MiB",
- "connections": 1024,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "354.17MB/s",
- "input_bw": "",
- "reconnects": 0,
- "status_2xx": 71416800,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "h2o-mruby",
"language": "Ruby",
@@ -345,26 +325,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "nginx",
- "language": "C",
- "rps": 3166330,
- "avg_latency": "29.83ms",
- "p99_latency": "29.83ms",
- "cpu": "6575.8%",
- "memory": "3.5GiB",
- "connections": 1024,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "259.70MB/s",
- "input_bw": "",
- "reconnects": 0,
- "status_2xx": 15831650,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "ngx-php",
"language": "PHP",
diff --git a/site/data/baseline-h2-256.json b/site/data/baseline-h2-256.json
index 72a8ecba8..32c8daf2f 100644
--- a/site/data/baseline-h2-256.json
+++ b/site/data/baseline-h2-256.json
@@ -171,26 +171,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "h2o",
- "language": "C",
- "rps": 13614680,
- "avg_latency": "1.14ms",
- "p99_latency": "1.14ms",
- "cpu": "2414.8%",
- "memory": "124.4MiB",
- "connections": 256,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "337.59MB/s",
- "input_bw": "",
- "reconnects": 0,
- "status_2xx": 68073400,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "h2o-mruby",
"language": "Ruby",
@@ -345,26 +325,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "nginx",
- "language": "C",
- "rps": 3142850,
- "avg_latency": "8.50ms",
- "p99_latency": "8.50ms",
- "cpu": "6382.0%",
- "memory": "3.5GiB",
- "connections": 256,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "257.77MB/s",
- "input_bw": "",
- "reconnects": 0,
- "status_2xx": 15714253,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "ngx-php",
"language": "PHP",
diff --git a/site/data/baseline-h2c-1024.json b/site/data/baseline-h2c-1024.json
index 0de961371..ce3c446aa 100644
--- a/site/data/baseline-h2c-1024.json
+++ b/site/data/baseline-h2c-1024.json
@@ -56,25 +56,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "h2o",
- "language": "C",
- "rps": 15869407,
- "avg_latency": "3.35ms",
- "p99_latency": "3.35ms",
- "cpu": "2363.1%",
- "memory": "110MiB",
- "connections": 1024,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "398.22MB/s",
- "reconnects": 0,
- "status_2xx": 80299200,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "ktor",
"language": "Kotlin",
diff --git a/site/data/baseline-h2c-256.json b/site/data/baseline-h2c-256.json
index 05cff2042..222537f62 100644
--- a/site/data/baseline-h2c-256.json
+++ b/site/data/baseline-h2c-256.json
@@ -56,25 +56,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "h2o",
- "language": "C",
- "rps": 16054059,
- "avg_latency": "867us",
- "p99_latency": "867us",
- "cpu": "2313.2%",
- "memory": "98MiB",
- "connections": 256,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "402.05MB/s",
- "reconnects": 0,
- "status_2xx": 81073000,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "ktor",
"language": "Kotlin",
diff --git a/site/data/baseline-h2c-4096.json b/site/data/baseline-h2c-4096.json
index 2425275ed..42955ccfd 100644
--- a/site/data/baseline-h2c-4096.json
+++ b/site/data/baseline-h2c-4096.json
@@ -56,25 +56,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "h2o",
- "language": "C",
- "rps": 14845048,
- "avg_latency": "14.49ms",
- "p99_latency": "14.49ms",
- "cpu": "2335.0%",
- "memory": "149MiB",
- "connections": 4096,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "377.70MB/s",
- "reconnects": 0,
- "status_2xx": 76155100,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "ktor",
"language": "Kotlin",
diff --git a/site/data/baseline-h3-64.json b/site/data/baseline-h3-64.json
index 63ef9f893..eba4be821 100644
--- a/site/data/baseline-h3-64.json
+++ b/site/data/baseline-h3-64.json
@@ -114,26 +114,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "nginx",
- "language": "C",
- "rps": 4933525,
- "avg_latency": "814us",
- "p99_latency": "1.37ms",
- "cpu": "2814.3%",
- "memory": "3.5GiB",
- "connections": 64,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "376.35MB/s",
- "input_bw": "",
- "reconnects": 0,
- "status_2xx": 24667627,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "ngx-php",
"language": "PHP",
diff --git a/site/data/frameworks.json b/site/data/frameworks.json
index 309e33343..3852d9bfe 100644
--- a/site/data/frameworks.json
+++ b/site/data/frameworks.json
@@ -33,13 +33,6 @@
"engine": "netty",
"mode": "standard"
},
- "apache": {
- "dir": "apache",
- "description": "Apache HTTPD 2.4 with event MPM and mod_lua for the dynamic /baseline11 handler. Native file serving for /static/.",
- "repo": "https://github.com/apache/httpd",
- "type": "infrastructure",
- "engine": "apache"
- },
"araara-standard": {
"dir": "araara-standard",
"description": "araara - an OCaml 5 web stack built on HCS, using HCS server defaults where possible for the HttpArena harness. Eio, radix-trie routing, Phoenix-style plugs, Postgres via repodb, gzip/zstd compression. HTTP/3 and gRPC are not implemented.",
@@ -169,13 +162,6 @@
"engine": "bun",
"mode": "tuned"
},
- "caddy": {
- "dir": "caddy",
- "description": "Caddy with a custom Go handler module for /baseline11, compiled via xcaddy. Native file_server for /static.",
- "repo": "https://github.com/caddyserver/caddy",
- "type": "infrastructure",
- "engine": "caddy"
- },
"dart-io": {
"dir": "dart-io",
"description": "Stock Dart HttpServer baseline in the same SDK lineage as dart-zig, with optional JIT/AOT runtime mode via DART_IO_MODE for direct PR comparisons.",
@@ -222,13 +208,6 @@
"engine": "jsc",
"mode": "standard"
},
- "envoy": {
- "dir": "envoy",
- "description": "Envoy proxy with an inline Lua HTTP filter for /baseline11 and direct_response routes for /static files.",
- "repo": "https://github.com/envoyproxy/envoy",
- "type": "infrastructure",
- "engine": "envoy"
- },
"fastapi": {
"dir": "fastapi",
"description": "FastAPI async web framework on Uvicorn (uvloop)",
@@ -362,22 +341,6 @@
"engine": "grpc-go",
"mode": "tuned"
},
- "h2o": {
- "dir": "h2o",
- "description": "High-performance C HTTP server using libh2o with multi-threaded event loops and native HTTP/2 support.",
- "repo": "https://github.com/h2o/h2o",
- "type": "infrastructure",
- "engine": "h2o",
- "variants": [
- {
- "dir": "h2o-h2c",
- "description": "libh2o evloop with a dedicated h2c-only listener on port 8082. The accept callback calls h2o_http2_accept directly instead of h2o_accept, so the connection must begin with the HTTP/2 client preface \u2014 plain HTTP/1.1 clients are dropped at protocol negotiation. Handlers for /baseline2 (query sum) and /json/{count} (serialized via cJSON).",
- "repo": "https://github.com/h2o/h2o",
- "type": "infrastructure",
- "engine": "h2o"
- }
- ]
- },
"h2o-mruby": {
"dir": "h2o-mruby",
"description": "h2o config-based server with mruby handlers and native HTTP/3 (QUIC) support.",
@@ -547,13 +510,6 @@
}
]
},
- "nginx": {
- "dir": "nginx",
- "description": "Nginx with a custom C handler module, compiled with -O3 -march=native.",
- "repo": "https://github.com/nginx/nginx",
- "type": "infrastructure",
- "engine": "nginx"
- },
"ngx-php": {
"dir": "ngx-php",
"description": "Embedded PHP scripting language module for nginx.",
@@ -593,13 +549,6 @@
"type": "engine",
"engine": "picoev"
},
- "pingora": {
- "dir": "pingora",
- "description": "Pingora, Cloudflare's Rust HTTP framework, used as a standalone server with custom handlers for /baseline11 and preloaded /static files.",
- "repo": "https://github.com/cloudflare/pingora",
- "type": "infrastructure",
- "engine": "pingora"
- },
"pyronova": {
"dir": "pyronova",
"description": "Pyronova \u2014 Python web framework with a Rust core (hyper + tokio + rustls + mimalloc) and PEP 684 sub-interpreter workers for true multi-core parallelism. Opt-in features: gzip/brotli compression, rustls TLS with h2/h1 ALPN, streaming body ingest, async Postgres via sqlx::PgPool. Handlers are standard Python functions routed via decorators.",
@@ -888,13 +837,6 @@
"engine": "tonic",
"mode": "tuned"
},
- "traefik": {
- "dir": "traefik",
- "description": "Traefik with a Yaegi-interpreted local plugin handling /baseline11 computation and /static file serving. Plugin code is interpreted, so throughput is modest by design.",
- "repo": "https://github.com/traefik/traefik",
- "type": "infrastructure",
- "engine": "traefik"
- },
"trillium-tuned": {
"dir": "trillium-tuned",
"description": "Trillium 1.x with one current_thread tokio runtime per CPU, SO_REUSEPORT TCP sharding (single QUIC endpoint for h3), tuned HttpConfig (larger response/body buffers, 64K h2 frames, eager body preallocation), and static files preloaded into memory at startup. sonic-rs for JSON, deadpool-postgres, mimalloc, trillium-grpc for the benchmark.BenchmarkService gRPC endpoints.",
diff --git a/site/data/json-h2c-1024.json b/site/data/json-h2c-1024.json
index 37de62d07..a8c2c57a7 100644
--- a/site/data/json-h2c-1024.json
+++ b/site/data/json-h2c-1024.json
@@ -56,25 +56,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "h2o",
- "language": "C",
- "rps": 158916,
- "avg_latency": "198.57ms",
- "p99_latency": "198.57ms",
- "cpu": "6726.7%",
- "memory": "514MiB",
- "connections": 1024,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "545.06MB/s",
- "reconnects": 0,
- "status_2xx": 807298,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "ktor",
"language": "Kotlin",
diff --git a/site/data/json-h2c-4096.json b/site/data/json-h2c-4096.json
index 9dca12204..a82d09e54 100644
--- a/site/data/json-h2c-4096.json
+++ b/site/data/json-h2c-4096.json
@@ -56,25 +56,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "h2o",
- "language": "C",
- "rps": 153659,
- "avg_latency": "756.37ms",
- "p99_latency": "756.37ms",
- "cpu": "6499.5%",
- "memory": "1.9GiB",
- "connections": 4096,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "529.18MB/s",
- "reconnects": 0,
- "status_2xx": 788274,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "ktor",
"language": "Kotlin",
diff --git a/site/data/limited-conn-4096.json b/site/data/limited-conn-4096.json
index 6a121eb6f..fdad85a81 100644
--- a/site/data/limited-conn-4096.json
+++ b/site/data/limited-conn-4096.json
@@ -39,25 +39,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "apache",
- "language": "C",
- "rps": 168062,
- "avg_latency": "7.58ms",
- "p99_latency": "24.70ms",
- "cpu": "6107.1%",
- "memory": "212MiB",
- "connections": 4096,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "18.90MB/s",
- "reconnects": 125726,
- "status_2xx": 840312,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "aspnet-minimal",
"language": "C#",
@@ -198,25 +179,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "caddy",
- "language": "Go",
- "rps": 240429,
- "avg_latency": "16.66ms",
- "p99_latency": "172.30ms",
- "cpu": "3600.2%",
- "memory": "79MiB",
- "connections": 4096,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "26.82MB/s",
- "reconnects": 120190,
- "status_2xx": 1202146,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "dart-io",
"language": "Dart",
@@ -296,25 +258,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "envoy",
- "language": "C++",
- "rps": 575430,
- "avg_latency": "7.09ms",
- "p99_latency": "21.70ms",
- "cpu": "6198.5%",
- "memory": "203MiB",
- "connections": 4096,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "65.34MB/s",
- "reconnects": 289040,
- "status_2xx": 2877153,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "fastapi",
"language": "Python",
@@ -593,26 +536,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "h2o",
- "language": "C",
- "rps": 2520958,
- "avg_latency": "1.58ms",
- "p99_latency": "8.05ms",
- "cpu": "6083.7%",
- "memory": "91.2MiB",
- "connections": 4096,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "247.49MB/s",
- "input_bw": "194.74MB/s",
- "reconnects": 1258774,
- "status_2xx": 12604794,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "h2o-mruby",
"language": "Ruby",
@@ -1011,26 +934,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "nginx",
- "language": "C",
- "rps": 2499541,
- "avg_latency": "1.59ms",
- "p99_latency": "7.60ms",
- "cpu": "6132.5%",
- "memory": "3.5GiB",
- "connections": 4096,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "338.35MB/s",
- "input_bw": "193.08MB/s",
- "reconnects": 1249026,
- "status_2xx": 12497709,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "ngx-php",
"language": "PHP",
@@ -1091,25 +994,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "pingora",
- "language": "Rust",
- "rps": 514956,
- "avg_latency": "7.86ms",
- "p99_latency": "78.70ms",
- "cpu": "2032.2%",
- "memory": "208MiB",
- "connections": 4096,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "61.86MB/s",
- "reconnects": 257391,
- "status_2xx": 2574781,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "pyronova",
"language": "Python",
@@ -1630,25 +1514,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "traefik",
- "language": "Go",
- "rps": 295216,
- "avg_latency": "13.63ms",
- "p99_latency": "139.70ms",
- "cpu": "4755.3%",
- "memory": "167MiB",
- "connections": 4096,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "28.71MB/s",
- "reconnects": 147590,
- "status_2xx": 1476083,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "trillium",
"language": "Rust",
diff --git a/site/data/limited-conn-512.json b/site/data/limited-conn-512.json
index 6b3c09d94..0a73a6950 100644
--- a/site/data/limited-conn-512.json
+++ b/site/data/limited-conn-512.json
@@ -39,25 +39,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "apache",
- "language": "C",
- "rps": 175981,
- "avg_latency": "2.87ms",
- "p99_latency": "11.80ms",
- "cpu": "5791.8%",
- "memory": "223MiB",
- "connections": 512,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "19.79MB/s",
- "reconnects": 108893,
- "status_2xx": 879906,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "aspnet-minimal",
"language": "C#",
@@ -198,25 +179,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "caddy",
- "language": "Go",
- "rps": 231461,
- "avg_latency": "2.21ms",
- "p99_latency": "22.30ms",
- "cpu": "3607.8%",
- "memory": "75MiB",
- "connections": 512,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "25.82MB/s",
- "reconnects": 115716,
- "status_2xx": 1157305,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "dart-io",
"language": "Dart",
@@ -296,25 +258,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "envoy",
- "language": "C++",
- "rps": 551833,
- "avg_latency": "918us",
- "p99_latency": "4.15ms",
- "cpu": "5683.7%",
- "memory": "105MiB",
- "connections": 512,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "62.66MB/s",
- "reconnects": 279074,
- "status_2xx": 2759167,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "fastapi",
"language": "Python",
@@ -593,26 +536,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "h2o",
- "language": "C",
- "rps": 2002574,
- "avg_latency": "243us",
- "p99_latency": "2.75ms",
- "cpu": "5708.5%",
- "memory": "54.1MiB",
- "connections": 512,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "196.64MB/s",
- "input_bw": "154.69MB/s",
- "reconnects": 1001281,
- "status_2xx": 10012870,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "h2o-mruby",
"language": "Ruby",
@@ -1011,26 +934,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "nginx",
- "language": "C",
- "rps": 2062243,
- "avg_latency": "234us",
- "p99_latency": "2.20ms",
- "cpu": "5945.5%",
- "memory": "3.5GiB",
- "connections": 512,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "279.20MB/s",
- "input_bw": "159.30MB/s",
- "reconnects": 1031117,
- "status_2xx": 10311216,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "ngx-php",
"language": "PHP",
@@ -1091,25 +994,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "pingora",
- "language": "Rust",
- "rps": 513912,
- "avg_latency": "988us",
- "p99_latency": "7.95ms",
- "cpu": "1956.2%",
- "memory": "212MiB",
- "connections": 512,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "61.74MB/s",
- "reconnects": 256907,
- "status_2xx": 2569562,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "pyronova",
"language": "Python",
@@ -1630,25 +1514,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "traefik",
- "language": "Go",
- "rps": 297555,
- "avg_latency": "1.71ms",
- "p99_latency": "16.70ms",
- "cpu": "4713.0%",
- "memory": "156MiB",
- "connections": 512,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "28.93MB/s",
- "reconnects": 148776,
- "status_2xx": 1487778,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "trillium",
"language": "Rust",
diff --git a/site/data/pipelined-4096.json b/site/data/pipelined-4096.json
index 52725ecf0..18bb90291 100644
--- a/site/data/pipelined-4096.json
+++ b/site/data/pipelined-4096.json
@@ -18,25 +18,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "apache",
- "language": "C",
- "rps": 0,
- "avg_latency": "26.50ms",
- "p99_latency": "250.40ms",
- "cpu": "2043.6%",
- "memory": "136MiB",
- "connections": 4096,
- "threads": 64,
- "duration": "5s",
- "pipeline": 16,
- "bandwidth": "136.05MB/s",
- "reconnects": 14,
- "status_2xx": 0,
- "status_3xx": 0,
- "status_4xx": 1858306,
- "status_5xx": 0
- },
{
"framework": "aspnet-minimal",
"language": "C#",
@@ -171,25 +152,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "caddy",
- "language": "Go",
- "rps": 0,
- "avg_latency": "47.40ms",
- "p99_latency": "1.56s",
- "cpu": "4491.3%",
- "memory": "362MiB",
- "connections": 4096,
- "threads": 64,
- "duration": "5s",
- "pipeline": 16,
- "bandwidth": "105.93MB/s",
- "reconnects": 0,
- "status_2xx": 0,
- "status_3xx": 0,
- "status_4xx": 3779515,
- "status_5xx": 0
- },
{
"framework": "dart-io",
"language": "Dart",
@@ -266,25 +228,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "envoy",
- "language": "C++",
- "rps": 8192,
- "avg_latency": "9.41ms",
- "p99_latency": "94.10ms",
- "cpu": "129.7%",
- "memory": "203MiB",
- "connections": 4096,
- "threads": 64,
- "duration": "5s",
- "pipeline": 16,
- "bandwidth": "823.70KB/s",
- "reconnects": 20079,
- "status_2xx": 40960,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "fastapi",
"language": "Python",
@@ -555,26 +498,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "h2o",
- "language": "C",
- "rps": 4643662,
- "avg_latency": "14.09ms",
- "p99_latency": "28.30ms",
- "cpu": "6363.3%",
- "memory": "70.1MiB",
- "connections": 4096,
- "threads": 64,
- "duration": "5s",
- "pipeline": 16,
- "bandwidth": "456.00MB/s",
- "input_bw": "",
- "reconnects": 0,
- "status_2xx": 23218310,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "h2o-mruby",
"language": "Ruby",
@@ -961,26 +884,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "nginx",
- "language": "C",
- "rps": 3801212,
- "avg_latency": "17.22ms",
- "p99_latency": "35.50ms",
- "cpu": "6280.3%",
- "memory": "3.5GiB",
- "connections": 4096,
- "threads": 64,
- "duration": "5s",
- "pipeline": 16,
- "bandwidth": "514.51MB/s",
- "input_bw": "",
- "reconnects": 0,
- "status_2xx": 19006062,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "ngx-php",
"language": "PHP",
@@ -1059,25 +962,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "pingora",
- "language": "Rust",
- "rps": 0,
- "avg_latency": "54.31ms",
- "p99_latency": "73.60ms",
- "cpu": "561.1%",
- "memory": "75MiB",
- "connections": 4096,
- "threads": 64,
- "duration": "5s",
- "pipeline": 16,
- "bandwidth": "10.01MB/s",
- "reconnects": 372335,
- "status_2xx": 0,
- "status_3xx": 0,
- "status_4xx": 372355,
- "status_5xx": 0
- },
{
"framework": "pyronova",
"language": "Python",
@@ -1556,25 +1440,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "traefik",
- "language": "Go",
- "rps": 0,
- "avg_latency": "573.13ms",
- "p99_latency": "1.29s",
- "cpu": "5316.4%",
- "memory": "517MiB",
- "connections": 4096,
- "threads": 64,
- "duration": "5s",
- "pipeline": 16,
- "bandwidth": "9.78MB/s",
- "reconnects": 0,
- "status_2xx": 0,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 534152
- },
{
"framework": "trillium",
"language": "Rust",
diff --git a/site/data/pipelined-512.json b/site/data/pipelined-512.json
index 03ac6b812..8cc4d819a 100644
--- a/site/data/pipelined-512.json
+++ b/site/data/pipelined-512.json
@@ -18,25 +18,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "apache",
- "language": "C",
- "rps": 0,
- "avg_latency": "21.35ms",
- "p99_latency": "197.50ms",
- "cpu": "2018.6%",
- "memory": "82MiB",
- "connections": 512,
- "threads": 64,
- "duration": "5s",
- "pipeline": 16,
- "bandwidth": "137.31MB/s",
- "reconnects": 5,
- "status_2xx": 0,
- "status_3xx": 0,
- "status_4xx": 1875336,
- "status_5xx": 0
- },
{
"framework": "aspnet-minimal",
"language": "C#",
@@ -171,25 +152,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "caddy",
- "language": "Go",
- "rps": 0,
- "avg_latency": "13.48ms",
- "p99_latency": "196.80ms",
- "cpu": "3539.8%",
- "memory": "122MiB",
- "connections": 512,
- "threads": 64,
- "duration": "5s",
- "pipeline": 16,
- "bandwidth": "84.14MB/s",
- "reconnects": 0,
- "status_2xx": 0,
- "status_3xx": 0,
- "status_4xx": 3002243,
- "status_5xx": 0
- },
{
"framework": "dart-io",
"language": "Dart",
@@ -266,25 +228,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "envoy",
- "language": "C++",
- "rps": 1024,
- "avg_latency": "472us",
- "p99_latency": "1.62ms",
- "cpu": "18.3%",
- "memory": "117MiB",
- "connections": 512,
- "threads": 64,
- "duration": "5s",
- "pipeline": 16,
- "bandwidth": "102.96KB/s",
- "reconnects": 2621,
- "status_2xx": 5120,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "fastapi",
"language": "Python",
@@ -555,26 +498,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "h2o",
- "language": "C",
- "rps": 4380608,
- "avg_latency": "1.87ms",
- "p99_latency": "9.75ms",
- "cpu": "6374.5%",
- "memory": "35.4MiB",
- "connections": 512,
- "threads": 64,
- "duration": "5s",
- "pipeline": 16,
- "bandwidth": "430.18MB/s",
- "input_bw": "",
- "reconnects": 0,
- "status_2xx": 21903040,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "h2o-mruby",
"language": "Ruby",
@@ -961,26 +884,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "nginx",
- "language": "C",
- "rps": 3829658,
- "avg_latency": "2.14ms",
- "p99_latency": "8.14ms",
- "cpu": "6625.3%",
- "memory": "3.4GiB",
- "connections": 512,
- "threads": 64,
- "duration": "5s",
- "pipeline": 16,
- "bandwidth": "518.47MB/s",
- "input_bw": "",
- "reconnects": 0,
- "status_2xx": 19148293,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "ngx-php",
"language": "PHP",
@@ -1059,25 +962,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "pingora",
- "language": "Rust",
- "rps": 0,
- "avg_latency": "6.77ms",
- "p99_latency": "7.65ms",
- "cpu": "576.5%",
- "memory": "69MiB",
- "connections": 512,
- "threads": 64,
- "duration": "5s",
- "pipeline": 16,
- "bandwidth": "10.05MB/s",
- "reconnects": 373945,
- "status_2xx": 0,
- "status_3xx": 0,
- "status_4xx": 373972,
- "status_5xx": 0
- },
{
"framework": "pyronova",
"language": "Python",
@@ -1556,25 +1440,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "traefik",
- "language": "Go",
- "rps": 0,
- "avg_latency": "71.62ms",
- "p99_latency": "138.20ms",
- "cpu": "5337.0%",
- "memory": "181MiB",
- "connections": 512,
- "threads": 64,
- "duration": "5s",
- "pipeline": 16,
- "bandwidth": "10.45MB/s",
- "reconnects": 0,
- "status_2xx": 0,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 571145
- },
{
"framework": "trillium",
"language": "Rust",
diff --git a/site/data/static-1024.json b/site/data/static-1024.json
index 7af204830..699db8384 100644
--- a/site/data/static-1024.json
+++ b/site/data/static-1024.json
@@ -37,25 +37,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "apache",
- "language": "C",
- "rps": 264620,
- "avg_latency": "11.25ms",
- "p99_latency": "11.25ms",
- "cpu": "4109.1%",
- "memory": "45MiB",
- "connections": 1024,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "15.70GB",
- "reconnects": 0,
- "status_2xx": 1346758,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "aspnet-minimal",
"language": "C#",
@@ -190,25 +171,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "caddy",
- "language": "Go",
- "rps": 210785,
- "avg_latency": "41.00ms",
- "p99_latency": "41.00ms",
- "cpu": "5328.2%",
- "memory": "144MiB",
- "connections": 1024,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "12.53GB",
- "reconnects": 0,
- "status_2xx": 1074962,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "effinitive",
"language": "C#",
@@ -246,25 +208,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "envoy",
- "language": "C++",
- "rps": 57876,
- "avg_latency": "18.70ms",
- "p99_latency": "18.70ms",
- "cpu": "5081.9%",
- "memory": "355MiB",
- "connections": 1024,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "3.43GB",
- "reconnects": 0,
- "status_2xx": 295149,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "fastapi",
"language": "Python",
@@ -798,26 +741,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "nginx",
- "language": "C",
- "rps": 1102795,
- "avg_latency": "1.47ms",
- "p99_latency": "1.47ms",
- "cpu": "6570.2%",
- "memory": "3.5GiB",
- "connections": 1024,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "18.87GB",
- "input_bw": "",
- "reconnects": 0,
- "status_2xx": 5624099,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "ngx-php",
"language": "PHP",
@@ -877,25 +800,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "pingora",
- "language": "Rust",
- "rps": 238856,
- "avg_latency": "4.32ms",
- "p99_latency": "4.32ms",
- "cpu": "6435.2%",
- "memory": "213MiB",
- "connections": 1024,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "14.17GB",
- "reconnects": 0,
- "status_2xx": 1218119,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "pyronova",
"language": "Python",
@@ -1274,25 +1178,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "traefik",
- "language": "Go",
- "rps": 118932,
- "avg_latency": "32.20ms",
- "p99_latency": "32.20ms",
- "cpu": "5332.8%",
- "memory": "257MiB",
- "connections": 1024,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "7.06GB",
- "reconnects": 0,
- "status_2xx": 604865,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "trillium",
"language": "Rust",
diff --git a/site/data/static-4096.json b/site/data/static-4096.json
index 30c866648..062478cfc 100644
--- a/site/data/static-4096.json
+++ b/site/data/static-4096.json
@@ -37,25 +37,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "apache",
- "language": "C",
- "rps": 254427,
- "avg_latency": "40.93ms",
- "p99_latency": "40.93ms",
- "cpu": "3806.9%",
- "memory": "64MiB",
- "connections": 4096,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "15.11GB",
- "reconnects": 0,
- "status_2xx": 1297587,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "aspnet-minimal",
"language": "C#",
@@ -190,25 +171,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "caddy",
- "language": "Go",
- "rps": 245063,
- "avg_latency": "198.14ms",
- "p99_latency": "198.14ms",
- "cpu": "5705.2%",
- "memory": "319MiB",
- "connections": 4096,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "14.57GB",
- "reconnects": 0,
- "status_2xx": 1249519,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "effinitive",
"language": "C#",
@@ -246,25 +208,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "envoy",
- "language": "C++",
- "rps": 50402,
- "avg_latency": "73.04ms",
- "p99_latency": "73.04ms",
- "cpu": "5189.6%",
- "memory": "556MiB",
- "connections": 4096,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "2.99GB",
- "reconnects": 0,
- "status_2xx": 256890,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "fastapi",
"language": "Python",
@@ -798,26 +741,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "nginx",
- "language": "C",
- "rps": 1104145,
- "avg_latency": "3.77ms",
- "p99_latency": "3.77ms",
- "cpu": "6561.0%",
- "memory": "3.5GiB",
- "connections": 4096,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "18.90GB",
- "input_bw": "",
- "reconnects": 0,
- "status_2xx": 5630185,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "ngx-php",
"language": "PHP",
@@ -877,25 +800,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "pingora",
- "language": "Rust",
- "rps": 230044,
- "avg_latency": "29.52ms",
- "p99_latency": "29.52ms",
- "cpu": "6358.7%",
- "memory": "397MiB",
- "connections": 4096,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "13.65GB",
- "reconnects": 0,
- "status_2xx": 1173330,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "pyronova",
"language": "Python",
@@ -1274,25 +1178,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "traefik",
- "language": "Go",
- "rps": 133190,
- "avg_latency": "183.61ms",
- "p99_latency": "183.61ms",
- "cpu": "5355.3%",
- "memory": "522MiB",
- "connections": 4096,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "7.90GB",
- "reconnects": 0,
- "status_2xx": 679256,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "trillium",
"language": "Rust",
diff --git a/site/data/static-6800.json b/site/data/static-6800.json
index 6e5718ef2..814c2e62d 100644
--- a/site/data/static-6800.json
+++ b/site/data/static-6800.json
@@ -37,25 +37,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "apache",
- "language": "C",
- "rps": 261333,
- "avg_latency": "23.55ms",
- "p99_latency": "23.55ms",
- "cpu": "4008.7%",
- "memory": "45MiB",
- "connections": 6800,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "15.51GB",
- "reconnects": 0,
- "status_2xx": 1332835,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "aspnet-minimal",
"language": "C#",
@@ -190,25 +171,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "caddy",
- "language": "Go",
- "rps": 249836,
- "avg_latency": "284.78ms",
- "p99_latency": "284.78ms",
- "cpu": "5614.3%",
- "memory": "453MiB",
- "connections": 6800,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "14.85GB",
- "reconnects": 0,
- "status_2xx": 1273699,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "effinitive",
"language": "C#",
@@ -246,25 +208,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "envoy",
- "language": "C++",
- "rps": 45287,
- "avg_latency": "119.62ms",
- "p99_latency": "119.62ms",
- "cpu": "4571.6%",
- "memory": "729MiB",
- "connections": 6800,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "2.69GB",
- "reconnects": 0,
- "status_2xx": 230948,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "fastapi",
"language": "Python",
@@ -798,26 +741,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "nginx",
- "language": "C",
- "rps": 1089909,
- "avg_latency": "6.26ms",
- "p99_latency": "6.26ms",
- "cpu": "6545.3%",
- "memory": "3.5GiB",
- "connections": 6800,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "18.65GB",
- "input_bw": "",
- "reconnects": 0,
- "status_2xx": 5560118,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "ngx-php",
"language": "PHP",
@@ -877,25 +800,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "pingora",
- "language": "Rust",
- "rps": 230421,
- "avg_latency": "67.35ms",
- "p99_latency": "67.35ms",
- "cpu": "6330.3%",
- "memory": "605MiB",
- "connections": 6800,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "13.67GB",
- "reconnects": 0,
- "status_2xx": 1175140,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "pyronova",
"language": "Python",
@@ -1274,25 +1178,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "traefik",
- "language": "Go",
- "rps": 128799,
- "avg_latency": "202.37ms",
- "p99_latency": "202.37ms",
- "cpu": "5532.3%",
- "memory": "708MiB",
- "connections": 6800,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "7.64GB",
- "reconnects": 0,
- "status_2xx": 656850,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "trillium",
"language": "Rust",
diff --git a/site/data/static-h2-1024.json b/site/data/static-h2-1024.json
index b18360084..58ec39169 100644
--- a/site/data/static-h2-1024.json
+++ b/site/data/static-h2-1024.json
@@ -171,26 +171,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "h2o",
- "language": "C",
- "rps": 288110,
- "avg_latency": "325.21ms",
- "p99_latency": "325.21ms",
- "cpu": "5084.1%",
- "memory": "644.7MiB",
- "connections": 1024,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "16.77GB/s",
- "input_bw": "",
- "reconnects": 0,
- "status_2xx": 1539650,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "h2o-mruby",
"language": "Ruby",
@@ -345,26 +325,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "nginx",
- "language": "C",
- "rps": 782045,
- "avg_latency": "122.00ms",
- "p99_latency": "122.00ms",
- "cpu": "6585.6%",
- "memory": "4.4GiB",
- "connections": 1024,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "13.33GB/s",
- "input_bw": "",
- "reconnects": 0,
- "status_2xx": 3910283,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "ngx-php",
"language": "PHP",
diff --git a/site/data/static-h2-256.json b/site/data/static-h2-256.json
index 264571722..d78ccc207 100644
--- a/site/data/static-h2-256.json
+++ b/site/data/static-h2-256.json
@@ -171,26 +171,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "h2o",
- "language": "C",
- "rps": 310801,
- "avg_latency": "89.84ms",
- "p99_latency": "89.84ms",
- "cpu": "4969.7%",
- "memory": "205.3MiB",
- "connections": 256,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "18.35GB/s",
- "input_bw": "",
- "reconnects": 0,
- "status_2xx": 1577451,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "h2o-mruby",
"language": "Ruby",
@@ -345,26 +325,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "nginx",
- "language": "C",
- "rps": 760851,
- "avg_latency": "37.51ms",
- "p99_latency": "37.51ms",
- "cpu": "6450.2%",
- "memory": "3.9GiB",
- "connections": 256,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "12.97GB/s",
- "input_bw": "",
- "reconnects": 0,
- "status_2xx": 3804293,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "ngx-php",
"language": "PHP",
diff --git a/site/data/static-h3-64.json b/site/data/static-h3-64.json
index e8b9292b8..7ba21fdb7 100644
--- a/site/data/static-h3-64.json
+++ b/site/data/static-h3-64.json
@@ -114,26 +114,6 @@
"status_4xx": 0,
"status_5xx": 0
},
- {
- "framework": "nginx",
- "language": "C",
- "rps": 306492,
- "avg_latency": "14.76ms",
- "p99_latency": "58.09ms",
- "cpu": "4995.5%",
- "memory": "3.6GiB",
- "connections": 64,
- "threads": 64,
- "duration": "5s",
- "pipeline": 1,
- "bandwidth": "5.22GB/s",
- "input_bw": "",
- "reconnects": 0,
- "status_2xx": 1532720,
- "status_3xx": 0,
- "status_4xx": 0,
- "status_5xx": 0
- },
{
"framework": "ngx-php",
"language": "PHP",
diff --git a/site/static/logs/baseline-h2/1024/h2o.log b/site/static/logs/baseline-h2/1024/h2o.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/baseline-h2/1024/nginx.log b/site/static/logs/baseline-h2/1024/nginx.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/baseline-h2/256/h2o.log b/site/static/logs/baseline-h2/256/h2o.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/baseline-h2/256/nginx.log b/site/static/logs/baseline-h2/256/nginx.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/baseline-h2c/1024/h2o-h2c.log b/site/static/logs/baseline-h2c/1024/h2o-h2c.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/baseline-h2c/256/h2o-h2c.log b/site/static/logs/baseline-h2c/256/h2o-h2c.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/baseline-h2c/4096/h2o-h2c.log b/site/static/logs/baseline-h2c/4096/h2o-h2c.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/baseline-h3/64/nginx.log b/site/static/logs/baseline-h3/64/nginx.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/baseline/4096/apache.log b/site/static/logs/baseline/4096/apache.log
deleted file mode 100644
index e44636ddf..000000000
--- a/site/static/logs/baseline/4096/apache.log
+++ /dev/null
@@ -1,2 +0,0 @@
-[Sun Apr 19 20:09:52.653063 2026] [mpm_event:notice] [pid 1:tid 1] AH00489: Apache/2.4.66 (Debian) configured -- resuming normal operations
-[Sun Apr 19 20:09:52.653301 2026] [core:notice] [pid 1:tid 1] AH00094: Command line: 'apache2 -D FOREGROUND -f /etc/apache2/httpd.conf'
diff --git a/site/static/logs/baseline/4096/caddy.log b/site/static/logs/baseline/4096/caddy.log
deleted file mode 100644
index 37ce77405..000000000
--- a/site/static/logs/baseline/4096/caddy.log
+++ /dev/null
@@ -1,3 +0,0 @@
-{"level":"info","ts":1776636175.8260317,"msg":"using config from file","file":"/etc/caddy/Caddyfile"}
-{"level":"info","ts":1776636175.8268404,"msg":"adapted config to JSON","adapter":"caddyfile"}
-{"level":"info","ts":1776636175.8269918,"msg":"redirected default logger","from":"stderr","to":"discard"}
diff --git a/site/static/logs/baseline/4096/envoy.log b/site/static/logs/baseline/4096/envoy.log
deleted file mode 100644
index 074b27fb3..000000000
--- a/site/static/logs/baseline/4096/envoy.log
+++ /dev/null
@@ -1,110 +0,0 @@
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:428] initializing epoch 0 (base id=0, hot restart version=11.104)
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:430] statically linked extensions:
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.wasm.runtime: envoy.wasm.runtime.null, envoy.wasm.runtime.v8
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] filter_state.object: envoy.filters.listener.original_dst.local_ip, envoy.filters.listener.original_dst.remote_ip, envoy.network.application_protocols, envoy.network.transport_socket.original_dst_address, envoy.network.upstream_server_name, envoy.network.upstream_subject_alt_names, envoy.string, envoy.tcp_proxy.cluster, envoy.tcp_proxy.disable_tunneling, envoy.tcp_proxy.per_connection_idle_timeout_ms, envoy.upstream.dynamic_host, envoy.upstream.dynamic_port
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.config.validators: envoy.config.validators.minimum_clusters, envoy.config.validators.minimum_clusters_validator
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.rate_limit_descriptors: envoy.rate_limit_descriptors.expr
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.geoip_providers: envoy.geoip_providers.maxmind
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.http.early_header_mutation: envoy.http.early_header_mutation.header_mutation
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.quic.connection_id_generator: envoy.quic.deterministic_connection_id_generator
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.router.cluster_specifier_plugin: envoy.router.cluster_specifier_plugin.lua
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.rbac.matchers: envoy.rbac.matchers.upstream_ip_port
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.compression.compressor: envoy.compression.brotli.compressor, envoy.compression.gzip.compressor, envoy.compression.zstd.compressor
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.tracers: envoy.dynamic.ot, envoy.tracers.datadog, envoy.tracers.dynamic_ot, envoy.tracers.opencensus, envoy.tracers.opentelemetry, envoy.tracers.skywalking, envoy.tracers.xray, envoy.tracers.zipkin, envoy.zipkin
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.matching.http.custom_matchers: envoy.matching.custom_matchers.trie_matcher
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.guarddog_actions: envoy.watchdog.abort_action, envoy.watchdog.profile_action
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.dubbo_proxy.protocols: dubbo
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.matching.common_inputs: envoy.matching.common_inputs.environment_variable
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.http.custom_response: envoy.extensions.http.custom_response.local_response_policy, envoy.extensions.http.custom_response.redirect_policy
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.matching.input_matchers: envoy.matching.matchers.cel_matcher, envoy.matching.matchers.consistent_hashing, envoy.matching.matchers.ip, envoy.matching.matchers.runtime_fraction
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.compression.decompressor: envoy.compression.brotli.decompressor, envoy.compression.gzip.decompressor, envoy.compression.zstd.decompressor
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.grpc_credentials: envoy.grpc_credentials.aws_iam, envoy.grpc_credentials.default, envoy.grpc_credentials.file_based_metadata
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.http.cache: envoy.extensions.http.cache.file_system_http_cache, envoy.extensions.http.cache.simple
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.http.stateful_header_formatters: envoy.http.stateful_header_formatters.preserve_case, preserve_case
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.connection_handler: envoy.connection_handler.default
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.dubbo_proxy.serializers: dubbo.hessian2
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.stats_sinks: envoy.dog_statsd, envoy.graphite_statsd, envoy.metrics_service, envoy.open_telemetry_stat_sink, envoy.stat_sinks.dog_statsd, envoy.stat_sinks.graphite_statsd, envoy.stat_sinks.hystrix, envoy.stat_sinks.metrics_service, envoy.stat_sinks.open_telemetry, envoy.stat_sinks.statsd, envoy.stat_sinks.wasm, envoy.statsd
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.route.early_data_policy: envoy.route.early_data_policy.default
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] quic.http_server_connection: quic.http_server_connection.default
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.matching.network.input: envoy.matching.inputs.application_protocol, envoy.matching.inputs.destination_ip, envoy.matching.inputs.destination_port, envoy.matching.inputs.direct_source_ip, envoy.matching.inputs.dns_san, envoy.matching.inputs.filter_state, envoy.matching.inputs.server_name, envoy.matching.inputs.source_ip, envoy.matching.inputs.source_port, envoy.matching.inputs.source_type, envoy.matching.inputs.subject, envoy.matching.inputs.transport_protocol, envoy.matching.inputs.uri_san
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.transport_sockets.downstream: envoy.transport_sockets.alts, envoy.transport_sockets.quic, envoy.transport_sockets.raw_buffer, envoy.transport_sockets.starttls, envoy.transport_sockets.tap, envoy.transport_sockets.tcp_stats, envoy.transport_sockets.tls, raw_buffer, starttls, tls
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.resolvers: envoy.ip
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.clusters: envoy.cluster.eds, envoy.cluster.logical_dns, envoy.cluster.original_dst, envoy.cluster.static, envoy.cluster.strict_dns, envoy.clusters.aggregate, envoy.clusters.dynamic_forward_proxy, envoy.clusters.redis
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.http.header_validators: envoy.http.header_validators.envoy_default
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.matching.action: envoy.matching.actions.format_string, filter-chain-name
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.matching.http.input: envoy.matching.inputs.cel_data_input, envoy.matching.inputs.destination_ip, envoy.matching.inputs.destination_port, envoy.matching.inputs.direct_source_ip, envoy.matching.inputs.dns_san, envoy.matching.inputs.request_headers, envoy.matching.inputs.request_trailers, envoy.matching.inputs.response_headers, envoy.matching.inputs.response_trailers, envoy.matching.inputs.server_name, envoy.matching.inputs.source_ip, envoy.matching.inputs.source_port, envoy.matching.inputs.source_type, envoy.matching.inputs.status_code_class_input, envoy.matching.inputs.status_code_input, envoy.matching.inputs.subject, envoy.matching.inputs.uri_san, query_params
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.retry_host_predicates: envoy.retry_host_predicates.omit_canary_hosts, envoy.retry_host_predicates.omit_host_metadata, envoy.retry_host_predicates.previous_hosts
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.filters.http.upstream: envoy.buffer, envoy.ext_proc, envoy.filters.http.admission_control, envoy.filters.http.aws_lambda, envoy.filters.http.aws_request_signing, envoy.filters.http.buffer, envoy.filters.http.composite, envoy.filters.http.ext_proc, envoy.filters.http.header_mutation, envoy.filters.http.match_delegate, envoy.filters.http.upstream_codec
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.path.rewrite: envoy.path.rewrite.uri_template.uri_template_rewriter
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.matching.network.custom_matchers: envoy.matching.custom_matchers.trie_matcher
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.config_subscription: envoy.config_subscription.ads, envoy.config_subscription.ads_collection, envoy.config_subscription.aggregated_grpc_collection, envoy.config_subscription.delta_grpc, envoy.config_subscription.delta_grpc_collection, envoy.config_subscription.filesystem, envoy.config_subscription.filesystem_collection, envoy.config_subscription.grpc, envoy.config_subscription.rest
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.quic.server.crypto_stream: envoy.quic.crypto_stream.server.quiche
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.access_loggers: envoy.access_loggers.file, envoy.access_loggers.fluentd, envoy.access_loggers.http_grpc, envoy.access_loggers.open_telemetry, envoy.access_loggers.stderr, envoy.access_loggers.stdout, envoy.access_loggers.tcp_grpc, envoy.access_loggers.wasm, envoy.file_access_log, envoy.fluentd_access_log, envoy.http_grpc_access_log, envoy.open_telemetry_access_log, envoy.stderr_access_log, envoy.stdout_access_log, envoy.tcp_grpc_access_log, envoy.wasm_access_log
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.thrift_proxy.transports: auto, framed, header, unframed
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.tls.cert_validator: envoy.tls.cert_validator.default, envoy.tls.cert_validator.spiffe
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] network.connection.client: default, envoy_internal
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.retry_priorities: envoy.retry_priorities.previous_priorities
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.common.key_value: envoy.key_value.file_based
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.tracers.opentelemetry.samplers: envoy.tracers.opentelemetry.samplers.always_on, envoy.tracers.opentelemetry.samplers.dynatrace
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.string_matcher: envoy.string_matcher.lua
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.config_mux: envoy.config_mux.delta_grpc_mux_factory, envoy.config_mux.grpc_mux_factory, envoy.config_mux.new_grpc_mux_factory, envoy.config_mux.sotw_grpc_mux_factory
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.quic.proof_source: envoy.quic.proof_source.filter_chain
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.load_balancing_policies: envoy.load_balancing_policies.cluster_provided, envoy.load_balancing_policies.least_request, envoy.load_balancing_policies.maglev, envoy.load_balancing_policies.random, envoy.load_balancing_policies.ring_hash, envoy.load_balancing_policies.round_robin, envoy.load_balancing_policies.subset
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.tracers.opentelemetry.resource_detectors: envoy.tracers.opentelemetry.resource_detectors.dynatrace, envoy.tracers.opentelemetry.resource_detectors.environment
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.http.injected_credentials: envoy.http.injected_credentials.generic
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.route_config_update_requester: envoy.route_config_update_requester.default
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.bootstrap: envoy.bootstrap.internal_listener, envoy.bootstrap.wasm, envoy.extensions.network.socket_interface.default_socket_interface
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.regex_engines: envoy.regex_engines.google_re2
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.thrift_proxy.protocols: auto, binary, binary/non-strict, compact, twitter
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.filters.http: envoy.bandwidth_limit, envoy.buffer, envoy.cors, envoy.csrf, envoy.ext_authz, envoy.ext_proc, envoy.fault, envoy.filters.http.adaptive_concurrency, envoy.filters.http.admission_control, envoy.filters.http.alternate_protocols_cache, envoy.filters.http.aws_lambda, envoy.filters.http.aws_request_signing, envoy.filters.http.bandwidth_limit, envoy.filters.http.basic_auth, envoy.filters.http.buffer, envoy.filters.http.cache, envoy.filters.http.cdn_loop, envoy.filters.http.composite, envoy.filters.http.compressor, envoy.filters.http.connect_grpc_bridge, envoy.filters.http.cors, envoy.filters.http.credential_injector, envoy.filters.http.csrf, envoy.filters.http.custom_response, envoy.filters.http.decompressor, envoy.filters.http.dynamic_forward_proxy, envoy.filters.http.ext_authz, envoy.filters.http.ext_proc, envoy.filters.http.fault, envoy.filters.http.file_system_buffer, envoy.filters.http.gcp_authn, envoy.filters.http.geoip, envoy.filters.http.grpc_field_extraction, envoy.filters.http.grpc_http1_bridge, envoy.filters.http.grpc_http1_reverse_bridge, envoy.filters.http.grpc_json_transcoder, envoy.filters.http.grpc_stats, envoy.filters.http.grpc_web, envoy.filters.http.header_mutation, envoy.filters.http.header_to_metadata, envoy.filters.http.health_check, envoy.filters.http.ip_tagging, envoy.filters.http.json_to_metadata, envoy.filters.http.jwt_authn, envoy.filters.http.local_ratelimit, envoy.filters.http.lua, envoy.filters.http.match_delegate, envoy.filters.http.oauth2, envoy.filters.http.on_demand, envoy.filters.http.original_src, envoy.filters.http.rate_limit_quota, envoy.filters.http.ratelimit, envoy.filters.http.rbac, envoy.filters.http.router, envoy.filters.http.set_filter_state, envoy.filters.http.set_metadata, envoy.filters.http.stateful_session, envoy.filters.http.tap, envoy.filters.http.wasm, envoy.geoip, envoy.grpc_http1_bridge, envoy.grpc_json_transcoder, envoy.grpc_web, envoy.health_check, envoy.ip_tagging, envoy.local_rate_limit, envoy.lua, envoy.rate_limit, envoy.router
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.upstreams: envoy.filters.connection_pools.tcp.generic
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.formatter: envoy.formatter.cel, envoy.formatter.metadata, envoy.formatter.req_without_query
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.quic.server_preferred_address: quic.server_preferred_address.fixed
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.health_checkers: envoy.health_checkers.grpc, envoy.health_checkers.http, envoy.health_checkers.redis, envoy.health_checkers.tcp, envoy.health_checkers.thrift
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.dubbo_proxy.filters: envoy.filters.dubbo.router
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.internal_redirect_predicates: envoy.internal_redirect_predicates.allow_listed_routes, envoy.internal_redirect_predicates.previous_routes, envoy.internal_redirect_predicates.safe_cross_scheme
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.network.dns_resolver: envoy.network.dns_resolver.cares, envoy.network.dns_resolver.getaddrinfo
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.http.original_ip_detection: envoy.http.original_ip_detection.custom_header, envoy.http.original_ip_detection.xff
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.filters.udp.session: envoy.filters.udp.session.dynamic_forward_proxy, envoy.filters.udp.session.http_capsule
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.thrift_proxy.filters: envoy.filters.thrift.header_to_metadata, envoy.filters.thrift.payload_to_metadata, envoy.filters.thrift.rate_limit, envoy.filters.thrift.router
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.request_id: envoy.request_id.uuid
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.path.match: envoy.path.match.uri_template.uri_template_matcher
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.upstream_options: envoy.extensions.upstreams.http.v3.HttpProtocolOptions, envoy.extensions.upstreams.tcp.v3.TcpProtocolOptions, envoy.upstreams.http.http_protocol_options, envoy.upstreams.tcp.tcp_protocol_options
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.filters.network: envoy.echo, envoy.ext_authz, envoy.filters.network.connection_limit, envoy.filters.network.direct_response, envoy.filters.network.dubbo_proxy, envoy.filters.network.echo, envoy.filters.network.ext_authz, envoy.filters.network.http_connection_manager, envoy.filters.network.local_ratelimit, envoy.filters.network.mongo_proxy, envoy.filters.network.ratelimit, envoy.filters.network.rbac, envoy.filters.network.redis_proxy, envoy.filters.network.set_filter_state, envoy.filters.network.sni_cluster, envoy.filters.network.sni_dynamic_forward_proxy, envoy.filters.network.tcp_proxy, envoy.filters.network.thrift_proxy, envoy.filters.network.wasm, envoy.filters.network.zookeeper_proxy, envoy.http_connection_manager, envoy.mongo_proxy, envoy.ratelimit, envoy.redis_proxy, envoy.tcp_proxy
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.transport_sockets.upstream: envoy.transport_sockets.alts, envoy.transport_sockets.http_11_proxy, envoy.transport_sockets.internal_upstream, envoy.transport_sockets.quic, envoy.transport_sockets.raw_buffer, envoy.transport_sockets.starttls, envoy.transport_sockets.tap, envoy.transport_sockets.tcp_stats, envoy.transport_sockets.tls, envoy.transport_sockets.upstream_proxy_protocol, raw_buffer, starttls, tls
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.health_check.event_sinks: envoy.health_check.event_sink.file
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.filters.listener: envoy.filters.listener.http_inspector, envoy.filters.listener.local_ratelimit, envoy.filters.listener.original_dst, envoy.filters.listener.original_src, envoy.filters.listener.proxy_protocol, envoy.filters.listener.tls_inspector, envoy.listener.http_inspector, envoy.listener.original_dst, envoy.listener.original_src, envoy.listener.proxy_protocol, envoy.listener.tls_inspector
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.filters.udp_listener: envoy.filters.udp.dns_filter, envoy.filters.udp_listener.udp_proxy
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.http.stateful_session: envoy.http.stateful_session.cookie, envoy.http.stateful_session.header
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.udp_packet_writer: envoy.udp_packet_writer.default, envoy.udp_packet_writer.gso
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.resource_monitors: envoy.resource_monitors.fixed_heap, envoy.resource_monitors.injected_resource
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.listener_manager_impl: envoy.listener_manager_impl.default, envoy.listener_manager_impl.validation
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.upstream.local_address_selector: envoy.upstream.local_address_selector.default_local_address_selector
-[2026-04-20 10:36:20.660][1][info][main] [source/server/server.cc:432] envoy.access_loggers.extension_filters: envoy.access_loggers.extension_filters.cel
-[2026-04-20 10:36:20.663][1][info][main] [source/server/server.cc:486] HTTP header map info:
-[2026-04-20 10:36:20.665][1][info][main] [source/server/server.cc:489] request header map: 664 bytes: :authority,:method,:path,:protocol,:scheme,accept,accept-encoding,access-control-request-headers,access-control-request-method,access-control-request-private-network,authentication,authorization,cache-control,cdn-loop,connection,content-encoding,content-length,content-type,expect,grpc-accept-encoding,grpc-timeout,if-match,if-modified-since,if-none-match,if-range,if-unmodified-since,keep-alive,origin,pragma,proxy-connection,proxy-status,referer,te,transfer-encoding,upgrade,user-agent,via,x-client-trace-id,x-envoy-attempt-count,x-envoy-decorator-operation,x-envoy-downstream-service-cluster,x-envoy-downstream-service-node,x-envoy-expected-rq-timeout-ms,x-envoy-external-address,x-envoy-force-trace,x-envoy-hedge-on-per-try-timeout,x-envoy-internal,x-envoy-ip-tags,x-envoy-is-timeout-retry,x-envoy-max-retries,x-envoy-original-path,x-envoy-original-url,x-envoy-retriable-header-names,x-envoy-retriable-status-codes,x-envoy-retry-grpc-on,x-envoy-retry-on,x-envoy-upstream-alt-stat-name,x-envoy-upstream-rq-per-try-timeout-ms,x-envoy-upstream-rq-timeout-alt-response,x-envoy-upstream-rq-timeout-ms,x-envoy-upstream-stream-duration-ms,x-forwarded-client-cert,x-forwarded-for,x-forwarded-host,x-forwarded-port,x-forwarded-proto,x-ot-span-context,x-request-id
-[2026-04-20 10:36:20.665][1][info][main] [source/server/server.cc:489] request trailer map: 120 bytes:
-[2026-04-20 10:36:20.665][1][info][main] [source/server/server.cc:489] response header map: 432 bytes: :status,access-control-allow-credentials,access-control-allow-headers,access-control-allow-methods,access-control-allow-origin,access-control-allow-private-network,access-control-expose-headers,access-control-max-age,age,cache-control,connection,content-encoding,content-length,content-type,date,etag,expires,grpc-message,grpc-status,keep-alive,last-modified,location,proxy-connection,proxy-status,server,transfer-encoding,upgrade,vary,via,x-envoy-attempt-count,x-envoy-decorator-operation,x-envoy-degraded,x-envoy-immediate-health-check-fail,x-envoy-ratelimited,x-envoy-upstream-canary,x-envoy-upstream-healthchecked-cluster,x-envoy-upstream-service-time,x-request-id
-[2026-04-20 10:36:20.665][1][info][main] [source/server/server.cc:489] response trailer map: 144 bytes: grpc-message,grpc-status
-[2026-04-20 10:36:20.719][1][info][main] [source/server/server.cc:861] runtime: layers:
- - name: static_layer
- static_layer:
- envoy:
- resource_limits:
- listener:
- main:
- connection_limit: 1048576
-[2026-04-20 10:36:20.720][1][info][admin] [source/server/admin/admin.cc:66] admin address: 127.0.0.1:9901
-[2026-04-20 10:36:20.720][1][info][config] [source/server/configuration_impl.cc:168] loading tracing configuration
-[2026-04-20 10:36:20.720][1][info][config] [source/server/configuration_impl.cc:124] loading 0 static secret(s)
-[2026-04-20 10:36:20.720][1][info][config] [source/server/configuration_impl.cc:130] loading 0 cluster(s)
-[2026-04-20 10:36:20.720][1][info][config] [source/server/configuration_impl.cc:138] loading 1 listener(s)
-[2026-04-20 10:36:20.721][1][warning][misc] [source/extensions/filters/network/http_connection_manager/config.cc:84] internal_address_config is not configured. The existing default behaviour will trust RFC1918 IP addresses, but this will be changed in next release. Please explictily config internal address config as the migration step.
-[2026-04-20 10:36:20.722][1][info][lua] [source/extensions/filters/http/lua/lua_filter.cc:228] envoy_on_response() function not found. Lua filter will not hook responses.
-[2026-04-20 10:36:20.723][1][info][config] [source/server/configuration_impl.cc:154] loading stats configuration
-[2026-04-20 10:36:20.723][1][info][runtime] [source/common/runtime/runtime_impl.cc:614] RTDS has finished initialization
-[2026-04-20 10:36:20.723][1][info][upstream] [source/common/upstream/cluster_manager_impl.cc:240] cm init: all clusters initialized
-[2026-04-20 10:36:20.723][1][warning][main] [source/server/server.cc:928] There is no configured limit to the number of allowed active downstream connections. Configure a limit in `envoy.resource_monitors.downstream_connections` resource monitor.
-[2026-04-20 10:36:20.723][1][info][main] [source/server/server.cc:950] all clusters initialized. initializing init manager
-[2026-04-20 10:36:20.723][1][info][config] [source/common/listener_manager/listener_manager_impl.cc:930] all dependencies initialized. starting workers
-[2026-04-20 10:36:20.731][1][info][main] [source/server/server.cc:969] starting main dispatch loop
diff --git a/site/static/logs/baseline/4096/h2o.log b/site/static/logs/baseline/4096/h2o.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/baseline/4096/nginx.log b/site/static/logs/baseline/4096/nginx.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/baseline/4096/pingora.log b/site/static/logs/baseline/4096/pingora.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/baseline/4096/traefik.log b/site/static/logs/baseline/4096/traefik.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/baseline/512/apache.log b/site/static/logs/baseline/512/apache.log
deleted file mode 100644
index 6ccb77582..000000000
--- a/site/static/logs/baseline/512/apache.log
+++ /dev/null
@@ -1,2 +0,0 @@
-[Sun Apr 19 20:09:30.172337 2026] [mpm_event:notice] [pid 1:tid 1] AH00489: Apache/2.4.66 (Debian) configured -- resuming normal operations
-[Sun Apr 19 20:09:30.175401 2026] [core:notice] [pid 1:tid 1] AH00094: Command line: 'apache2 -D FOREGROUND -f /etc/apache2/httpd.conf'
diff --git a/site/static/logs/baseline/512/caddy.log b/site/static/logs/baseline/512/caddy.log
deleted file mode 100644
index ebe7c2145..000000000
--- a/site/static/logs/baseline/512/caddy.log
+++ /dev/null
@@ -1,3 +0,0 @@
-{"level":"info","ts":1776636152.4669683,"msg":"using config from file","file":"/etc/caddy/Caddyfile"}
-{"level":"info","ts":1776636152.4696536,"msg":"adapted config to JSON","adapter":"caddyfile"}
-{"level":"info","ts":1776636152.470039,"msg":"redirected default logger","from":"stderr","to":"discard"}
diff --git a/site/static/logs/baseline/512/envoy.log b/site/static/logs/baseline/512/envoy.log
deleted file mode 100644
index 19e4ae8b3..000000000
--- a/site/static/logs/baseline/512/envoy.log
+++ /dev/null
@@ -1,110 +0,0 @@
-[2026-04-20 10:35:57.353][1][info][main] [source/server/server.cc:428] initializing epoch 0 (base id=0, hot restart version=11.104)
-[2026-04-20 10:35:57.353][1][info][main] [source/server/server.cc:430] statically linked extensions:
-[2026-04-20 10:35:57.353][1][info][main] [source/server/server.cc:432] envoy.route.early_data_policy: envoy.route.early_data_policy.default
-[2026-04-20 10:35:57.353][1][info][main] [source/server/server.cc:432] envoy.matching.http.input: envoy.matching.inputs.cel_data_input, envoy.matching.inputs.destination_ip, envoy.matching.inputs.destination_port, envoy.matching.inputs.direct_source_ip, envoy.matching.inputs.dns_san, envoy.matching.inputs.request_headers, envoy.matching.inputs.request_trailers, envoy.matching.inputs.response_headers, envoy.matching.inputs.response_trailers, envoy.matching.inputs.server_name, envoy.matching.inputs.source_ip, envoy.matching.inputs.source_port, envoy.matching.inputs.source_type, envoy.matching.inputs.status_code_class_input, envoy.matching.inputs.status_code_input, envoy.matching.inputs.subject, envoy.matching.inputs.uri_san, query_params
-[2026-04-20 10:35:57.353][1][info][main] [source/server/server.cc:432] envoy.request_id: envoy.request_id.uuid
-[2026-04-20 10:35:57.353][1][info][main] [source/server/server.cc:432] envoy.clusters: envoy.cluster.eds, envoy.cluster.logical_dns, envoy.cluster.original_dst, envoy.cluster.static, envoy.cluster.strict_dns, envoy.clusters.aggregate, envoy.clusters.dynamic_forward_proxy, envoy.clusters.redis
-[2026-04-20 10:35:57.353][1][info][main] [source/server/server.cc:432] envoy.wasm.runtime: envoy.wasm.runtime.null, envoy.wasm.runtime.v8
-[2026-04-20 10:35:57.353][1][info][main] [source/server/server.cc:432] envoy.quic.server_preferred_address: quic.server_preferred_address.fixed
-[2026-04-20 10:35:57.353][1][info][main] [source/server/server.cc:432] envoy.retry_host_predicates: envoy.retry_host_predicates.omit_canary_hosts, envoy.retry_host_predicates.omit_host_metadata, envoy.retry_host_predicates.previous_hosts
-[2026-04-20 10:35:57.353][1][info][main] [source/server/server.cc:432] envoy.access_loggers.extension_filters: envoy.access_loggers.extension_filters.cel
-[2026-04-20 10:35:57.353][1][info][main] [source/server/server.cc:432] envoy.path.match: envoy.path.match.uri_template.uri_template_matcher
-[2026-04-20 10:35:57.353][1][info][main] [source/server/server.cc:432] envoy.retry_priorities: envoy.retry_priorities.previous_priorities
-[2026-04-20 10:35:57.353][1][info][main] [source/server/server.cc:432] envoy.tracers.opentelemetry.samplers: envoy.tracers.opentelemetry.samplers.always_on, envoy.tracers.opentelemetry.samplers.dynatrace
-[2026-04-20 10:35:57.353][1][info][main] [source/server/server.cc:432] envoy.listener_manager_impl: envoy.listener_manager_impl.default, envoy.listener_manager_impl.validation
-[2026-04-20 10:35:57.353][1][info][main] [source/server/server.cc:432] envoy.config.validators: envoy.config.validators.minimum_clusters, envoy.config.validators.minimum_clusters_validator
-[2026-04-20 10:35:57.353][1][info][main] [source/server/server.cc:432] envoy.http.early_header_mutation: envoy.http.early_header_mutation.header_mutation
-[2026-04-20 10:35:57.353][1][info][main] [source/server/server.cc:432] envoy.guarddog_actions: envoy.watchdog.abort_action, envoy.watchdog.profile_action
-[2026-04-20 10:35:57.353][1][info][main] [source/server/server.cc:432] envoy.tracers.opentelemetry.resource_detectors: envoy.tracers.opentelemetry.resource_detectors.dynatrace, envoy.tracers.opentelemetry.resource_detectors.environment
-[2026-04-20 10:35:57.353][1][info][main] [source/server/server.cc:432] envoy.common.key_value: envoy.key_value.file_based
-[2026-04-20 10:35:57.353][1][info][main] [source/server/server.cc:432] envoy.geoip_providers: envoy.geoip_providers.maxmind
-[2026-04-20 10:35:57.353][1][info][main] [source/server/server.cc:432] envoy.resource_monitors: envoy.resource_monitors.fixed_heap, envoy.resource_monitors.injected_resource
-[2026-04-20 10:35:57.353][1][info][main] [source/server/server.cc:432] envoy.http.stateful_session: envoy.http.stateful_session.cookie, envoy.http.stateful_session.header
-[2026-04-20 10:35:57.353][1][info][main] [source/server/server.cc:432] envoy.http.stateful_header_formatters: envoy.http.stateful_header_formatters.preserve_case, preserve_case
-[2026-04-20 10:35:57.353][1][info][main] [source/server/server.cc:432] envoy.transport_sockets.upstream: envoy.transport_sockets.alts, envoy.transport_sockets.http_11_proxy, envoy.transport_sockets.internal_upstream, envoy.transport_sockets.quic, envoy.transport_sockets.raw_buffer, envoy.transport_sockets.starttls, envoy.transport_sockets.tap, envoy.transport_sockets.tcp_stats, envoy.transport_sockets.tls, envoy.transport_sockets.upstream_proxy_protocol, raw_buffer, starttls, tls
-[2026-04-20 10:35:57.353][1][info][main] [source/server/server.cc:432] envoy.grpc_credentials: envoy.grpc_credentials.aws_iam, envoy.grpc_credentials.default, envoy.grpc_credentials.file_based_metadata
-[2026-04-20 10:35:57.353][1][info][main] [source/server/server.cc:432] envoy.network.dns_resolver: envoy.network.dns_resolver.cares, envoy.network.dns_resolver.getaddrinfo
-[2026-04-20 10:35:57.353][1][info][main] [source/server/server.cc:432] envoy.compression.decompressor: envoy.compression.brotli.decompressor, envoy.compression.gzip.decompressor, envoy.compression.zstd.decompressor
-[2026-04-20 10:35:57.353][1][info][main] [source/server/server.cc:432] envoy.filters.network: envoy.echo, envoy.ext_authz, envoy.filters.network.connection_limit, envoy.filters.network.direct_response, envoy.filters.network.dubbo_proxy, envoy.filters.network.echo, envoy.filters.network.ext_authz, envoy.filters.network.http_connection_manager, envoy.filters.network.local_ratelimit, envoy.filters.network.mongo_proxy, envoy.filters.network.ratelimit, envoy.filters.network.rbac, envoy.filters.network.redis_proxy, envoy.filters.network.set_filter_state, envoy.filters.network.sni_cluster, envoy.filters.network.sni_dynamic_forward_proxy, envoy.filters.network.tcp_proxy, envoy.filters.network.thrift_proxy, envoy.filters.network.wasm, envoy.filters.network.zookeeper_proxy, envoy.http_connection_manager, envoy.mongo_proxy, envoy.ratelimit, envoy.redis_proxy, envoy.tcp_proxy
-[2026-04-20 10:35:57.353][1][info][main] [source/server/server.cc:432] envoy.http.injected_credentials: envoy.http.injected_credentials.generic
-[2026-04-20 10:35:57.353][1][info][main] [source/server/server.cc:432] envoy.upstreams: envoy.filters.connection_pools.tcp.generic
-[2026-04-20 10:35:57.353][1][info][main] [source/server/server.cc:432] envoy.router.cluster_specifier_plugin: envoy.router.cluster_specifier_plugin.lua
-[2026-04-20 10:35:57.353][1][info][main] [source/server/server.cc:432] envoy.health_checkers: envoy.health_checkers.grpc, envoy.health_checkers.http, envoy.health_checkers.redis, envoy.health_checkers.tcp, envoy.health_checkers.thrift
-[2026-04-20 10:35:57.353][1][info][main] [source/server/server.cc:432] envoy.http.original_ip_detection: envoy.http.original_ip_detection.custom_header, envoy.http.original_ip_detection.xff
-[2026-04-20 10:35:57.353][1][info][main] [source/server/server.cc:432] envoy.resolvers: envoy.ip
-[2026-04-20 10:35:57.353][1][info][main] [source/server/server.cc:432] envoy.quic.server.crypto_stream: envoy.quic.crypto_stream.server.quiche
-[2026-04-20 10:35:57.353][1][info][main] [source/server/server.cc:432] envoy.matching.network.custom_matchers: envoy.matching.custom_matchers.trie_matcher
-[2026-04-20 10:35:57.353][1][info][main] [source/server/server.cc:432] envoy.string_matcher: envoy.string_matcher.lua
-[2026-04-20 10:35:57.353][1][info][main] [source/server/server.cc:432] envoy.transport_sockets.downstream: envoy.transport_sockets.alts, envoy.transport_sockets.quic, envoy.transport_sockets.raw_buffer, envoy.transport_sockets.starttls, envoy.transport_sockets.tap, envoy.transport_sockets.tcp_stats, envoy.transport_sockets.tls, raw_buffer, starttls, tls
-[2026-04-20 10:35:57.353][1][info][main] [source/server/server.cc:432] envoy.quic.connection_id_generator: envoy.quic.deterministic_connection_id_generator
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] envoy.matching.common_inputs: envoy.matching.common_inputs.environment_variable
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] envoy.http.cache: envoy.extensions.http.cache.file_system_http_cache, envoy.extensions.http.cache.simple
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] envoy.compression.compressor: envoy.compression.brotli.compressor, envoy.compression.gzip.compressor, envoy.compression.zstd.compressor
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] envoy.internal_redirect_predicates: envoy.internal_redirect_predicates.allow_listed_routes, envoy.internal_redirect_predicates.previous_routes, envoy.internal_redirect_predicates.safe_cross_scheme
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] envoy.http.header_validators: envoy.http.header_validators.envoy_default
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] envoy.thrift_proxy.transports: auto, framed, header, unframed
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] envoy.route_config_update_requester: envoy.route_config_update_requester.default
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] network.connection.client: default, envoy_internal
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] envoy.config_subscription: envoy.config_subscription.ads, envoy.config_subscription.ads_collection, envoy.config_subscription.aggregated_grpc_collection, envoy.config_subscription.delta_grpc, envoy.config_subscription.delta_grpc_collection, envoy.config_subscription.filesystem, envoy.config_subscription.filesystem_collection, envoy.config_subscription.grpc, envoy.config_subscription.rest
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] envoy.access_loggers: envoy.access_loggers.file, envoy.access_loggers.fluentd, envoy.access_loggers.http_grpc, envoy.access_loggers.open_telemetry, envoy.access_loggers.stderr, envoy.access_loggers.stdout, envoy.access_loggers.tcp_grpc, envoy.access_loggers.wasm, envoy.file_access_log, envoy.fluentd_access_log, envoy.http_grpc_access_log, envoy.open_telemetry_access_log, envoy.stderr_access_log, envoy.stdout_access_log, envoy.tcp_grpc_access_log, envoy.wasm_access_log
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] envoy.filters.udp_listener: envoy.filters.udp.dns_filter, envoy.filters.udp_listener.udp_proxy
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] envoy.connection_handler: envoy.connection_handler.default
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] filter_state.object: envoy.filters.listener.original_dst.local_ip, envoy.filters.listener.original_dst.remote_ip, envoy.network.application_protocols, envoy.network.transport_socket.original_dst_address, envoy.network.upstream_server_name, envoy.network.upstream_subject_alt_names, envoy.string, envoy.tcp_proxy.cluster, envoy.tcp_proxy.disable_tunneling, envoy.tcp_proxy.per_connection_idle_timeout_ms, envoy.upstream.dynamic_host, envoy.upstream.dynamic_port
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] envoy.dubbo_proxy.protocols: dubbo
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] envoy.formatter: envoy.formatter.cel, envoy.formatter.metadata, envoy.formatter.req_without_query
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] envoy.quic.proof_source: envoy.quic.proof_source.filter_chain
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] envoy.tracers: envoy.dynamic.ot, envoy.tracers.datadog, envoy.tracers.dynamic_ot, envoy.tracers.opencensus, envoy.tracers.opentelemetry, envoy.tracers.skywalking, envoy.tracers.xray, envoy.tracers.zipkin, envoy.zipkin
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] envoy.filters.udp.session: envoy.filters.udp.session.dynamic_forward_proxy, envoy.filters.udp.session.http_capsule
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] envoy.tls.cert_validator: envoy.tls.cert_validator.default, envoy.tls.cert_validator.spiffe
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] envoy.matching.network.input: envoy.matching.inputs.application_protocol, envoy.matching.inputs.destination_ip, envoy.matching.inputs.destination_port, envoy.matching.inputs.direct_source_ip, envoy.matching.inputs.dns_san, envoy.matching.inputs.filter_state, envoy.matching.inputs.server_name, envoy.matching.inputs.source_ip, envoy.matching.inputs.source_port, envoy.matching.inputs.source_type, envoy.matching.inputs.subject, envoy.matching.inputs.transport_protocol, envoy.matching.inputs.uri_san
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] envoy.rate_limit_descriptors: envoy.rate_limit_descriptors.expr
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] envoy.http.custom_response: envoy.extensions.http.custom_response.local_response_policy, envoy.extensions.http.custom_response.redirect_policy
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] envoy.thrift_proxy.filters: envoy.filters.thrift.header_to_metadata, envoy.filters.thrift.payload_to_metadata, envoy.filters.thrift.rate_limit, envoy.filters.thrift.router
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] envoy.health_check.event_sinks: envoy.health_check.event_sink.file
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] envoy.upstream.local_address_selector: envoy.upstream.local_address_selector.default_local_address_selector
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] envoy.matching.http.custom_matchers: envoy.matching.custom_matchers.trie_matcher
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] envoy.filters.http.upstream: envoy.buffer, envoy.ext_proc, envoy.filters.http.admission_control, envoy.filters.http.aws_lambda, envoy.filters.http.aws_request_signing, envoy.filters.http.buffer, envoy.filters.http.composite, envoy.filters.http.ext_proc, envoy.filters.http.header_mutation, envoy.filters.http.match_delegate, envoy.filters.http.upstream_codec
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] envoy.dubbo_proxy.serializers: dubbo.hessian2
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] envoy.udp_packet_writer: envoy.udp_packet_writer.default, envoy.udp_packet_writer.gso
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] envoy.load_balancing_policies: envoy.load_balancing_policies.cluster_provided, envoy.load_balancing_policies.least_request, envoy.load_balancing_policies.maglev, envoy.load_balancing_policies.random, envoy.load_balancing_policies.ring_hash, envoy.load_balancing_policies.round_robin, envoy.load_balancing_policies.subset
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] envoy.rbac.matchers: envoy.rbac.matchers.upstream_ip_port
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] envoy.matching.input_matchers: envoy.matching.matchers.cel_matcher, envoy.matching.matchers.consistent_hashing, envoy.matching.matchers.ip, envoy.matching.matchers.runtime_fraction
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] envoy.stats_sinks: envoy.dog_statsd, envoy.graphite_statsd, envoy.metrics_service, envoy.open_telemetry_stat_sink, envoy.stat_sinks.dog_statsd, envoy.stat_sinks.graphite_statsd, envoy.stat_sinks.hystrix, envoy.stat_sinks.metrics_service, envoy.stat_sinks.open_telemetry, envoy.stat_sinks.statsd, envoy.stat_sinks.wasm, envoy.statsd
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] envoy.dubbo_proxy.filters: envoy.filters.dubbo.router
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] envoy.bootstrap: envoy.bootstrap.internal_listener, envoy.bootstrap.wasm, envoy.extensions.network.socket_interface.default_socket_interface
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] envoy.thrift_proxy.protocols: auto, binary, binary/non-strict, compact, twitter
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] envoy.filters.listener: envoy.filters.listener.http_inspector, envoy.filters.listener.local_ratelimit, envoy.filters.listener.original_dst, envoy.filters.listener.original_src, envoy.filters.listener.proxy_protocol, envoy.filters.listener.tls_inspector, envoy.listener.http_inspector, envoy.listener.original_dst, envoy.listener.original_src, envoy.listener.proxy_protocol, envoy.listener.tls_inspector
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] quic.http_server_connection: quic.http_server_connection.default
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] envoy.filters.http: envoy.bandwidth_limit, envoy.buffer, envoy.cors, envoy.csrf, envoy.ext_authz, envoy.ext_proc, envoy.fault, envoy.filters.http.adaptive_concurrency, envoy.filters.http.admission_control, envoy.filters.http.alternate_protocols_cache, envoy.filters.http.aws_lambda, envoy.filters.http.aws_request_signing, envoy.filters.http.bandwidth_limit, envoy.filters.http.basic_auth, envoy.filters.http.buffer, envoy.filters.http.cache, envoy.filters.http.cdn_loop, envoy.filters.http.composite, envoy.filters.http.compressor, envoy.filters.http.connect_grpc_bridge, envoy.filters.http.cors, envoy.filters.http.credential_injector, envoy.filters.http.csrf, envoy.filters.http.custom_response, envoy.filters.http.decompressor, envoy.filters.http.dynamic_forward_proxy, envoy.filters.http.ext_authz, envoy.filters.http.ext_proc, envoy.filters.http.fault, envoy.filters.http.file_system_buffer, envoy.filters.http.gcp_authn, envoy.filters.http.geoip, envoy.filters.http.grpc_field_extraction, envoy.filters.http.grpc_http1_bridge, envoy.filters.http.grpc_http1_reverse_bridge, envoy.filters.http.grpc_json_transcoder, envoy.filters.http.grpc_stats, envoy.filters.http.grpc_web, envoy.filters.http.header_mutation, envoy.filters.http.header_to_metadata, envoy.filters.http.health_check, envoy.filters.http.ip_tagging, envoy.filters.http.json_to_metadata, envoy.filters.http.jwt_authn, envoy.filters.http.local_ratelimit, envoy.filters.http.lua, envoy.filters.http.match_delegate, envoy.filters.http.oauth2, envoy.filters.http.on_demand, envoy.filters.http.original_src, envoy.filters.http.rate_limit_quota, envoy.filters.http.ratelimit, envoy.filters.http.rbac, envoy.filters.http.router, envoy.filters.http.set_filter_state, envoy.filters.http.set_metadata, envoy.filters.http.stateful_session, envoy.filters.http.tap, envoy.filters.http.wasm, envoy.geoip, envoy.grpc_http1_bridge, envoy.grpc_json_transcoder, envoy.grpc_web, envoy.health_check, envoy.ip_tagging, envoy.local_rate_limit, envoy.lua, envoy.rate_limit, envoy.router
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] envoy.path.rewrite: envoy.path.rewrite.uri_template.uri_template_rewriter
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] envoy.upstream_options: envoy.extensions.upstreams.http.v3.HttpProtocolOptions, envoy.extensions.upstreams.tcp.v3.TcpProtocolOptions, envoy.upstreams.http.http_protocol_options, envoy.upstreams.tcp.tcp_protocol_options
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] envoy.regex_engines: envoy.regex_engines.google_re2
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] envoy.matching.action: envoy.matching.actions.format_string, filter-chain-name
-[2026-04-20 10:35:57.354][1][info][main] [source/server/server.cc:432] envoy.config_mux: envoy.config_mux.delta_grpc_mux_factory, envoy.config_mux.grpc_mux_factory, envoy.config_mux.new_grpc_mux_factory, envoy.config_mux.sotw_grpc_mux_factory
-[2026-04-20 10:35:57.360][1][info][main] [source/server/server.cc:486] HTTP header map info:
-[2026-04-20 10:35:57.362][1][info][main] [source/server/server.cc:489] request header map: 664 bytes: :authority,:method,:path,:protocol,:scheme,accept,accept-encoding,access-control-request-headers,access-control-request-method,access-control-request-private-network,authentication,authorization,cache-control,cdn-loop,connection,content-encoding,content-length,content-type,expect,grpc-accept-encoding,grpc-timeout,if-match,if-modified-since,if-none-match,if-range,if-unmodified-since,keep-alive,origin,pragma,proxy-connection,proxy-status,referer,te,transfer-encoding,upgrade,user-agent,via,x-client-trace-id,x-envoy-attempt-count,x-envoy-decorator-operation,x-envoy-downstream-service-cluster,x-envoy-downstream-service-node,x-envoy-expected-rq-timeout-ms,x-envoy-external-address,x-envoy-force-trace,x-envoy-hedge-on-per-try-timeout,x-envoy-internal,x-envoy-ip-tags,x-envoy-is-timeout-retry,x-envoy-max-retries,x-envoy-original-path,x-envoy-original-url,x-envoy-retriable-header-names,x-envoy-retriable-status-codes,x-envoy-retry-grpc-on,x-envoy-retry-on,x-envoy-upstream-alt-stat-name,x-envoy-upstream-rq-per-try-timeout-ms,x-envoy-upstream-rq-timeout-alt-response,x-envoy-upstream-rq-timeout-ms,x-envoy-upstream-stream-duration-ms,x-forwarded-client-cert,x-forwarded-for,x-forwarded-host,x-forwarded-port,x-forwarded-proto,x-ot-span-context,x-request-id
-[2026-04-20 10:35:57.362][1][info][main] [source/server/server.cc:489] request trailer map: 120 bytes:
-[2026-04-20 10:35:57.362][1][info][main] [source/server/server.cc:489] response header map: 432 bytes: :status,access-control-allow-credentials,access-control-allow-headers,access-control-allow-methods,access-control-allow-origin,access-control-allow-private-network,access-control-expose-headers,access-control-max-age,age,cache-control,connection,content-encoding,content-length,content-type,date,etag,expires,grpc-message,grpc-status,keep-alive,last-modified,location,proxy-connection,proxy-status,server,transfer-encoding,upgrade,vary,via,x-envoy-attempt-count,x-envoy-decorator-operation,x-envoy-degraded,x-envoy-immediate-health-check-fail,x-envoy-ratelimited,x-envoy-upstream-canary,x-envoy-upstream-healthchecked-cluster,x-envoy-upstream-service-time,x-request-id
-[2026-04-20 10:35:57.362][1][info][main] [source/server/server.cc:489] response trailer map: 144 bytes: grpc-message,grpc-status
-[2026-04-20 10:35:57.389][1][info][main] [source/server/server.cc:861] runtime: layers:
- - name: static_layer
- static_layer:
- envoy:
- resource_limits:
- listener:
- main:
- connection_limit: 1048576
-[2026-04-20 10:35:57.390][1][info][admin] [source/server/admin/admin.cc:66] admin address: 127.0.0.1:9901
-[2026-04-20 10:35:57.390][1][info][config] [source/server/configuration_impl.cc:168] loading tracing configuration
-[2026-04-20 10:35:57.391][1][info][config] [source/server/configuration_impl.cc:124] loading 0 static secret(s)
-[2026-04-20 10:35:57.391][1][info][config] [source/server/configuration_impl.cc:130] loading 0 cluster(s)
-[2026-04-20 10:35:57.391][1][info][config] [source/server/configuration_impl.cc:138] loading 1 listener(s)
-[2026-04-20 10:35:57.393][1][warning][misc] [source/extensions/filters/network/http_connection_manager/config.cc:84] internal_address_config is not configured. The existing default behaviour will trust RFC1918 IP addresses, but this will be changed in next release. Please explictily config internal address config as the migration step.
-[2026-04-20 10:35:57.399][1][info][lua] [source/extensions/filters/http/lua/lua_filter.cc:228] envoy_on_response() function not found. Lua filter will not hook responses.
-[2026-04-20 10:35:57.400][1][info][config] [source/server/configuration_impl.cc:154] loading stats configuration
-[2026-04-20 10:35:57.400][1][info][runtime] [source/common/runtime/runtime_impl.cc:614] RTDS has finished initialization
-[2026-04-20 10:35:57.400][1][info][upstream] [source/common/upstream/cluster_manager_impl.cc:240] cm init: all clusters initialized
-[2026-04-20 10:35:57.400][1][warning][main] [source/server/server.cc:928] There is no configured limit to the number of allowed active downstream connections. Configure a limit in `envoy.resource_monitors.downstream_connections` resource monitor.
-[2026-04-20 10:35:57.400][1][info][main] [source/server/server.cc:950] all clusters initialized. initializing init manager
-[2026-04-20 10:35:57.400][1][info][config] [source/common/listener_manager/listener_manager_impl.cc:930] all dependencies initialized. starting workers
-[2026-04-20 10:35:57.408][1][info][main] [source/server/server.cc:969] starting main dispatch loop
diff --git a/site/static/logs/baseline/512/h2o.log b/site/static/logs/baseline/512/h2o.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/baseline/512/nginx.log b/site/static/logs/baseline/512/nginx.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/baseline/512/pingora.log b/site/static/logs/baseline/512/pingora.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/baseline/512/traefik.log b/site/static/logs/baseline/512/traefik.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/json-h2c/1024/h2o-h2c.log b/site/static/logs/json-h2c/1024/h2o-h2c.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/json-h2c/4096/h2o-h2c.log b/site/static/logs/json-h2c/4096/h2o-h2c.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/limited-conn/4096/apache.log b/site/static/logs/limited-conn/4096/apache.log
deleted file mode 100644
index 7fdaade06..000000000
--- a/site/static/logs/limited-conn/4096/apache.log
+++ /dev/null
@@ -1,2 +0,0 @@
-[Sun Apr 19 20:12:23.300148 2026] [mpm_event:notice] [pid 1:tid 1] AH00489: Apache/2.4.66 (Debian) configured -- resuming normal operations
-[Sun Apr 19 20:12:23.300260 2026] [core:notice] [pid 1:tid 1] AH00094: Command line: 'apache2 -D FOREGROUND -f /etc/apache2/httpd.conf'
diff --git a/site/static/logs/limited-conn/4096/caddy.log b/site/static/logs/limited-conn/4096/caddy.log
deleted file mode 100644
index 589ec6454..000000000
--- a/site/static/logs/limited-conn/4096/caddy.log
+++ /dev/null
@@ -1,3 +0,0 @@
-{"level":"info","ts":1776636269.6427696,"msg":"using config from file","file":"/etc/caddy/Caddyfile"}
-{"level":"info","ts":1776636269.6436121,"msg":"adapted config to JSON","adapter":"caddyfile"}
-{"level":"info","ts":1776636269.6437583,"msg":"redirected default logger","from":"stderr","to":"discard"}
diff --git a/site/static/logs/limited-conn/4096/envoy.log b/site/static/logs/limited-conn/4096/envoy.log
deleted file mode 100644
index 5473340df..000000000
--- a/site/static/logs/limited-conn/4096/envoy.log
+++ /dev/null
@@ -1,110 +0,0 @@
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:428] initializing epoch 0 (base id=0, hot restart version=11.104)
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:430] statically linked extensions:
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.config_mux: envoy.config_mux.delta_grpc_mux_factory, envoy.config_mux.grpc_mux_factory, envoy.config_mux.new_grpc_mux_factory, envoy.config_mux.sotw_grpc_mux_factory
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.geoip_providers: envoy.geoip_providers.maxmind
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] quic.http_server_connection: quic.http_server_connection.default
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.upstreams: envoy.filters.connection_pools.tcp.generic
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.tracers.opentelemetry.samplers: envoy.tracers.opentelemetry.samplers.always_on, envoy.tracers.opentelemetry.samplers.dynatrace
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.grpc_credentials: envoy.grpc_credentials.aws_iam, envoy.grpc_credentials.default, envoy.grpc_credentials.file_based_metadata
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.matching.http.input: envoy.matching.inputs.cel_data_input, envoy.matching.inputs.destination_ip, envoy.matching.inputs.destination_port, envoy.matching.inputs.direct_source_ip, envoy.matching.inputs.dns_san, envoy.matching.inputs.request_headers, envoy.matching.inputs.request_trailers, envoy.matching.inputs.response_headers, envoy.matching.inputs.response_trailers, envoy.matching.inputs.server_name, envoy.matching.inputs.source_ip, envoy.matching.inputs.source_port, envoy.matching.inputs.source_type, envoy.matching.inputs.status_code_class_input, envoy.matching.inputs.status_code_input, envoy.matching.inputs.subject, envoy.matching.inputs.uri_san, query_params
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.filters.udp.session: envoy.filters.udp.session.dynamic_forward_proxy, envoy.filters.udp.session.http_capsule
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.config_subscription: envoy.config_subscription.ads, envoy.config_subscription.ads_collection, envoy.config_subscription.aggregated_grpc_collection, envoy.config_subscription.delta_grpc, envoy.config_subscription.delta_grpc_collection, envoy.config_subscription.filesystem, envoy.config_subscription.filesystem_collection, envoy.config_subscription.grpc, envoy.config_subscription.rest
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.transport_sockets.upstream: envoy.transport_sockets.alts, envoy.transport_sockets.http_11_proxy, envoy.transport_sockets.internal_upstream, envoy.transport_sockets.quic, envoy.transport_sockets.raw_buffer, envoy.transport_sockets.starttls, envoy.transport_sockets.tap, envoy.transport_sockets.tcp_stats, envoy.transport_sockets.tls, envoy.transport_sockets.upstream_proxy_protocol, raw_buffer, starttls, tls
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.route_config_update_requester: envoy.route_config_update_requester.default
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.quic.server_preferred_address: quic.server_preferred_address.fixed
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.compression.compressor: envoy.compression.brotli.compressor, envoy.compression.gzip.compressor, envoy.compression.zstd.compressor
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.string_matcher: envoy.string_matcher.lua
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.rate_limit_descriptors: envoy.rate_limit_descriptors.expr
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.load_balancing_policies: envoy.load_balancing_policies.cluster_provided, envoy.load_balancing_policies.least_request, envoy.load_balancing_policies.maglev, envoy.load_balancing_policies.random, envoy.load_balancing_policies.ring_hash, envoy.load_balancing_policies.round_robin, envoy.load_balancing_policies.subset
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.matching.network.input: envoy.matching.inputs.application_protocol, envoy.matching.inputs.destination_ip, envoy.matching.inputs.destination_port, envoy.matching.inputs.direct_source_ip, envoy.matching.inputs.dns_san, envoy.matching.inputs.filter_state, envoy.matching.inputs.server_name, envoy.matching.inputs.source_ip, envoy.matching.inputs.source_port, envoy.matching.inputs.source_type, envoy.matching.inputs.subject, envoy.matching.inputs.transport_protocol, envoy.matching.inputs.uri_san
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.matching.common_inputs: envoy.matching.common_inputs.environment_variable
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.tls.cert_validator: envoy.tls.cert_validator.default, envoy.tls.cert_validator.spiffe
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.guarddog_actions: envoy.watchdog.abort_action, envoy.watchdog.profile_action
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.internal_redirect_predicates: envoy.internal_redirect_predicates.allow_listed_routes, envoy.internal_redirect_predicates.previous_routes, envoy.internal_redirect_predicates.safe_cross_scheme
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.filters.http: envoy.bandwidth_limit, envoy.buffer, envoy.cors, envoy.csrf, envoy.ext_authz, envoy.ext_proc, envoy.fault, envoy.filters.http.adaptive_concurrency, envoy.filters.http.admission_control, envoy.filters.http.alternate_protocols_cache, envoy.filters.http.aws_lambda, envoy.filters.http.aws_request_signing, envoy.filters.http.bandwidth_limit, envoy.filters.http.basic_auth, envoy.filters.http.buffer, envoy.filters.http.cache, envoy.filters.http.cdn_loop, envoy.filters.http.composite, envoy.filters.http.compressor, envoy.filters.http.connect_grpc_bridge, envoy.filters.http.cors, envoy.filters.http.credential_injector, envoy.filters.http.csrf, envoy.filters.http.custom_response, envoy.filters.http.decompressor, envoy.filters.http.dynamic_forward_proxy, envoy.filters.http.ext_authz, envoy.filters.http.ext_proc, envoy.filters.http.fault, envoy.filters.http.file_system_buffer, envoy.filters.http.gcp_authn, envoy.filters.http.geoip, envoy.filters.http.grpc_field_extraction, envoy.filters.http.grpc_http1_bridge, envoy.filters.http.grpc_http1_reverse_bridge, envoy.filters.http.grpc_json_transcoder, envoy.filters.http.grpc_stats, envoy.filters.http.grpc_web, envoy.filters.http.header_mutation, envoy.filters.http.header_to_metadata, envoy.filters.http.health_check, envoy.filters.http.ip_tagging, envoy.filters.http.json_to_metadata, envoy.filters.http.jwt_authn, envoy.filters.http.local_ratelimit, envoy.filters.http.lua, envoy.filters.http.match_delegate, envoy.filters.http.oauth2, envoy.filters.http.on_demand, envoy.filters.http.original_src, envoy.filters.http.rate_limit_quota, envoy.filters.http.ratelimit, envoy.filters.http.rbac, envoy.filters.http.router, envoy.filters.http.set_filter_state, envoy.filters.http.set_metadata, envoy.filters.http.stateful_session, envoy.filters.http.tap, envoy.filters.http.wasm, envoy.geoip, envoy.grpc_http1_bridge, envoy.grpc_json_transcoder, envoy.grpc_web, envoy.health_check, envoy.ip_tagging, envoy.local_rate_limit, envoy.lua, envoy.rate_limit, envoy.router
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.health_checkers: envoy.health_checkers.grpc, envoy.health_checkers.http, envoy.health_checkers.redis, envoy.health_checkers.tcp, envoy.health_checkers.thrift
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.network.dns_resolver: envoy.network.dns_resolver.cares, envoy.network.dns_resolver.getaddrinfo
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.common.key_value: envoy.key_value.file_based
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.matching.http.custom_matchers: envoy.matching.custom_matchers.trie_matcher
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.upstream.local_address_selector: envoy.upstream.local_address_selector.default_local_address_selector
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.retry_host_predicates: envoy.retry_host_predicates.omit_canary_hosts, envoy.retry_host_predicates.omit_host_metadata, envoy.retry_host_predicates.previous_hosts
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.clusters: envoy.cluster.eds, envoy.cluster.logical_dns, envoy.cluster.original_dst, envoy.cluster.static, envoy.cluster.strict_dns, envoy.clusters.aggregate, envoy.clusters.dynamic_forward_proxy, envoy.clusters.redis
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.matching.network.custom_matchers: envoy.matching.custom_matchers.trie_matcher
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.route.early_data_policy: envoy.route.early_data_policy.default
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.transport_sockets.downstream: envoy.transport_sockets.alts, envoy.transport_sockets.quic, envoy.transport_sockets.raw_buffer, envoy.transport_sockets.starttls, envoy.transport_sockets.tap, envoy.transport_sockets.tcp_stats, envoy.transport_sockets.tls, raw_buffer, starttls, tls
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.wasm.runtime: envoy.wasm.runtime.null, envoy.wasm.runtime.v8
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.access_loggers.extension_filters: envoy.access_loggers.extension_filters.cel
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.bootstrap: envoy.bootstrap.internal_listener, envoy.bootstrap.wasm, envoy.extensions.network.socket_interface.default_socket_interface
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.matching.action: envoy.matching.actions.format_string, filter-chain-name
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.stats_sinks: envoy.dog_statsd, envoy.graphite_statsd, envoy.metrics_service, envoy.open_telemetry_stat_sink, envoy.stat_sinks.dog_statsd, envoy.stat_sinks.graphite_statsd, envoy.stat_sinks.hystrix, envoy.stat_sinks.metrics_service, envoy.stat_sinks.open_telemetry, envoy.stat_sinks.statsd, envoy.stat_sinks.wasm, envoy.statsd
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.tracers.opentelemetry.resource_detectors: envoy.tracers.opentelemetry.resource_detectors.dynatrace, envoy.tracers.opentelemetry.resource_detectors.environment
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.http.stateful_session: envoy.http.stateful_session.cookie, envoy.http.stateful_session.header
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.http.custom_response: envoy.extensions.http.custom_response.local_response_policy, envoy.extensions.http.custom_response.redirect_policy
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.http.early_header_mutation: envoy.http.early_header_mutation.header_mutation
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.filters.udp_listener: envoy.filters.udp.dns_filter, envoy.filters.udp_listener.udp_proxy
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.compression.decompressor: envoy.compression.brotli.decompressor, envoy.compression.gzip.decompressor, envoy.compression.zstd.decompressor
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.router.cluster_specifier_plugin: envoy.router.cluster_specifier_plugin.lua
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.udp_packet_writer: envoy.udp_packet_writer.default, envoy.udp_packet_writer.gso
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.dubbo_proxy.serializers: dubbo.hessian2
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.retry_priorities: envoy.retry_priorities.previous_priorities
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.health_check.event_sinks: envoy.health_check.event_sink.file
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.resolvers: envoy.ip
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.quic.connection_id_generator: envoy.quic.deterministic_connection_id_generator
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.access_loggers: envoy.access_loggers.file, envoy.access_loggers.fluentd, envoy.access_loggers.http_grpc, envoy.access_loggers.open_telemetry, envoy.access_loggers.stderr, envoy.access_loggers.stdout, envoy.access_loggers.tcp_grpc, envoy.access_loggers.wasm, envoy.file_access_log, envoy.fluentd_access_log, envoy.http_grpc_access_log, envoy.open_telemetry_access_log, envoy.stderr_access_log, envoy.stdout_access_log, envoy.tcp_grpc_access_log, envoy.wasm_access_log
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.connection_handler: envoy.connection_handler.default
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.thrift_proxy.protocols: auto, binary, binary/non-strict, compact, twitter
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.regex_engines: envoy.regex_engines.google_re2
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.dubbo_proxy.protocols: dubbo
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.http.stateful_header_formatters: envoy.http.stateful_header_formatters.preserve_case, preserve_case
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.rbac.matchers: envoy.rbac.matchers.upstream_ip_port
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.filters.http.upstream: envoy.buffer, envoy.ext_proc, envoy.filters.http.admission_control, envoy.filters.http.aws_lambda, envoy.filters.http.aws_request_signing, envoy.filters.http.buffer, envoy.filters.http.composite, envoy.filters.http.ext_proc, envoy.filters.http.header_mutation, envoy.filters.http.match_delegate, envoy.filters.http.upstream_codec
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.http.cache: envoy.extensions.http.cache.file_system_http_cache, envoy.extensions.http.cache.simple
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.listener_manager_impl: envoy.listener_manager_impl.default, envoy.listener_manager_impl.validation
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.http.original_ip_detection: envoy.http.original_ip_detection.custom_header, envoy.http.original_ip_detection.xff
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.config.validators: envoy.config.validators.minimum_clusters, envoy.config.validators.minimum_clusters_validator
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.upstream_options: envoy.extensions.upstreams.http.v3.HttpProtocolOptions, envoy.extensions.upstreams.tcp.v3.TcpProtocolOptions, envoy.upstreams.http.http_protocol_options, envoy.upstreams.tcp.tcp_protocol_options
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.dubbo_proxy.filters: envoy.filters.dubbo.router
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.request_id: envoy.request_id.uuid
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.http.injected_credentials: envoy.http.injected_credentials.generic
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.quic.server.crypto_stream: envoy.quic.crypto_stream.server.quiche
-[2026-04-20 10:37:54.322][1][info][main] [source/server/server.cc:432] envoy.thrift_proxy.transports: auto, framed, header, unframed
-[2026-04-20 10:37:54.323][1][info][main] [source/server/server.cc:432] filter_state.object: envoy.filters.listener.original_dst.local_ip, envoy.filters.listener.original_dst.remote_ip, envoy.network.application_protocols, envoy.network.transport_socket.original_dst_address, envoy.network.upstream_server_name, envoy.network.upstream_subject_alt_names, envoy.string, envoy.tcp_proxy.cluster, envoy.tcp_proxy.disable_tunneling, envoy.tcp_proxy.per_connection_idle_timeout_ms, envoy.upstream.dynamic_host, envoy.upstream.dynamic_port
-[2026-04-20 10:37:54.323][1][info][main] [source/server/server.cc:432] envoy.filters.listener: envoy.filters.listener.http_inspector, envoy.filters.listener.local_ratelimit, envoy.filters.listener.original_dst, envoy.filters.listener.original_src, envoy.filters.listener.proxy_protocol, envoy.filters.listener.tls_inspector, envoy.listener.http_inspector, envoy.listener.original_dst, envoy.listener.original_src, envoy.listener.proxy_protocol, envoy.listener.tls_inspector
-[2026-04-20 10:37:54.323][1][info][main] [source/server/server.cc:432] envoy.tracers: envoy.dynamic.ot, envoy.tracers.datadog, envoy.tracers.dynamic_ot, envoy.tracers.opencensus, envoy.tracers.opentelemetry, envoy.tracers.skywalking, envoy.tracers.xray, envoy.tracers.zipkin, envoy.zipkin
-[2026-04-20 10:37:54.323][1][info][main] [source/server/server.cc:432] network.connection.client: default, envoy_internal
-[2026-04-20 10:37:54.323][1][info][main] [source/server/server.cc:432] envoy.http.header_validators: envoy.http.header_validators.envoy_default
-[2026-04-20 10:37:54.323][1][info][main] [source/server/server.cc:432] envoy.matching.input_matchers: envoy.matching.matchers.cel_matcher, envoy.matching.matchers.consistent_hashing, envoy.matching.matchers.ip, envoy.matching.matchers.runtime_fraction
-[2026-04-20 10:37:54.323][1][info][main] [source/server/server.cc:432] envoy.quic.proof_source: envoy.quic.proof_source.filter_chain
-[2026-04-20 10:37:54.323][1][info][main] [source/server/server.cc:432] envoy.thrift_proxy.filters: envoy.filters.thrift.header_to_metadata, envoy.filters.thrift.payload_to_metadata, envoy.filters.thrift.rate_limit, envoy.filters.thrift.router
-[2026-04-20 10:37:54.323][1][info][main] [source/server/server.cc:432] envoy.path.rewrite: envoy.path.rewrite.uri_template.uri_template_rewriter
-[2026-04-20 10:37:54.323][1][info][main] [source/server/server.cc:432] envoy.filters.network: envoy.echo, envoy.ext_authz, envoy.filters.network.connection_limit, envoy.filters.network.direct_response, envoy.filters.network.dubbo_proxy, envoy.filters.network.echo, envoy.filters.network.ext_authz, envoy.filters.network.http_connection_manager, envoy.filters.network.local_ratelimit, envoy.filters.network.mongo_proxy, envoy.filters.network.ratelimit, envoy.filters.network.rbac, envoy.filters.network.redis_proxy, envoy.filters.network.set_filter_state, envoy.filters.network.sni_cluster, envoy.filters.network.sni_dynamic_forward_proxy, envoy.filters.network.tcp_proxy, envoy.filters.network.thrift_proxy, envoy.filters.network.wasm, envoy.filters.network.zookeeper_proxy, envoy.http_connection_manager, envoy.mongo_proxy, envoy.ratelimit, envoy.redis_proxy, envoy.tcp_proxy
-[2026-04-20 10:37:54.323][1][info][main] [source/server/server.cc:432] envoy.path.match: envoy.path.match.uri_template.uri_template_matcher
-[2026-04-20 10:37:54.323][1][info][main] [source/server/server.cc:432] envoy.formatter: envoy.formatter.cel, envoy.formatter.metadata, envoy.formatter.req_without_query
-[2026-04-20 10:37:54.323][1][info][main] [source/server/server.cc:432] envoy.resource_monitors: envoy.resource_monitors.fixed_heap, envoy.resource_monitors.injected_resource
-[2026-04-20 10:37:54.326][1][info][main] [source/server/server.cc:486] HTTP header map info:
-[2026-04-20 10:37:54.328][1][info][main] [source/server/server.cc:489] request header map: 664 bytes: :authority,:method,:path,:protocol,:scheme,accept,accept-encoding,access-control-request-headers,access-control-request-method,access-control-request-private-network,authentication,authorization,cache-control,cdn-loop,connection,content-encoding,content-length,content-type,expect,grpc-accept-encoding,grpc-timeout,if-match,if-modified-since,if-none-match,if-range,if-unmodified-since,keep-alive,origin,pragma,proxy-connection,proxy-status,referer,te,transfer-encoding,upgrade,user-agent,via,x-client-trace-id,x-envoy-attempt-count,x-envoy-decorator-operation,x-envoy-downstream-service-cluster,x-envoy-downstream-service-node,x-envoy-expected-rq-timeout-ms,x-envoy-external-address,x-envoy-force-trace,x-envoy-hedge-on-per-try-timeout,x-envoy-internal,x-envoy-ip-tags,x-envoy-is-timeout-retry,x-envoy-max-retries,x-envoy-original-path,x-envoy-original-url,x-envoy-retriable-header-names,x-envoy-retriable-status-codes,x-envoy-retry-grpc-on,x-envoy-retry-on,x-envoy-upstream-alt-stat-name,x-envoy-upstream-rq-per-try-timeout-ms,x-envoy-upstream-rq-timeout-alt-response,x-envoy-upstream-rq-timeout-ms,x-envoy-upstream-stream-duration-ms,x-forwarded-client-cert,x-forwarded-for,x-forwarded-host,x-forwarded-port,x-forwarded-proto,x-ot-span-context,x-request-id
-[2026-04-20 10:37:54.328][1][info][main] [source/server/server.cc:489] request trailer map: 120 bytes:
-[2026-04-20 10:37:54.328][1][info][main] [source/server/server.cc:489] response header map: 432 bytes: :status,access-control-allow-credentials,access-control-allow-headers,access-control-allow-methods,access-control-allow-origin,access-control-allow-private-network,access-control-expose-headers,access-control-max-age,age,cache-control,connection,content-encoding,content-length,content-type,date,etag,expires,grpc-message,grpc-status,keep-alive,last-modified,location,proxy-connection,proxy-status,server,transfer-encoding,upgrade,vary,via,x-envoy-attempt-count,x-envoy-decorator-operation,x-envoy-degraded,x-envoy-immediate-health-check-fail,x-envoy-ratelimited,x-envoy-upstream-canary,x-envoy-upstream-healthchecked-cluster,x-envoy-upstream-service-time,x-request-id
-[2026-04-20 10:37:54.328][1][info][main] [source/server/server.cc:489] response trailer map: 144 bytes: grpc-message,grpc-status
-[2026-04-20 10:37:54.384][1][info][main] [source/server/server.cc:861] runtime: layers:
- - name: static_layer
- static_layer:
- envoy:
- resource_limits:
- listener:
- main:
- connection_limit: 1048576
-[2026-04-20 10:37:54.385][1][info][admin] [source/server/admin/admin.cc:66] admin address: 127.0.0.1:9901
-[2026-04-20 10:37:54.385][1][info][config] [source/server/configuration_impl.cc:168] loading tracing configuration
-[2026-04-20 10:37:54.385][1][info][config] [source/server/configuration_impl.cc:124] loading 0 static secret(s)
-[2026-04-20 10:37:54.385][1][info][config] [source/server/configuration_impl.cc:130] loading 0 cluster(s)
-[2026-04-20 10:37:54.385][1][info][config] [source/server/configuration_impl.cc:138] loading 1 listener(s)
-[2026-04-20 10:37:54.386][1][warning][misc] [source/extensions/filters/network/http_connection_manager/config.cc:84] internal_address_config is not configured. The existing default behaviour will trust RFC1918 IP addresses, but this will be changed in next release. Please explictily config internal address config as the migration step.
-[2026-04-20 10:37:54.387][1][info][lua] [source/extensions/filters/http/lua/lua_filter.cc:228] envoy_on_response() function not found. Lua filter will not hook responses.
-[2026-04-20 10:37:54.388][1][info][config] [source/server/configuration_impl.cc:154] loading stats configuration
-[2026-04-20 10:37:54.388][1][info][runtime] [source/common/runtime/runtime_impl.cc:614] RTDS has finished initialization
-[2026-04-20 10:37:54.388][1][info][upstream] [source/common/upstream/cluster_manager_impl.cc:240] cm init: all clusters initialized
-[2026-04-20 10:37:54.388][1][warning][main] [source/server/server.cc:928] There is no configured limit to the number of allowed active downstream connections. Configure a limit in `envoy.resource_monitors.downstream_connections` resource monitor.
-[2026-04-20 10:37:54.388][1][info][main] [source/server/server.cc:950] all clusters initialized. initializing init manager
-[2026-04-20 10:37:54.388][1][info][config] [source/common/listener_manager/listener_manager_impl.cc:930] all dependencies initialized. starting workers
-[2026-04-20 10:37:54.396][1][info][main] [source/server/server.cc:969] starting main dispatch loop
diff --git a/site/static/logs/limited-conn/4096/h2o.log b/site/static/logs/limited-conn/4096/h2o.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/limited-conn/4096/nginx.log b/site/static/logs/limited-conn/4096/nginx.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/limited-conn/4096/pingora.log b/site/static/logs/limited-conn/4096/pingora.log
deleted file mode 100644
index 1b9bdd619..000000000
--- a/site/static/logs/limited-conn/4096/pingora.log
+++ /dev/null
@@ -1,804 +0,0 @@
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:33Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:41Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:41Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:41Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:41Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:41Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:41Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:41Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:41Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:41Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:41Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:41Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:41Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:41Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:41Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:41Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:41Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:41Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:41Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:41Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:41Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:41Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:41Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to write to downstream: Downstream WriteError context: flushing body cause: Connection reset by peer (os error 104), GET /baseline11?a=1&b=1, Host: localhost:8080
-[2026-04-19T22:23:48Z ERROR pingora_core::apps::http_app] HTTP server fails to finish the request: WriteError context: flushing body cause: Broken pipe (os error 32)
diff --git a/site/static/logs/limited-conn/4096/traefik.log b/site/static/logs/limited-conn/4096/traefik.log
deleted file mode 100644
index fefe46bf4..000000000
--- a/site/static/logs/limited-conn/4096/traefik.log
+++ /dev/null
@@ -1,4 +0,0 @@
-[90m2026-04-19T22:27:32Z[0m [1m[31mERR[0m[0m Error while Peeking first byte [36merror=[0m[31m"read tcp 127.0.0.1:8080->127.0.0.1:6474: read: connection reset by peer"[0m
-[90m2026-04-19T22:27:39Z[0m [1m[31mERR[0m[0m Error while Peeking first byte [36merror=[0m[31m"read tcp 127.0.0.1:8080->127.0.0.1:60392: read: connection reset by peer"[0m
-[90m2026-04-19T22:27:39Z[0m [1m[31mERR[0m[0m Error while Peeking first byte [36merror=[0m[31m"read tcp 127.0.0.1:8080->127.0.0.1:60400: read: connection reset by peer"[0m
-[90m2026-04-19T22:27:39Z[0m [1m[31mERR[0m[0m Error while Peeking first byte [36merror=[0m[31m"read tcp 127.0.0.1:8080->127.0.0.1:60402: read: connection reset by peer"[0m
diff --git a/site/static/logs/limited-conn/512/apache.log b/site/static/logs/limited-conn/512/apache.log
deleted file mode 100644
index 940009fbe..000000000
--- a/site/static/logs/limited-conn/512/apache.log
+++ /dev/null
@@ -1,2 +0,0 @@
-[Sun Apr 19 20:12:00.353389 2026] [mpm_event:notice] [pid 1:tid 1] AH00489: Apache/2.4.66 (Debian) configured -- resuming normal operations
-[Sun Apr 19 20:12:00.353488 2026] [core:notice] [pid 1:tid 1] AH00094: Command line: 'apache2 -D FOREGROUND -f /etc/apache2/httpd.conf'
diff --git a/site/static/logs/limited-conn/512/caddy.log b/site/static/logs/limited-conn/512/caddy.log
deleted file mode 100644
index 7883c8ba9..000000000
--- a/site/static/logs/limited-conn/512/caddy.log
+++ /dev/null
@@ -1,3 +0,0 @@
-{"level":"info","ts":1776636246.1635473,"msg":"using config from file","file":"/etc/caddy/Caddyfile"}
-{"level":"info","ts":1776636246.1645505,"msg":"adapted config to JSON","adapter":"caddyfile"}
-{"level":"info","ts":1776636246.1647341,"msg":"redirected default logger","from":"stderr","to":"discard"}
diff --git a/site/static/logs/limited-conn/512/envoy.log b/site/static/logs/limited-conn/512/envoy.log
deleted file mode 100644
index 990e4bd03..000000000
--- a/site/static/logs/limited-conn/512/envoy.log
+++ /dev/null
@@ -1,110 +0,0 @@
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:428] initializing epoch 0 (base id=0, hot restart version=11.104)
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:430] statically linked extensions:
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.bootstrap: envoy.bootstrap.internal_listener, envoy.bootstrap.wasm, envoy.extensions.network.socket_interface.default_socket_interface
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.filters.listener: envoy.filters.listener.http_inspector, envoy.filters.listener.local_ratelimit, envoy.filters.listener.original_dst, envoy.filters.listener.original_src, envoy.filters.listener.proxy_protocol, envoy.filters.listener.tls_inspector, envoy.listener.http_inspector, envoy.listener.original_dst, envoy.listener.original_src, envoy.listener.proxy_protocol, envoy.listener.tls_inspector
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.filters.network: envoy.echo, envoy.ext_authz, envoy.filters.network.connection_limit, envoy.filters.network.direct_response, envoy.filters.network.dubbo_proxy, envoy.filters.network.echo, envoy.filters.network.ext_authz, envoy.filters.network.http_connection_manager, envoy.filters.network.local_ratelimit, envoy.filters.network.mongo_proxy, envoy.filters.network.ratelimit, envoy.filters.network.rbac, envoy.filters.network.redis_proxy, envoy.filters.network.set_filter_state, envoy.filters.network.sni_cluster, envoy.filters.network.sni_dynamic_forward_proxy, envoy.filters.network.tcp_proxy, envoy.filters.network.thrift_proxy, envoy.filters.network.wasm, envoy.filters.network.zookeeper_proxy, envoy.http_connection_manager, envoy.mongo_proxy, envoy.ratelimit, envoy.redis_proxy, envoy.tcp_proxy
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.config.validators: envoy.config.validators.minimum_clusters, envoy.config.validators.minimum_clusters_validator
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.tracers.opentelemetry.samplers: envoy.tracers.opentelemetry.samplers.always_on, envoy.tracers.opentelemetry.samplers.dynatrace
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.internal_redirect_predicates: envoy.internal_redirect_predicates.allow_listed_routes, envoy.internal_redirect_predicates.previous_routes, envoy.internal_redirect_predicates.safe_cross_scheme
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.route_config_update_requester: envoy.route_config_update_requester.default
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.compression.compressor: envoy.compression.brotli.compressor, envoy.compression.gzip.compressor, envoy.compression.zstd.compressor
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.rbac.matchers: envoy.rbac.matchers.upstream_ip_port
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.matching.network.custom_matchers: envoy.matching.custom_matchers.trie_matcher
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.upstreams: envoy.filters.connection_pools.tcp.generic
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.http.header_validators: envoy.http.header_validators.envoy_default
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.matching.http.input: envoy.matching.inputs.cel_data_input, envoy.matching.inputs.destination_ip, envoy.matching.inputs.destination_port, envoy.matching.inputs.direct_source_ip, envoy.matching.inputs.dns_san, envoy.matching.inputs.request_headers, envoy.matching.inputs.request_trailers, envoy.matching.inputs.response_headers, envoy.matching.inputs.response_trailers, envoy.matching.inputs.server_name, envoy.matching.inputs.source_ip, envoy.matching.inputs.source_port, envoy.matching.inputs.source_type, envoy.matching.inputs.status_code_class_input, envoy.matching.inputs.status_code_input, envoy.matching.inputs.subject, envoy.matching.inputs.uri_san, query_params
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.access_loggers: envoy.access_loggers.file, envoy.access_loggers.fluentd, envoy.access_loggers.http_grpc, envoy.access_loggers.open_telemetry, envoy.access_loggers.stderr, envoy.access_loggers.stdout, envoy.access_loggers.tcp_grpc, envoy.access_loggers.wasm, envoy.file_access_log, envoy.fluentd_access_log, envoy.http_grpc_access_log, envoy.open_telemetry_access_log, envoy.stderr_access_log, envoy.stdout_access_log, envoy.tcp_grpc_access_log, envoy.wasm_access_log
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.access_loggers.extension_filters: envoy.access_loggers.extension_filters.cel
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.matching.common_inputs: envoy.matching.common_inputs.environment_variable
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.matching.network.input: envoy.matching.inputs.application_protocol, envoy.matching.inputs.destination_ip, envoy.matching.inputs.destination_port, envoy.matching.inputs.direct_source_ip, envoy.matching.inputs.dns_san, envoy.matching.inputs.filter_state, envoy.matching.inputs.server_name, envoy.matching.inputs.source_ip, envoy.matching.inputs.source_port, envoy.matching.inputs.source_type, envoy.matching.inputs.subject, envoy.matching.inputs.transport_protocol, envoy.matching.inputs.uri_san
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.tracers: envoy.dynamic.ot, envoy.tracers.datadog, envoy.tracers.dynamic_ot, envoy.tracers.opencensus, envoy.tracers.opentelemetry, envoy.tracers.skywalking, envoy.tracers.xray, envoy.tracers.zipkin, envoy.zipkin
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.thrift_proxy.filters: envoy.filters.thrift.header_to_metadata, envoy.filters.thrift.payload_to_metadata, envoy.filters.thrift.rate_limit, envoy.filters.thrift.router
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.http.stateful_header_formatters: envoy.http.stateful_header_formatters.preserve_case, preserve_case
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.upstream_options: envoy.extensions.upstreams.http.v3.HttpProtocolOptions, envoy.extensions.upstreams.tcp.v3.TcpProtocolOptions, envoy.upstreams.http.http_protocol_options, envoy.upstreams.tcp.tcp_protocol_options
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.matching.action: envoy.matching.actions.format_string, filter-chain-name
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.http.injected_credentials: envoy.http.injected_credentials.generic
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.udp_packet_writer: envoy.udp_packet_writer.default, envoy.udp_packet_writer.gso
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.transport_sockets.upstream: envoy.transport_sockets.alts, envoy.transport_sockets.http_11_proxy, envoy.transport_sockets.internal_upstream, envoy.transport_sockets.quic, envoy.transport_sockets.raw_buffer, envoy.transport_sockets.starttls, envoy.transport_sockets.tap, envoy.transport_sockets.tcp_stats, envoy.transport_sockets.tls, envoy.transport_sockets.upstream_proxy_protocol, raw_buffer, starttls, tls
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.filters.http.upstream: envoy.buffer, envoy.ext_proc, envoy.filters.http.admission_control, envoy.filters.http.aws_lambda, envoy.filters.http.aws_request_signing, envoy.filters.http.buffer, envoy.filters.http.composite, envoy.filters.http.ext_proc, envoy.filters.http.header_mutation, envoy.filters.http.match_delegate, envoy.filters.http.upstream_codec
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.quic.server.crypto_stream: envoy.quic.crypto_stream.server.quiche
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.matching.http.custom_matchers: envoy.matching.custom_matchers.trie_matcher
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.http.cache: envoy.extensions.http.cache.file_system_http_cache, envoy.extensions.http.cache.simple
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.regex_engines: envoy.regex_engines.google_re2
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.string_matcher: envoy.string_matcher.lua
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.dubbo_proxy.protocols: dubbo
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.http.original_ip_detection: envoy.http.original_ip_detection.custom_header, envoy.http.original_ip_detection.xff
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.transport_sockets.downstream: envoy.transport_sockets.alts, envoy.transport_sockets.quic, envoy.transport_sockets.raw_buffer, envoy.transport_sockets.starttls, envoy.transport_sockets.tap, envoy.transport_sockets.tcp_stats, envoy.transport_sockets.tls, raw_buffer, starttls, tls
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.quic.server_preferred_address: quic.server_preferred_address.fixed
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.quic.connection_id_generator: envoy.quic.deterministic_connection_id_generator
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] filter_state.object: envoy.filters.listener.original_dst.local_ip, envoy.filters.listener.original_dst.remote_ip, envoy.network.application_protocols, envoy.network.transport_socket.original_dst_address, envoy.network.upstream_server_name, envoy.network.upstream_subject_alt_names, envoy.string, envoy.tcp_proxy.cluster, envoy.tcp_proxy.disable_tunneling, envoy.tcp_proxy.per_connection_idle_timeout_ms, envoy.upstream.dynamic_host, envoy.upstream.dynamic_port
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.network.dns_resolver: envoy.network.dns_resolver.cares, envoy.network.dns_resolver.getaddrinfo
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.upstream.local_address_selector: envoy.upstream.local_address_selector.default_local_address_selector
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.matching.input_matchers: envoy.matching.matchers.cel_matcher, envoy.matching.matchers.consistent_hashing, envoy.matching.matchers.ip, envoy.matching.matchers.runtime_fraction
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.retry_priorities: envoy.retry_priorities.previous_priorities
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] network.connection.client: default, envoy_internal
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.thrift_proxy.transports: auto, framed, header, unframed
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.formatter: envoy.formatter.cel, envoy.formatter.metadata, envoy.formatter.req_without_query
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.retry_host_predicates: envoy.retry_host_predicates.omit_canary_hosts, envoy.retry_host_predicates.omit_host_metadata, envoy.retry_host_predicates.previous_hosts
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.common.key_value: envoy.key_value.file_based
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.dubbo_proxy.filters: envoy.filters.dubbo.router
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.tls.cert_validator: envoy.tls.cert_validator.default, envoy.tls.cert_validator.spiffe
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.router.cluster_specifier_plugin: envoy.router.cluster_specifier_plugin.lua
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.compression.decompressor: envoy.compression.brotli.decompressor, envoy.compression.gzip.decompressor, envoy.compression.zstd.decompressor
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.request_id: envoy.request_id.uuid
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.guarddog_actions: envoy.watchdog.abort_action, envoy.watchdog.profile_action
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.listener_manager_impl: envoy.listener_manager_impl.default, envoy.listener_manager_impl.validation
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.resolvers: envoy.ip
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.rate_limit_descriptors: envoy.rate_limit_descriptors.expr
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.wasm.runtime: envoy.wasm.runtime.null, envoy.wasm.runtime.v8
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.clusters: envoy.cluster.eds, envoy.cluster.logical_dns, envoy.cluster.original_dst, envoy.cluster.static, envoy.cluster.strict_dns, envoy.clusters.aggregate, envoy.clusters.dynamic_forward_proxy, envoy.clusters.redis
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.load_balancing_policies: envoy.load_balancing_policies.cluster_provided, envoy.load_balancing_policies.least_request, envoy.load_balancing_policies.maglev, envoy.load_balancing_policies.random, envoy.load_balancing_policies.ring_hash, envoy.load_balancing_policies.round_robin, envoy.load_balancing_policies.subset
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.geoip_providers: envoy.geoip_providers.maxmind
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.health_check.event_sinks: envoy.health_check.event_sink.file
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.connection_handler: envoy.connection_handler.default
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.filters.udp.session: envoy.filters.udp.session.dynamic_forward_proxy, envoy.filters.udp.session.http_capsule
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.http.custom_response: envoy.extensions.http.custom_response.local_response_policy, envoy.extensions.http.custom_response.redirect_policy
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.dubbo_proxy.serializers: dubbo.hessian2
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.filters.http: envoy.bandwidth_limit, envoy.buffer, envoy.cors, envoy.csrf, envoy.ext_authz, envoy.ext_proc, envoy.fault, envoy.filters.http.adaptive_concurrency, envoy.filters.http.admission_control, envoy.filters.http.alternate_protocols_cache, envoy.filters.http.aws_lambda, envoy.filters.http.aws_request_signing, envoy.filters.http.bandwidth_limit, envoy.filters.http.basic_auth, envoy.filters.http.buffer, envoy.filters.http.cache, envoy.filters.http.cdn_loop, envoy.filters.http.composite, envoy.filters.http.compressor, envoy.filters.http.connect_grpc_bridge, envoy.filters.http.cors, envoy.filters.http.credential_injector, envoy.filters.http.csrf, envoy.filters.http.custom_response, envoy.filters.http.decompressor, envoy.filters.http.dynamic_forward_proxy, envoy.filters.http.ext_authz, envoy.filters.http.ext_proc, envoy.filters.http.fault, envoy.filters.http.file_system_buffer, envoy.filters.http.gcp_authn, envoy.filters.http.geoip, envoy.filters.http.grpc_field_extraction, envoy.filters.http.grpc_http1_bridge, envoy.filters.http.grpc_http1_reverse_bridge, envoy.filters.http.grpc_json_transcoder, envoy.filters.http.grpc_stats, envoy.filters.http.grpc_web, envoy.filters.http.header_mutation, envoy.filters.http.header_to_metadata, envoy.filters.http.health_check, envoy.filters.http.ip_tagging, envoy.filters.http.json_to_metadata, envoy.filters.http.jwt_authn, envoy.filters.http.local_ratelimit, envoy.filters.http.lua, envoy.filters.http.match_delegate, envoy.filters.http.oauth2, envoy.filters.http.on_demand, envoy.filters.http.original_src, envoy.filters.http.rate_limit_quota, envoy.filters.http.ratelimit, envoy.filters.http.rbac, envoy.filters.http.router, envoy.filters.http.set_filter_state, envoy.filters.http.set_metadata, envoy.filters.http.stateful_session, envoy.filters.http.tap, envoy.filters.http.wasm, envoy.geoip, envoy.grpc_http1_bridge, envoy.grpc_json_transcoder, envoy.grpc_web, envoy.health_check, envoy.ip_tagging, envoy.local_rate_limit, envoy.lua, envoy.rate_limit, envoy.router
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.config_subscription: envoy.config_subscription.ads, envoy.config_subscription.ads_collection, envoy.config_subscription.aggregated_grpc_collection, envoy.config_subscription.delta_grpc, envoy.config_subscription.delta_grpc_collection, envoy.config_subscription.filesystem, envoy.config_subscription.filesystem_collection, envoy.config_subscription.grpc, envoy.config_subscription.rest
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.route.early_data_policy: envoy.route.early_data_policy.default
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.path.rewrite: envoy.path.rewrite.uri_template.uri_template_rewriter
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.thrift_proxy.protocols: auto, binary, binary/non-strict, compact, twitter
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.tracers.opentelemetry.resource_detectors: envoy.tracers.opentelemetry.resource_detectors.dynatrace, envoy.tracers.opentelemetry.resource_detectors.environment
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.http.early_header_mutation: envoy.http.early_header_mutation.header_mutation
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.path.match: envoy.path.match.uri_template.uri_template_matcher
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.http.stateful_session: envoy.http.stateful_session.cookie, envoy.http.stateful_session.header
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] quic.http_server_connection: quic.http_server_connection.default
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.config_mux: envoy.config_mux.delta_grpc_mux_factory, envoy.config_mux.grpc_mux_factory, envoy.config_mux.new_grpc_mux_factory, envoy.config_mux.sotw_grpc_mux_factory
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.health_checkers: envoy.health_checkers.grpc, envoy.health_checkers.http, envoy.health_checkers.redis, envoy.health_checkers.tcp, envoy.health_checkers.thrift
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.filters.udp_listener: envoy.filters.udp.dns_filter, envoy.filters.udp_listener.udp_proxy
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.resource_monitors: envoy.resource_monitors.fixed_heap, envoy.resource_monitors.injected_resource
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.grpc_credentials: envoy.grpc_credentials.aws_iam, envoy.grpc_credentials.default, envoy.grpc_credentials.file_based_metadata
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.stats_sinks: envoy.dog_statsd, envoy.graphite_statsd, envoy.metrics_service, envoy.open_telemetry_stat_sink, envoy.stat_sinks.dog_statsd, envoy.stat_sinks.graphite_statsd, envoy.stat_sinks.hystrix, envoy.stat_sinks.metrics_service, envoy.stat_sinks.open_telemetry, envoy.stat_sinks.statsd, envoy.stat_sinks.wasm, envoy.statsd
-[2026-04-20 10:37:30.897][1][info][main] [source/server/server.cc:432] envoy.quic.proof_source: envoy.quic.proof_source.filter_chain
-[2026-04-20 10:37:30.900][1][info][main] [source/server/server.cc:486] HTTP header map info:
-[2026-04-20 10:37:30.902][1][info][main] [source/server/server.cc:489] request header map: 664 bytes: :authority,:method,:path,:protocol,:scheme,accept,accept-encoding,access-control-request-headers,access-control-request-method,access-control-request-private-network,authentication,authorization,cache-control,cdn-loop,connection,content-encoding,content-length,content-type,expect,grpc-accept-encoding,grpc-timeout,if-match,if-modified-since,if-none-match,if-range,if-unmodified-since,keep-alive,origin,pragma,proxy-connection,proxy-status,referer,te,transfer-encoding,upgrade,user-agent,via,x-client-trace-id,x-envoy-attempt-count,x-envoy-decorator-operation,x-envoy-downstream-service-cluster,x-envoy-downstream-service-node,x-envoy-expected-rq-timeout-ms,x-envoy-external-address,x-envoy-force-trace,x-envoy-hedge-on-per-try-timeout,x-envoy-internal,x-envoy-ip-tags,x-envoy-is-timeout-retry,x-envoy-max-retries,x-envoy-original-path,x-envoy-original-url,x-envoy-retriable-header-names,x-envoy-retriable-status-codes,x-envoy-retry-grpc-on,x-envoy-retry-on,x-envoy-upstream-alt-stat-name,x-envoy-upstream-rq-per-try-timeout-ms,x-envoy-upstream-rq-timeout-alt-response,x-envoy-upstream-rq-timeout-ms,x-envoy-upstream-stream-duration-ms,x-forwarded-client-cert,x-forwarded-for,x-forwarded-host,x-forwarded-port,x-forwarded-proto,x-ot-span-context,x-request-id
-[2026-04-20 10:37:30.902][1][info][main] [source/server/server.cc:489] request trailer map: 120 bytes:
-[2026-04-20 10:37:30.902][1][info][main] [source/server/server.cc:489] response header map: 432 bytes: :status,access-control-allow-credentials,access-control-allow-headers,access-control-allow-methods,access-control-allow-origin,access-control-allow-private-network,access-control-expose-headers,access-control-max-age,age,cache-control,connection,content-encoding,content-length,content-type,date,etag,expires,grpc-message,grpc-status,keep-alive,last-modified,location,proxy-connection,proxy-status,server,transfer-encoding,upgrade,vary,via,x-envoy-attempt-count,x-envoy-decorator-operation,x-envoy-degraded,x-envoy-immediate-health-check-fail,x-envoy-ratelimited,x-envoy-upstream-canary,x-envoy-upstream-healthchecked-cluster,x-envoy-upstream-service-time,x-request-id
-[2026-04-20 10:37:30.902][1][info][main] [source/server/server.cc:489] response trailer map: 144 bytes: grpc-message,grpc-status
-[2026-04-20 10:37:30.963][1][info][main] [source/server/server.cc:861] runtime: layers:
- - name: static_layer
- static_layer:
- envoy:
- resource_limits:
- listener:
- main:
- connection_limit: 1048576
-[2026-04-20 10:37:30.963][1][info][admin] [source/server/admin/admin.cc:66] admin address: 127.0.0.1:9901
-[2026-04-20 10:37:30.964][1][info][config] [source/server/configuration_impl.cc:168] loading tracing configuration
-[2026-04-20 10:37:30.964][1][info][config] [source/server/configuration_impl.cc:124] loading 0 static secret(s)
-[2026-04-20 10:37:30.964][1][info][config] [source/server/configuration_impl.cc:130] loading 0 cluster(s)
-[2026-04-20 10:37:30.964][1][info][config] [source/server/configuration_impl.cc:138] loading 1 listener(s)
-[2026-04-20 10:37:30.964][1][warning][misc] [source/extensions/filters/network/http_connection_manager/config.cc:84] internal_address_config is not configured. The existing default behaviour will trust RFC1918 IP addresses, but this will be changed in next release. Please explictily config internal address config as the migration step.
-[2026-04-20 10:37:30.966][1][info][lua] [source/extensions/filters/http/lua/lua_filter.cc:228] envoy_on_response() function not found. Lua filter will not hook responses.
-[2026-04-20 10:37:30.966][1][info][config] [source/server/configuration_impl.cc:154] loading stats configuration
-[2026-04-20 10:37:30.966][1][info][runtime] [source/common/runtime/runtime_impl.cc:614] RTDS has finished initialization
-[2026-04-20 10:37:30.966][1][info][upstream] [source/common/upstream/cluster_manager_impl.cc:240] cm init: all clusters initialized
-[2026-04-20 10:37:30.967][1][warning][main] [source/server/server.cc:928] There is no configured limit to the number of allowed active downstream connections. Configure a limit in `envoy.resource_monitors.downstream_connections` resource monitor.
-[2026-04-20 10:37:30.967][1][info][main] [source/server/server.cc:950] all clusters initialized. initializing init manager
-[2026-04-20 10:37:30.967][1][info][config] [source/common/listener_manager/listener_manager_impl.cc:930] all dependencies initialized. starting workers
-[2026-04-20 10:37:30.974][1][info][main] [source/server/server.cc:969] starting main dispatch loop
diff --git a/site/static/logs/limited-conn/512/h2o.log b/site/static/logs/limited-conn/512/h2o.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/limited-conn/512/nginx.log b/site/static/logs/limited-conn/512/nginx.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/limited-conn/512/pingora.log b/site/static/logs/limited-conn/512/pingora.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/limited-conn/512/traefik.log b/site/static/logs/limited-conn/512/traefik.log
deleted file mode 100644
index 5378171a6..000000000
--- a/site/static/logs/limited-conn/512/traefik.log
+++ /dev/null
@@ -1,4 +0,0 @@
-[90m2026-04-19T22:27:08Z[0m [1m[31mERR[0m[0m Error while Peeking first byte [36merror=[0m[31m"read tcp 127.0.0.1:8080->127.0.0.1:60644: read: connection reset by peer"[0m
-[90m2026-04-19T22:27:08Z[0m [1m[31mERR[0m[0m Error while Peeking first byte [36merror=[0m[31m"read tcp 127.0.0.1:8080->127.0.0.1:60658: read: connection reset by peer"[0m
-[90m2026-04-19T22:27:16Z[0m [1m[31mERR[0m[0m Error while Peeking first byte [36merror=[0m[31m"read tcp 127.0.0.1:8080->127.0.0.1:55058: read: connection reset by peer"[0m
-[90m2026-04-19T22:27:16Z[0m [1m[31mERR[0m[0m Error while Peeking first byte [36merror=[0m[31m"read tcp 127.0.0.1:8080->127.0.0.1:55056: read: connection reset by peer"[0m
diff --git a/site/static/logs/pipelined/4096/caddy.log b/site/static/logs/pipelined/4096/caddy.log
deleted file mode 100644
index 882e8bdbc..000000000
--- a/site/static/logs/pipelined/4096/caddy.log
+++ /dev/null
@@ -1,3 +0,0 @@
-{"level":"info","ts":1776636222.7219193,"msg":"using config from file","file":"/etc/caddy/Caddyfile"}
-{"level":"info","ts":1776636222.7228632,"msg":"adapted config to JSON","adapter":"caddyfile"}
-{"level":"info","ts":1776636222.7229996,"msg":"redirected default logger","from":"stderr","to":"discard"}
diff --git a/site/static/logs/pipelined/4096/envoy.log b/site/static/logs/pipelined/4096/envoy.log
deleted file mode 100644
index bf30399f8..000000000
--- a/site/static/logs/pipelined/4096/envoy.log
+++ /dev/null
@@ -1,110 +0,0 @@
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:428] initializing epoch 0 (base id=0, hot restart version=11.104)
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:430] statically linked extensions:
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.http.stateful_header_formatters: envoy.http.stateful_header_formatters.preserve_case, preserve_case
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.matching.network.input: envoy.matching.inputs.application_protocol, envoy.matching.inputs.destination_ip, envoy.matching.inputs.destination_port, envoy.matching.inputs.direct_source_ip, envoy.matching.inputs.dns_san, envoy.matching.inputs.filter_state, envoy.matching.inputs.server_name, envoy.matching.inputs.source_ip, envoy.matching.inputs.source_port, envoy.matching.inputs.source_type, envoy.matching.inputs.subject, envoy.matching.inputs.transport_protocol, envoy.matching.inputs.uri_san
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.quic.connection_id_generator: envoy.quic.deterministic_connection_id_generator
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.retry_priorities: envoy.retry_priorities.previous_priorities
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.common.key_value: envoy.key_value.file_based
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.upstreams: envoy.filters.connection_pools.tcp.generic
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.http.injected_credentials: envoy.http.injected_credentials.generic
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.matching.input_matchers: envoy.matching.matchers.cel_matcher, envoy.matching.matchers.consistent_hashing, envoy.matching.matchers.ip, envoy.matching.matchers.runtime_fraction
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.health_check.event_sinks: envoy.health_check.event_sink.file
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.formatter: envoy.formatter.cel, envoy.formatter.metadata, envoy.formatter.req_without_query
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] network.connection.client: default, envoy_internal
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.stats_sinks: envoy.dog_statsd, envoy.graphite_statsd, envoy.metrics_service, envoy.open_telemetry_stat_sink, envoy.stat_sinks.dog_statsd, envoy.stat_sinks.graphite_statsd, envoy.stat_sinks.hystrix, envoy.stat_sinks.metrics_service, envoy.stat_sinks.open_telemetry, envoy.stat_sinks.statsd, envoy.stat_sinks.wasm, envoy.statsd
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.http.header_validators: envoy.http.header_validators.envoy_default
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.dubbo_proxy.protocols: dubbo
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.transport_sockets.downstream: envoy.transport_sockets.alts, envoy.transport_sockets.quic, envoy.transport_sockets.raw_buffer, envoy.transport_sockets.starttls, envoy.transport_sockets.tap, envoy.transport_sockets.tcp_stats, envoy.transport_sockets.tls, raw_buffer, starttls, tls
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.path.rewrite: envoy.path.rewrite.uri_template.uri_template_rewriter
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.matching.http.custom_matchers: envoy.matching.custom_matchers.trie_matcher
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.request_id: envoy.request_id.uuid
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.listener_manager_impl: envoy.listener_manager_impl.default, envoy.listener_manager_impl.validation
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.load_balancing_policies: envoy.load_balancing_policies.cluster_provided, envoy.load_balancing_policies.least_request, envoy.load_balancing_policies.maglev, envoy.load_balancing_policies.random, envoy.load_balancing_policies.ring_hash, envoy.load_balancing_policies.round_robin, envoy.load_balancing_policies.subset
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.quic.server.crypto_stream: envoy.quic.crypto_stream.server.quiche
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.rbac.matchers: envoy.rbac.matchers.upstream_ip_port
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.upstream.local_address_selector: envoy.upstream.local_address_selector.default_local_address_selector
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.filters.udp_listener: envoy.filters.udp.dns_filter, envoy.filters.udp_listener.udp_proxy
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.wasm.runtime: envoy.wasm.runtime.null, envoy.wasm.runtime.v8
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.access_loggers.extension_filters: envoy.access_loggers.extension_filters.cel
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.http.original_ip_detection: envoy.http.original_ip_detection.custom_header, envoy.http.original_ip_detection.xff
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.path.match: envoy.path.match.uri_template.uri_template_matcher
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.filters.udp.session: envoy.filters.udp.session.dynamic_forward_proxy, envoy.filters.udp.session.http_capsule
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.dubbo_proxy.filters: envoy.filters.dubbo.router
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.grpc_credentials: envoy.grpc_credentials.aws_iam, envoy.grpc_credentials.default, envoy.grpc_credentials.file_based_metadata
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.string_matcher: envoy.string_matcher.lua
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.thrift_proxy.transports: auto, framed, header, unframed
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.guarddog_actions: envoy.watchdog.abort_action, envoy.watchdog.profile_action
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.geoip_providers: envoy.geoip_providers.maxmind
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.quic.proof_source: envoy.quic.proof_source.filter_chain
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.bootstrap: envoy.bootstrap.internal_listener, envoy.bootstrap.wasm, envoy.extensions.network.socket_interface.default_socket_interface
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.resolvers: envoy.ip
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] filter_state.object: envoy.filters.listener.original_dst.local_ip, envoy.filters.listener.original_dst.remote_ip, envoy.network.application_protocols, envoy.network.transport_socket.original_dst_address, envoy.network.upstream_server_name, envoy.network.upstream_subject_alt_names, envoy.string, envoy.tcp_proxy.cluster, envoy.tcp_proxy.disable_tunneling, envoy.tcp_proxy.per_connection_idle_timeout_ms, envoy.upstream.dynamic_host, envoy.upstream.dynamic_port
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.tracers.opentelemetry.resource_detectors: envoy.tracers.opentelemetry.resource_detectors.dynatrace, envoy.tracers.opentelemetry.resource_detectors.environment
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.filters.http.upstream: envoy.buffer, envoy.ext_proc, envoy.filters.http.admission_control, envoy.filters.http.aws_lambda, envoy.filters.http.aws_request_signing, envoy.filters.http.buffer, envoy.filters.http.composite, envoy.filters.http.ext_proc, envoy.filters.http.header_mutation, envoy.filters.http.match_delegate, envoy.filters.http.upstream_codec
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.thrift_proxy.filters: envoy.filters.thrift.header_to_metadata, envoy.filters.thrift.payload_to_metadata, envoy.filters.thrift.rate_limit, envoy.filters.thrift.router
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.config.validators: envoy.config.validators.minimum_clusters, envoy.config.validators.minimum_clusters_validator
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.http.cache: envoy.extensions.http.cache.file_system_http_cache, envoy.extensions.http.cache.simple
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.tracers.opentelemetry.samplers: envoy.tracers.opentelemetry.samplers.always_on, envoy.tracers.opentelemetry.samplers.dynatrace
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.matching.common_inputs: envoy.matching.common_inputs.environment_variable
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.health_checkers: envoy.health_checkers.grpc, envoy.health_checkers.http, envoy.health_checkers.redis, envoy.health_checkers.tcp, envoy.health_checkers.thrift
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.rate_limit_descriptors: envoy.rate_limit_descriptors.expr
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.network.dns_resolver: envoy.network.dns_resolver.cares, envoy.network.dns_resolver.getaddrinfo
-[2026-04-20 10:40:39.667][1][info][main] [source/server/server.cc:432] envoy.http.early_header_mutation: envoy.http.early_header_mutation.header_mutation
-[2026-04-20 10:40:39.668][1][info][main] [source/server/server.cc:432] envoy.filters.network: envoy.echo, envoy.ext_authz, envoy.filters.network.connection_limit, envoy.filters.network.direct_response, envoy.filters.network.dubbo_proxy, envoy.filters.network.echo, envoy.filters.network.ext_authz, envoy.filters.network.http_connection_manager, envoy.filters.network.local_ratelimit, envoy.filters.network.mongo_proxy, envoy.filters.network.ratelimit, envoy.filters.network.rbac, envoy.filters.network.redis_proxy, envoy.filters.network.set_filter_state, envoy.filters.network.sni_cluster, envoy.filters.network.sni_dynamic_forward_proxy, envoy.filters.network.tcp_proxy, envoy.filters.network.thrift_proxy, envoy.filters.network.wasm, envoy.filters.network.zookeeper_proxy, envoy.http_connection_manager, envoy.mongo_proxy, envoy.ratelimit, envoy.redis_proxy, envoy.tcp_proxy
-[2026-04-20 10:40:39.668][1][info][main] [source/server/server.cc:432] envoy.compression.decompressor: envoy.compression.brotli.decompressor, envoy.compression.gzip.decompressor, envoy.compression.zstd.decompressor
-[2026-04-20 10:40:39.668][1][info][main] [source/server/server.cc:432] envoy.upstream_options: envoy.extensions.upstreams.http.v3.HttpProtocolOptions, envoy.extensions.upstreams.tcp.v3.TcpProtocolOptions, envoy.upstreams.http.http_protocol_options, envoy.upstreams.tcp.tcp_protocol_options
-[2026-04-20 10:40:39.668][1][info][main] [source/server/server.cc:432] envoy.internal_redirect_predicates: envoy.internal_redirect_predicates.allow_listed_routes, envoy.internal_redirect_predicates.previous_routes, envoy.internal_redirect_predicates.safe_cross_scheme
-[2026-04-20 10:40:39.668][1][info][main] [source/server/server.cc:432] envoy.regex_engines: envoy.regex_engines.google_re2
-[2026-04-20 10:40:39.668][1][info][main] [source/server/server.cc:432] envoy.retry_host_predicates: envoy.retry_host_predicates.omit_canary_hosts, envoy.retry_host_predicates.omit_host_metadata, envoy.retry_host_predicates.previous_hosts
-[2026-04-20 10:40:39.668][1][info][main] [source/server/server.cc:432] envoy.resource_monitors: envoy.resource_monitors.fixed_heap, envoy.resource_monitors.injected_resource
-[2026-04-20 10:40:39.668][1][info][main] [source/server/server.cc:432] envoy.clusters: envoy.cluster.eds, envoy.cluster.logical_dns, envoy.cluster.original_dst, envoy.cluster.static, envoy.cluster.strict_dns, envoy.clusters.aggregate, envoy.clusters.dynamic_forward_proxy, envoy.clusters.redis
-[2026-04-20 10:40:39.668][1][info][main] [source/server/server.cc:432] envoy.thrift_proxy.protocols: auto, binary, binary/non-strict, compact, twitter
-[2026-04-20 10:40:39.668][1][info][main] [source/server/server.cc:432] quic.http_server_connection: quic.http_server_connection.default
-[2026-04-20 10:40:39.668][1][info][main] [source/server/server.cc:432] envoy.filters.listener: envoy.filters.listener.http_inspector, envoy.filters.listener.local_ratelimit, envoy.filters.listener.original_dst, envoy.filters.listener.original_src, envoy.filters.listener.proxy_protocol, envoy.filters.listener.tls_inspector, envoy.listener.http_inspector, envoy.listener.original_dst, envoy.listener.original_src, envoy.listener.proxy_protocol, envoy.listener.tls_inspector
-[2026-04-20 10:40:39.668][1][info][main] [source/server/server.cc:432] envoy.router.cluster_specifier_plugin: envoy.router.cluster_specifier_plugin.lua
-[2026-04-20 10:40:39.668][1][info][main] [source/server/server.cc:432] envoy.route.early_data_policy: envoy.route.early_data_policy.default
-[2026-04-20 10:40:39.668][1][info][main] [source/server/server.cc:432] envoy.dubbo_proxy.serializers: dubbo.hessian2
-[2026-04-20 10:40:39.668][1][info][main] [source/server/server.cc:432] envoy.matching.http.input: envoy.matching.inputs.cel_data_input, envoy.matching.inputs.destination_ip, envoy.matching.inputs.destination_port, envoy.matching.inputs.direct_source_ip, envoy.matching.inputs.dns_san, envoy.matching.inputs.request_headers, envoy.matching.inputs.request_trailers, envoy.matching.inputs.response_headers, envoy.matching.inputs.response_trailers, envoy.matching.inputs.server_name, envoy.matching.inputs.source_ip, envoy.matching.inputs.source_port, envoy.matching.inputs.source_type, envoy.matching.inputs.status_code_class_input, envoy.matching.inputs.status_code_input, envoy.matching.inputs.subject, envoy.matching.inputs.uri_san, query_params
-[2026-04-20 10:40:39.668][1][info][main] [source/server/server.cc:432] envoy.access_loggers: envoy.access_loggers.file, envoy.access_loggers.fluentd, envoy.access_loggers.http_grpc, envoy.access_loggers.open_telemetry, envoy.access_loggers.stderr, envoy.access_loggers.stdout, envoy.access_loggers.tcp_grpc, envoy.access_loggers.wasm, envoy.file_access_log, envoy.fluentd_access_log, envoy.http_grpc_access_log, envoy.open_telemetry_access_log, envoy.stderr_access_log, envoy.stdout_access_log, envoy.tcp_grpc_access_log, envoy.wasm_access_log
-[2026-04-20 10:40:39.668][1][info][main] [source/server/server.cc:432] envoy.transport_sockets.upstream: envoy.transport_sockets.alts, envoy.transport_sockets.http_11_proxy, envoy.transport_sockets.internal_upstream, envoy.transport_sockets.quic, envoy.transport_sockets.raw_buffer, envoy.transport_sockets.starttls, envoy.transport_sockets.tap, envoy.transport_sockets.tcp_stats, envoy.transport_sockets.tls, envoy.transport_sockets.upstream_proxy_protocol, raw_buffer, starttls, tls
-[2026-04-20 10:40:39.668][1][info][main] [source/server/server.cc:432] envoy.matching.network.custom_matchers: envoy.matching.custom_matchers.trie_matcher
-[2026-04-20 10:40:39.668][1][info][main] [source/server/server.cc:432] envoy.compression.compressor: envoy.compression.brotli.compressor, envoy.compression.gzip.compressor, envoy.compression.zstd.compressor
-[2026-04-20 10:40:39.668][1][info][main] [source/server/server.cc:432] envoy.tracers: envoy.dynamic.ot, envoy.tracers.datadog, envoy.tracers.dynamic_ot, envoy.tracers.opencensus, envoy.tracers.opentelemetry, envoy.tracers.skywalking, envoy.tracers.xray, envoy.tracers.zipkin, envoy.zipkin
-[2026-04-20 10:40:39.668][1][info][main] [source/server/server.cc:432] envoy.http.stateful_session: envoy.http.stateful_session.cookie, envoy.http.stateful_session.header
-[2026-04-20 10:40:39.668][1][info][main] [source/server/server.cc:432] envoy.tls.cert_validator: envoy.tls.cert_validator.default, envoy.tls.cert_validator.spiffe
-[2026-04-20 10:40:39.668][1][info][main] [source/server/server.cc:432] envoy.matching.action: envoy.matching.actions.format_string, filter-chain-name
-[2026-04-20 10:40:39.668][1][info][main] [source/server/server.cc:432] envoy.config_subscription: envoy.config_subscription.ads, envoy.config_subscription.ads_collection, envoy.config_subscription.aggregated_grpc_collection, envoy.config_subscription.delta_grpc, envoy.config_subscription.delta_grpc_collection, envoy.config_subscription.filesystem, envoy.config_subscription.filesystem_collection, envoy.config_subscription.grpc, envoy.config_subscription.rest
-[2026-04-20 10:40:39.668][1][info][main] [source/server/server.cc:432] envoy.config_mux: envoy.config_mux.delta_grpc_mux_factory, envoy.config_mux.grpc_mux_factory, envoy.config_mux.new_grpc_mux_factory, envoy.config_mux.sotw_grpc_mux_factory
-[2026-04-20 10:40:39.668][1][info][main] [source/server/server.cc:432] envoy.udp_packet_writer: envoy.udp_packet_writer.default, envoy.udp_packet_writer.gso
-[2026-04-20 10:40:39.668][1][info][main] [source/server/server.cc:432] envoy.route_config_update_requester: envoy.route_config_update_requester.default
-[2026-04-20 10:40:39.668][1][info][main] [source/server/server.cc:432] envoy.filters.http: envoy.bandwidth_limit, envoy.buffer, envoy.cors, envoy.csrf, envoy.ext_authz, envoy.ext_proc, envoy.fault, envoy.filters.http.adaptive_concurrency, envoy.filters.http.admission_control, envoy.filters.http.alternate_protocols_cache, envoy.filters.http.aws_lambda, envoy.filters.http.aws_request_signing, envoy.filters.http.bandwidth_limit, envoy.filters.http.basic_auth, envoy.filters.http.buffer, envoy.filters.http.cache, envoy.filters.http.cdn_loop, envoy.filters.http.composite, envoy.filters.http.compressor, envoy.filters.http.connect_grpc_bridge, envoy.filters.http.cors, envoy.filters.http.credential_injector, envoy.filters.http.csrf, envoy.filters.http.custom_response, envoy.filters.http.decompressor, envoy.filters.http.dynamic_forward_proxy, envoy.filters.http.ext_authz, envoy.filters.http.ext_proc, envoy.filters.http.fault, envoy.filters.http.file_system_buffer, envoy.filters.http.gcp_authn, envoy.filters.http.geoip, envoy.filters.http.grpc_field_extraction, envoy.filters.http.grpc_http1_bridge, envoy.filters.http.grpc_http1_reverse_bridge, envoy.filters.http.grpc_json_transcoder, envoy.filters.http.grpc_stats, envoy.filters.http.grpc_web, envoy.filters.http.header_mutation, envoy.filters.http.header_to_metadata, envoy.filters.http.health_check, envoy.filters.http.ip_tagging, envoy.filters.http.json_to_metadata, envoy.filters.http.jwt_authn, envoy.filters.http.local_ratelimit, envoy.filters.http.lua, envoy.filters.http.match_delegate, envoy.filters.http.oauth2, envoy.filters.http.on_demand, envoy.filters.http.original_src, envoy.filters.http.rate_limit_quota, envoy.filters.http.ratelimit, envoy.filters.http.rbac, envoy.filters.http.router, envoy.filters.http.set_filter_state, envoy.filters.http.set_metadata, envoy.filters.http.stateful_session, envoy.filters.http.tap, envoy.filters.http.wasm, envoy.geoip, envoy.grpc_http1_bridge, envoy.grpc_json_transcoder, envoy.grpc_web, envoy.health_check, envoy.ip_tagging, envoy.local_rate_limit, envoy.lua, envoy.rate_limit, envoy.router
-[2026-04-20 10:40:39.668][1][info][main] [source/server/server.cc:432] envoy.quic.server_preferred_address: quic.server_preferred_address.fixed
-[2026-04-20 10:40:39.668][1][info][main] [source/server/server.cc:432] envoy.connection_handler: envoy.connection_handler.default
-[2026-04-20 10:40:39.668][1][info][main] [source/server/server.cc:432] envoy.http.custom_response: envoy.extensions.http.custom_response.local_response_policy, envoy.extensions.http.custom_response.redirect_policy
-[2026-04-20 10:40:39.671][1][info][main] [source/server/server.cc:486] HTTP header map info:
-[2026-04-20 10:40:39.673][1][info][main] [source/server/server.cc:489] request header map: 664 bytes: :authority,:method,:path,:protocol,:scheme,accept,accept-encoding,access-control-request-headers,access-control-request-method,access-control-request-private-network,authentication,authorization,cache-control,cdn-loop,connection,content-encoding,content-length,content-type,expect,grpc-accept-encoding,grpc-timeout,if-match,if-modified-since,if-none-match,if-range,if-unmodified-since,keep-alive,origin,pragma,proxy-connection,proxy-status,referer,te,transfer-encoding,upgrade,user-agent,via,x-client-trace-id,x-envoy-attempt-count,x-envoy-decorator-operation,x-envoy-downstream-service-cluster,x-envoy-downstream-service-node,x-envoy-expected-rq-timeout-ms,x-envoy-external-address,x-envoy-force-trace,x-envoy-hedge-on-per-try-timeout,x-envoy-internal,x-envoy-ip-tags,x-envoy-is-timeout-retry,x-envoy-max-retries,x-envoy-original-path,x-envoy-original-url,x-envoy-retriable-header-names,x-envoy-retriable-status-codes,x-envoy-retry-grpc-on,x-envoy-retry-on,x-envoy-upstream-alt-stat-name,x-envoy-upstream-rq-per-try-timeout-ms,x-envoy-upstream-rq-timeout-alt-response,x-envoy-upstream-rq-timeout-ms,x-envoy-upstream-stream-duration-ms,x-forwarded-client-cert,x-forwarded-for,x-forwarded-host,x-forwarded-port,x-forwarded-proto,x-ot-span-context,x-request-id
-[2026-04-20 10:40:39.673][1][info][main] [source/server/server.cc:489] request trailer map: 120 bytes:
-[2026-04-20 10:40:39.673][1][info][main] [source/server/server.cc:489] response header map: 432 bytes: :status,access-control-allow-credentials,access-control-allow-headers,access-control-allow-methods,access-control-allow-origin,access-control-allow-private-network,access-control-expose-headers,access-control-max-age,age,cache-control,connection,content-encoding,content-length,content-type,date,etag,expires,grpc-message,grpc-status,keep-alive,last-modified,location,proxy-connection,proxy-status,server,transfer-encoding,upgrade,vary,via,x-envoy-attempt-count,x-envoy-decorator-operation,x-envoy-degraded,x-envoy-immediate-health-check-fail,x-envoy-ratelimited,x-envoy-upstream-canary,x-envoy-upstream-healthchecked-cluster,x-envoy-upstream-service-time,x-request-id
-[2026-04-20 10:40:39.673][1][info][main] [source/server/server.cc:489] response trailer map: 144 bytes: grpc-message,grpc-status
-[2026-04-20 10:40:39.728][1][info][main] [source/server/server.cc:861] runtime: layers:
- - name: static_layer
- static_layer:
- envoy:
- resource_limits:
- listener:
- main:
- connection_limit: 1048576
-[2026-04-20 10:40:39.729][1][info][admin] [source/server/admin/admin.cc:66] admin address: 127.0.0.1:9901
-[2026-04-20 10:40:39.729][1][info][config] [source/server/configuration_impl.cc:168] loading tracing configuration
-[2026-04-20 10:40:39.729][1][info][config] [source/server/configuration_impl.cc:124] loading 0 static secret(s)
-[2026-04-20 10:40:39.729][1][info][config] [source/server/configuration_impl.cc:130] loading 0 cluster(s)
-[2026-04-20 10:40:39.729][1][info][config] [source/server/configuration_impl.cc:138] loading 1 listener(s)
-[2026-04-20 10:40:39.730][1][warning][misc] [source/extensions/filters/network/http_connection_manager/config.cc:84] internal_address_config is not configured. The existing default behaviour will trust RFC1918 IP addresses, but this will be changed in next release. Please explictily config internal address config as the migration step.
-[2026-04-20 10:40:39.731][1][info][lua] [source/extensions/filters/http/lua/lua_filter.cc:228] envoy_on_response() function not found. Lua filter will not hook responses.
-[2026-04-20 10:40:39.732][1][info][config] [source/server/configuration_impl.cc:154] loading stats configuration
-[2026-04-20 10:40:39.732][1][info][runtime] [source/common/runtime/runtime_impl.cc:614] RTDS has finished initialization
-[2026-04-20 10:40:39.732][1][info][upstream] [source/common/upstream/cluster_manager_impl.cc:240] cm init: all clusters initialized
-[2026-04-20 10:40:39.732][1][warning][main] [source/server/server.cc:928] There is no configured limit to the number of allowed active downstream connections. Configure a limit in `envoy.resource_monitors.downstream_connections` resource monitor.
-[2026-04-20 10:40:39.732][1][info][main] [source/server/server.cc:950] all clusters initialized. initializing init manager
-[2026-04-20 10:40:39.732][1][info][config] [source/common/listener_manager/listener_manager_impl.cc:930] all dependencies initialized. starting workers
-[2026-04-20 10:40:39.739][1][info][main] [source/server/server.cc:969] starting main dispatch loop
diff --git a/site/static/logs/pipelined/4096/h2o.log b/site/static/logs/pipelined/4096/h2o.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/pipelined/4096/nginx.log b/site/static/logs/pipelined/4096/nginx.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/pipelined/4096/pingora.log b/site/static/logs/pipelined/4096/pingora.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/pipelined/4096/traefik.log b/site/static/logs/pipelined/4096/traefik.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/pipelined/512/caddy.log b/site/static/logs/pipelined/512/caddy.log
deleted file mode 100644
index 22a1ba9f2..000000000
--- a/site/static/logs/pipelined/512/caddy.log
+++ /dev/null
@@ -1,3 +0,0 @@
-{"level":"info","ts":1776636199.284456,"msg":"using config from file","file":"/etc/caddy/Caddyfile"}
-{"level":"info","ts":1776636199.2853458,"msg":"adapted config to JSON","adapter":"caddyfile"}
-{"level":"info","ts":1776636199.2855034,"msg":"redirected default logger","from":"stderr","to":"discard"}
diff --git a/site/static/logs/pipelined/512/envoy.log b/site/static/logs/pipelined/512/envoy.log
deleted file mode 100644
index f16011ae4..000000000
--- a/site/static/logs/pipelined/512/envoy.log
+++ /dev/null
@@ -1,110 +0,0 @@
-[2026-04-20 10:40:16.350][1][info][main] [source/server/server.cc:428] initializing epoch 0 (base id=0, hot restart version=11.104)
-[2026-04-20 10:40:16.350][1][info][main] [source/server/server.cc:430] statically linked extensions:
-[2026-04-20 10:40:16.350][1][info][main] [source/server/server.cc:432] envoy.upstream.local_address_selector: envoy.upstream.local_address_selector.default_local_address_selector
-[2026-04-20 10:40:16.350][1][info][main] [source/server/server.cc:432] envoy.matching.http.input: envoy.matching.inputs.cel_data_input, envoy.matching.inputs.destination_ip, envoy.matching.inputs.destination_port, envoy.matching.inputs.direct_source_ip, envoy.matching.inputs.dns_san, envoy.matching.inputs.request_headers, envoy.matching.inputs.request_trailers, envoy.matching.inputs.response_headers, envoy.matching.inputs.response_trailers, envoy.matching.inputs.server_name, envoy.matching.inputs.source_ip, envoy.matching.inputs.source_port, envoy.matching.inputs.source_type, envoy.matching.inputs.status_code_class_input, envoy.matching.inputs.status_code_input, envoy.matching.inputs.subject, envoy.matching.inputs.uri_san, query_params
-[2026-04-20 10:40:16.350][1][info][main] [source/server/server.cc:432] envoy.matching.http.custom_matchers: envoy.matching.custom_matchers.trie_matcher
-[2026-04-20 10:40:16.350][1][info][main] [source/server/server.cc:432] envoy.http.header_validators: envoy.http.header_validators.envoy_default
-[2026-04-20 10:40:16.350][1][info][main] [source/server/server.cc:432] envoy.compression.compressor: envoy.compression.brotli.compressor, envoy.compression.gzip.compressor, envoy.compression.zstd.compressor
-[2026-04-20 10:40:16.350][1][info][main] [source/server/server.cc:432] envoy.rbac.matchers: envoy.rbac.matchers.upstream_ip_port
-[2026-04-20 10:40:16.350][1][info][main] [source/server/server.cc:432] envoy.compression.decompressor: envoy.compression.brotli.decompressor, envoy.compression.gzip.decompressor, envoy.compression.zstd.decompressor
-[2026-04-20 10:40:16.350][1][info][main] [source/server/server.cc:432] envoy.retry_priorities: envoy.retry_priorities.previous_priorities
-[2026-04-20 10:40:16.350][1][info][main] [source/server/server.cc:432] envoy.path.match: envoy.path.match.uri_template.uri_template_matcher
-[2026-04-20 10:40:16.350][1][info][main] [source/server/server.cc:432] envoy.regex_engines: envoy.regex_engines.google_re2
-[2026-04-20 10:40:16.350][1][info][main] [source/server/server.cc:432] envoy.access_loggers: envoy.access_loggers.file, envoy.access_loggers.fluentd, envoy.access_loggers.http_grpc, envoy.access_loggers.open_telemetry, envoy.access_loggers.stderr, envoy.access_loggers.stdout, envoy.access_loggers.tcp_grpc, envoy.access_loggers.wasm, envoy.file_access_log, envoy.fluentd_access_log, envoy.http_grpc_access_log, envoy.open_telemetry_access_log, envoy.stderr_access_log, envoy.stdout_access_log, envoy.tcp_grpc_access_log, envoy.wasm_access_log
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.matching.common_inputs: envoy.matching.common_inputs.environment_variable
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.filters.http: envoy.bandwidth_limit, envoy.buffer, envoy.cors, envoy.csrf, envoy.ext_authz, envoy.ext_proc, envoy.fault, envoy.filters.http.adaptive_concurrency, envoy.filters.http.admission_control, envoy.filters.http.alternate_protocols_cache, envoy.filters.http.aws_lambda, envoy.filters.http.aws_request_signing, envoy.filters.http.bandwidth_limit, envoy.filters.http.basic_auth, envoy.filters.http.buffer, envoy.filters.http.cache, envoy.filters.http.cdn_loop, envoy.filters.http.composite, envoy.filters.http.compressor, envoy.filters.http.connect_grpc_bridge, envoy.filters.http.cors, envoy.filters.http.credential_injector, envoy.filters.http.csrf, envoy.filters.http.custom_response, envoy.filters.http.decompressor, envoy.filters.http.dynamic_forward_proxy, envoy.filters.http.ext_authz, envoy.filters.http.ext_proc, envoy.filters.http.fault, envoy.filters.http.file_system_buffer, envoy.filters.http.gcp_authn, envoy.filters.http.geoip, envoy.filters.http.grpc_field_extraction, envoy.filters.http.grpc_http1_bridge, envoy.filters.http.grpc_http1_reverse_bridge, envoy.filters.http.grpc_json_transcoder, envoy.filters.http.grpc_stats, envoy.filters.http.grpc_web, envoy.filters.http.header_mutation, envoy.filters.http.header_to_metadata, envoy.filters.http.health_check, envoy.filters.http.ip_tagging, envoy.filters.http.json_to_metadata, envoy.filters.http.jwt_authn, envoy.filters.http.local_ratelimit, envoy.filters.http.lua, envoy.filters.http.match_delegate, envoy.filters.http.oauth2, envoy.filters.http.on_demand, envoy.filters.http.original_src, envoy.filters.http.rate_limit_quota, envoy.filters.http.ratelimit, envoy.filters.http.rbac, envoy.filters.http.router, envoy.filters.http.set_filter_state, envoy.filters.http.set_metadata, envoy.filters.http.stateful_session, envoy.filters.http.tap, envoy.filters.http.wasm, envoy.geoip, envoy.grpc_http1_bridge, envoy.grpc_json_transcoder, envoy.grpc_web, envoy.health_check, envoy.ip_tagging, envoy.local_rate_limit, envoy.lua, envoy.rate_limit, envoy.router
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.guarddog_actions: envoy.watchdog.abort_action, envoy.watchdog.profile_action
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.network.dns_resolver: envoy.network.dns_resolver.cares, envoy.network.dns_resolver.getaddrinfo
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.quic.server_preferred_address: quic.server_preferred_address.fixed
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.health_check.event_sinks: envoy.health_check.event_sink.file
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.config_subscription: envoy.config_subscription.ads, envoy.config_subscription.ads_collection, envoy.config_subscription.aggregated_grpc_collection, envoy.config_subscription.delta_grpc, envoy.config_subscription.delta_grpc_collection, envoy.config_subscription.filesystem, envoy.config_subscription.filesystem_collection, envoy.config_subscription.grpc, envoy.config_subscription.rest
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.listener_manager_impl: envoy.listener_manager_impl.default, envoy.listener_manager_impl.validation
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.dubbo_proxy.filters: envoy.filters.dubbo.router
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.filters.udp_listener: envoy.filters.udp.dns_filter, envoy.filters.udp_listener.udp_proxy
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.path.rewrite: envoy.path.rewrite.uri_template.uri_template_rewriter
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.load_balancing_policies: envoy.load_balancing_policies.cluster_provided, envoy.load_balancing_policies.least_request, envoy.load_balancing_policies.maglev, envoy.load_balancing_policies.random, envoy.load_balancing_policies.ring_hash, envoy.load_balancing_policies.round_robin, envoy.load_balancing_policies.subset
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.tracers: envoy.dynamic.ot, envoy.tracers.datadog, envoy.tracers.dynamic_ot, envoy.tracers.opencensus, envoy.tracers.opentelemetry, envoy.tracers.skywalking, envoy.tracers.xray, envoy.tracers.zipkin, envoy.zipkin
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.health_checkers: envoy.health_checkers.grpc, envoy.health_checkers.http, envoy.health_checkers.redis, envoy.health_checkers.tcp, envoy.health_checkers.thrift
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.resolvers: envoy.ip
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.stats_sinks: envoy.dog_statsd, envoy.graphite_statsd, envoy.metrics_service, envoy.open_telemetry_stat_sink, envoy.stat_sinks.dog_statsd, envoy.stat_sinks.graphite_statsd, envoy.stat_sinks.hystrix, envoy.stat_sinks.metrics_service, envoy.stat_sinks.open_telemetry, envoy.stat_sinks.statsd, envoy.stat_sinks.wasm, envoy.statsd
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.matching.input_matchers: envoy.matching.matchers.cel_matcher, envoy.matching.matchers.consistent_hashing, envoy.matching.matchers.ip, envoy.matching.matchers.runtime_fraction
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.dubbo_proxy.protocols: dubbo
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.matching.network.custom_matchers: envoy.matching.custom_matchers.trie_matcher
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] quic.http_server_connection: quic.http_server_connection.default
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.udp_packet_writer: envoy.udp_packet_writer.default, envoy.udp_packet_writer.gso
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.upstream_options: envoy.extensions.upstreams.http.v3.HttpProtocolOptions, envoy.extensions.upstreams.tcp.v3.TcpProtocolOptions, envoy.upstreams.http.http_protocol_options, envoy.upstreams.tcp.tcp_protocol_options
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.matching.network.input: envoy.matching.inputs.application_protocol, envoy.matching.inputs.destination_ip, envoy.matching.inputs.destination_port, envoy.matching.inputs.direct_source_ip, envoy.matching.inputs.dns_san, envoy.matching.inputs.filter_state, envoy.matching.inputs.server_name, envoy.matching.inputs.source_ip, envoy.matching.inputs.source_port, envoy.matching.inputs.source_type, envoy.matching.inputs.subject, envoy.matching.inputs.transport_protocol, envoy.matching.inputs.uri_san
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.config.validators: envoy.config.validators.minimum_clusters, envoy.config.validators.minimum_clusters_validator
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.filters.http.upstream: envoy.buffer, envoy.ext_proc, envoy.filters.http.admission_control, envoy.filters.http.aws_lambda, envoy.filters.http.aws_request_signing, envoy.filters.http.buffer, envoy.filters.http.composite, envoy.filters.http.ext_proc, envoy.filters.http.header_mutation, envoy.filters.http.match_delegate, envoy.filters.http.upstream_codec
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.formatter: envoy.formatter.cel, envoy.formatter.metadata, envoy.formatter.req_without_query
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.retry_host_predicates: envoy.retry_host_predicates.omit_canary_hosts, envoy.retry_host_predicates.omit_host_metadata, envoy.retry_host_predicates.previous_hosts
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.thrift_proxy.protocols: auto, binary, binary/non-strict, compact, twitter
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.rate_limit_descriptors: envoy.rate_limit_descriptors.expr
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.dubbo_proxy.serializers: dubbo.hessian2
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.route_config_update_requester: envoy.route_config_update_requester.default
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.http.injected_credentials: envoy.http.injected_credentials.generic
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.http.early_header_mutation: envoy.http.early_header_mutation.header_mutation
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] filter_state.object: envoy.filters.listener.original_dst.local_ip, envoy.filters.listener.original_dst.remote_ip, envoy.network.application_protocols, envoy.network.transport_socket.original_dst_address, envoy.network.upstream_server_name, envoy.network.upstream_subject_alt_names, envoy.string, envoy.tcp_proxy.cluster, envoy.tcp_proxy.disable_tunneling, envoy.tcp_proxy.per_connection_idle_timeout_ms, envoy.upstream.dynamic_host, envoy.upstream.dynamic_port
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.internal_redirect_predicates: envoy.internal_redirect_predicates.allow_listed_routes, envoy.internal_redirect_predicates.previous_routes, envoy.internal_redirect_predicates.safe_cross_scheme
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.router.cluster_specifier_plugin: envoy.router.cluster_specifier_plugin.lua
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.tracers.opentelemetry.resource_detectors: envoy.tracers.opentelemetry.resource_detectors.dynatrace, envoy.tracers.opentelemetry.resource_detectors.environment
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.connection_handler: envoy.connection_handler.default
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.quic.server.crypto_stream: envoy.quic.crypto_stream.server.quiche
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.thrift_proxy.filters: envoy.filters.thrift.header_to_metadata, envoy.filters.thrift.payload_to_metadata, envoy.filters.thrift.rate_limit, envoy.filters.thrift.router
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.thrift_proxy.transports: auto, framed, header, unframed
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.tls.cert_validator: envoy.tls.cert_validator.default, envoy.tls.cert_validator.spiffe
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.string_matcher: envoy.string_matcher.lua
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.request_id: envoy.request_id.uuid
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.access_loggers.extension_filters: envoy.access_loggers.extension_filters.cel
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.upstreams: envoy.filters.connection_pools.tcp.generic
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.grpc_credentials: envoy.grpc_credentials.aws_iam, envoy.grpc_credentials.default, envoy.grpc_credentials.file_based_metadata
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.filters.listener: envoy.filters.listener.http_inspector, envoy.filters.listener.local_ratelimit, envoy.filters.listener.original_dst, envoy.filters.listener.original_src, envoy.filters.listener.proxy_protocol, envoy.filters.listener.tls_inspector, envoy.listener.http_inspector, envoy.listener.original_dst, envoy.listener.original_src, envoy.listener.proxy_protocol, envoy.listener.tls_inspector
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.quic.proof_source: envoy.quic.proof_source.filter_chain
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.wasm.runtime: envoy.wasm.runtime.null, envoy.wasm.runtime.v8
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.filters.udp.session: envoy.filters.udp.session.dynamic_forward_proxy, envoy.filters.udp.session.http_capsule
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.clusters: envoy.cluster.eds, envoy.cluster.logical_dns, envoy.cluster.original_dst, envoy.cluster.static, envoy.cluster.strict_dns, envoy.clusters.aggregate, envoy.clusters.dynamic_forward_proxy, envoy.clusters.redis
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.http.original_ip_detection: envoy.http.original_ip_detection.custom_header, envoy.http.original_ip_detection.xff
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.http.custom_response: envoy.extensions.http.custom_response.local_response_policy, envoy.extensions.http.custom_response.redirect_policy
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.matching.action: envoy.matching.actions.format_string, filter-chain-name
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.route.early_data_policy: envoy.route.early_data_policy.default
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.quic.connection_id_generator: envoy.quic.deterministic_connection_id_generator
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.resource_monitors: envoy.resource_monitors.fixed_heap, envoy.resource_monitors.injected_resource
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.config_mux: envoy.config_mux.delta_grpc_mux_factory, envoy.config_mux.grpc_mux_factory, envoy.config_mux.new_grpc_mux_factory, envoy.config_mux.sotw_grpc_mux_factory
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] network.connection.client: default, envoy_internal
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.tracers.opentelemetry.samplers: envoy.tracers.opentelemetry.samplers.always_on, envoy.tracers.opentelemetry.samplers.dynatrace
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.transport_sockets.upstream: envoy.transport_sockets.alts, envoy.transport_sockets.http_11_proxy, envoy.transport_sockets.internal_upstream, envoy.transport_sockets.quic, envoy.transport_sockets.raw_buffer, envoy.transport_sockets.starttls, envoy.transport_sockets.tap, envoy.transport_sockets.tcp_stats, envoy.transport_sockets.tls, envoy.transport_sockets.upstream_proxy_protocol, raw_buffer, starttls, tls
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.http.cache: envoy.extensions.http.cache.file_system_http_cache, envoy.extensions.http.cache.simple
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.http.stateful_header_formatters: envoy.http.stateful_header_formatters.preserve_case, preserve_case
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.bootstrap: envoy.bootstrap.internal_listener, envoy.bootstrap.wasm, envoy.extensions.network.socket_interface.default_socket_interface
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.geoip_providers: envoy.geoip_providers.maxmind
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.http.stateful_session: envoy.http.stateful_session.cookie, envoy.http.stateful_session.header
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.common.key_value: envoy.key_value.file_based
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.filters.network: envoy.echo, envoy.ext_authz, envoy.filters.network.connection_limit, envoy.filters.network.direct_response, envoy.filters.network.dubbo_proxy, envoy.filters.network.echo, envoy.filters.network.ext_authz, envoy.filters.network.http_connection_manager, envoy.filters.network.local_ratelimit, envoy.filters.network.mongo_proxy, envoy.filters.network.ratelimit, envoy.filters.network.rbac, envoy.filters.network.redis_proxy, envoy.filters.network.set_filter_state, envoy.filters.network.sni_cluster, envoy.filters.network.sni_dynamic_forward_proxy, envoy.filters.network.tcp_proxy, envoy.filters.network.thrift_proxy, envoy.filters.network.wasm, envoy.filters.network.zookeeper_proxy, envoy.http_connection_manager, envoy.mongo_proxy, envoy.ratelimit, envoy.redis_proxy, envoy.tcp_proxy
-[2026-04-20 10:40:16.351][1][info][main] [source/server/server.cc:432] envoy.transport_sockets.downstream: envoy.transport_sockets.alts, envoy.transport_sockets.quic, envoy.transport_sockets.raw_buffer, envoy.transport_sockets.starttls, envoy.transport_sockets.tap, envoy.transport_sockets.tcp_stats, envoy.transport_sockets.tls, raw_buffer, starttls, tls
-[2026-04-20 10:40:16.357][1][info][main] [source/server/server.cc:486] HTTP header map info:
-[2026-04-20 10:40:16.358][1][info][main] [source/server/server.cc:489] request header map: 664 bytes: :authority,:method,:path,:protocol,:scheme,accept,accept-encoding,access-control-request-headers,access-control-request-method,access-control-request-private-network,authentication,authorization,cache-control,cdn-loop,connection,content-encoding,content-length,content-type,expect,grpc-accept-encoding,grpc-timeout,if-match,if-modified-since,if-none-match,if-range,if-unmodified-since,keep-alive,origin,pragma,proxy-connection,proxy-status,referer,te,transfer-encoding,upgrade,user-agent,via,x-client-trace-id,x-envoy-attempt-count,x-envoy-decorator-operation,x-envoy-downstream-service-cluster,x-envoy-downstream-service-node,x-envoy-expected-rq-timeout-ms,x-envoy-external-address,x-envoy-force-trace,x-envoy-hedge-on-per-try-timeout,x-envoy-internal,x-envoy-ip-tags,x-envoy-is-timeout-retry,x-envoy-max-retries,x-envoy-original-path,x-envoy-original-url,x-envoy-retriable-header-names,x-envoy-retriable-status-codes,x-envoy-retry-grpc-on,x-envoy-retry-on,x-envoy-upstream-alt-stat-name,x-envoy-upstream-rq-per-try-timeout-ms,x-envoy-upstream-rq-timeout-alt-response,x-envoy-upstream-rq-timeout-ms,x-envoy-upstream-stream-duration-ms,x-forwarded-client-cert,x-forwarded-for,x-forwarded-host,x-forwarded-port,x-forwarded-proto,x-ot-span-context,x-request-id
-[2026-04-20 10:40:16.358][1][info][main] [source/server/server.cc:489] request trailer map: 120 bytes:
-[2026-04-20 10:40:16.358][1][info][main] [source/server/server.cc:489] response header map: 432 bytes: :status,access-control-allow-credentials,access-control-allow-headers,access-control-allow-methods,access-control-allow-origin,access-control-allow-private-network,access-control-expose-headers,access-control-max-age,age,cache-control,connection,content-encoding,content-length,content-type,date,etag,expires,grpc-message,grpc-status,keep-alive,last-modified,location,proxy-connection,proxy-status,server,transfer-encoding,upgrade,vary,via,x-envoy-attempt-count,x-envoy-decorator-operation,x-envoy-degraded,x-envoy-immediate-health-check-fail,x-envoy-ratelimited,x-envoy-upstream-canary,x-envoy-upstream-healthchecked-cluster,x-envoy-upstream-service-time,x-request-id
-[2026-04-20 10:40:16.358][1][info][main] [source/server/server.cc:489] response trailer map: 144 bytes: grpc-message,grpc-status
-[2026-04-20 10:40:16.396][1][info][main] [source/server/server.cc:861] runtime: layers:
- - name: static_layer
- static_layer:
- envoy:
- resource_limits:
- listener:
- main:
- connection_limit: 1048576
-[2026-04-20 10:40:16.397][1][info][admin] [source/server/admin/admin.cc:66] admin address: 127.0.0.1:9901
-[2026-04-20 10:40:16.398][1][info][config] [source/server/configuration_impl.cc:168] loading tracing configuration
-[2026-04-20 10:40:16.398][1][info][config] [source/server/configuration_impl.cc:124] loading 0 static secret(s)
-[2026-04-20 10:40:16.398][1][info][config] [source/server/configuration_impl.cc:130] loading 0 cluster(s)
-[2026-04-20 10:40:16.398][1][info][config] [source/server/configuration_impl.cc:138] loading 1 listener(s)
-[2026-04-20 10:40:16.400][1][warning][misc] [source/extensions/filters/network/http_connection_manager/config.cc:84] internal_address_config is not configured. The existing default behaviour will trust RFC1918 IP addresses, but this will be changed in next release. Please explictily config internal address config as the migration step.
-[2026-04-20 10:40:16.406][1][info][lua] [source/extensions/filters/http/lua/lua_filter.cc:228] envoy_on_response() function not found. Lua filter will not hook responses.
-[2026-04-20 10:40:16.407][1][info][config] [source/server/configuration_impl.cc:154] loading stats configuration
-[2026-04-20 10:40:16.407][1][info][runtime] [source/common/runtime/runtime_impl.cc:614] RTDS has finished initialization
-[2026-04-20 10:40:16.407][1][info][upstream] [source/common/upstream/cluster_manager_impl.cc:240] cm init: all clusters initialized
-[2026-04-20 10:40:16.407][1][warning][main] [source/server/server.cc:928] There is no configured limit to the number of allowed active downstream connections. Configure a limit in `envoy.resource_monitors.downstream_connections` resource monitor.
-[2026-04-20 10:40:16.407][1][info][main] [source/server/server.cc:950] all clusters initialized. initializing init manager
-[2026-04-20 10:40:16.407][1][info][config] [source/common/listener_manager/listener_manager_impl.cc:930] all dependencies initialized. starting workers
-[2026-04-20 10:40:16.415][1][info][main] [source/server/server.cc:969] starting main dispatch loop
diff --git a/site/static/logs/pipelined/512/h2o.log b/site/static/logs/pipelined/512/h2o.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/pipelined/512/nginx.log b/site/static/logs/pipelined/512/nginx.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/pipelined/512/pingora.log b/site/static/logs/pipelined/512/pingora.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/pipelined/512/traefik.log b/site/static/logs/pipelined/512/traefik.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/static-h2/1024/h2o.log b/site/static/logs/static-h2/1024/h2o.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/static-h2/1024/nginx.log b/site/static/logs/static-h2/1024/nginx.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/static-h2/256/h2o.log b/site/static/logs/static-h2/256/h2o.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/static-h2/256/nginx.log b/site/static/logs/static-h2/256/nginx.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/static-h3/64/nginx.log b/site/static/logs/static-h3/64/nginx.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/static/1024/apache.log b/site/static/logs/static/1024/apache.log
deleted file mode 100644
index 67c9f4f5f..000000000
--- a/site/static/logs/static/1024/apache.log
+++ /dev/null
@@ -1,2 +0,0 @@
-[Sun Apr 19 20:12:45.863312 2026] [mpm_event:notice] [pid 1:tid 1] AH00489: Apache/2.4.66 (Debian) configured -- resuming normal operations
-[Sun Apr 19 20:12:45.863423 2026] [core:notice] [pid 1:tid 1] AH00094: Command line: 'apache2 -D FOREGROUND -f /etc/apache2/httpd.conf'
diff --git a/site/static/logs/static/1024/caddy.log b/site/static/logs/static/1024/caddy.log
deleted file mode 100644
index 650b8eebe..000000000
--- a/site/static/logs/static/1024/caddy.log
+++ /dev/null
@@ -1,3 +0,0 @@
-{"level":"info","ts":1776636293.0951345,"msg":"using config from file","file":"/etc/caddy/Caddyfile"}
-{"level":"info","ts":1776636293.0959406,"msg":"adapted config to JSON","adapter":"caddyfile"}
-{"level":"info","ts":1776636293.096181,"msg":"redirected default logger","from":"stderr","to":"discard"}
diff --git a/site/static/logs/static/1024/envoy.log b/site/static/logs/static/1024/envoy.log
deleted file mode 100644
index 6380f45ff..000000000
--- a/site/static/logs/static/1024/envoy.log
+++ /dev/null
@@ -1,110 +0,0 @@
-[2026-04-20 10:38:17.731][1][info][main] [source/server/server.cc:428] initializing epoch 0 (base id=0, hot restart version=11.104)
-[2026-04-20 10:38:17.731][1][info][main] [source/server/server.cc:430] statically linked extensions:
-[2026-04-20 10:38:17.731][1][info][main] [source/server/server.cc:432] envoy.matching.common_inputs: envoy.matching.common_inputs.environment_variable
-[2026-04-20 10:38:17.731][1][info][main] [source/server/server.cc:432] envoy.transport_sockets.upstream: envoy.transport_sockets.alts, envoy.transport_sockets.http_11_proxy, envoy.transport_sockets.internal_upstream, envoy.transport_sockets.quic, envoy.transport_sockets.raw_buffer, envoy.transport_sockets.starttls, envoy.transport_sockets.tap, envoy.transport_sockets.tcp_stats, envoy.transport_sockets.tls, envoy.transport_sockets.upstream_proxy_protocol, raw_buffer, starttls, tls
-[2026-04-20 10:38:17.731][1][info][main] [source/server/server.cc:432] envoy.filters.http: envoy.bandwidth_limit, envoy.buffer, envoy.cors, envoy.csrf, envoy.ext_authz, envoy.ext_proc, envoy.fault, envoy.filters.http.adaptive_concurrency, envoy.filters.http.admission_control, envoy.filters.http.alternate_protocols_cache, envoy.filters.http.aws_lambda, envoy.filters.http.aws_request_signing, envoy.filters.http.bandwidth_limit, envoy.filters.http.basic_auth, envoy.filters.http.buffer, envoy.filters.http.cache, envoy.filters.http.cdn_loop, envoy.filters.http.composite, envoy.filters.http.compressor, envoy.filters.http.connect_grpc_bridge, envoy.filters.http.cors, envoy.filters.http.credential_injector, envoy.filters.http.csrf, envoy.filters.http.custom_response, envoy.filters.http.decompressor, envoy.filters.http.dynamic_forward_proxy, envoy.filters.http.ext_authz, envoy.filters.http.ext_proc, envoy.filters.http.fault, envoy.filters.http.file_system_buffer, envoy.filters.http.gcp_authn, envoy.filters.http.geoip, envoy.filters.http.grpc_field_extraction, envoy.filters.http.grpc_http1_bridge, envoy.filters.http.grpc_http1_reverse_bridge, envoy.filters.http.grpc_json_transcoder, envoy.filters.http.grpc_stats, envoy.filters.http.grpc_web, envoy.filters.http.header_mutation, envoy.filters.http.header_to_metadata, envoy.filters.http.health_check, envoy.filters.http.ip_tagging, envoy.filters.http.json_to_metadata, envoy.filters.http.jwt_authn, envoy.filters.http.local_ratelimit, envoy.filters.http.lua, envoy.filters.http.match_delegate, envoy.filters.http.oauth2, envoy.filters.http.on_demand, envoy.filters.http.original_src, envoy.filters.http.rate_limit_quota, envoy.filters.http.ratelimit, envoy.filters.http.rbac, envoy.filters.http.router, envoy.filters.http.set_filter_state, envoy.filters.http.set_metadata, envoy.filters.http.stateful_session, envoy.filters.http.tap, envoy.filters.http.wasm, envoy.geoip, envoy.grpc_http1_bridge, envoy.grpc_json_transcoder, envoy.grpc_web, envoy.health_check, envoy.ip_tagging, envoy.local_rate_limit, envoy.lua, envoy.rate_limit, envoy.router
-[2026-04-20 10:38:17.731][1][info][main] [source/server/server.cc:432] envoy.matching.network.input: envoy.matching.inputs.application_protocol, envoy.matching.inputs.destination_ip, envoy.matching.inputs.destination_port, envoy.matching.inputs.direct_source_ip, envoy.matching.inputs.dns_san, envoy.matching.inputs.filter_state, envoy.matching.inputs.server_name, envoy.matching.inputs.source_ip, envoy.matching.inputs.source_port, envoy.matching.inputs.source_type, envoy.matching.inputs.subject, envoy.matching.inputs.transport_protocol, envoy.matching.inputs.uri_san
-[2026-04-20 10:38:17.731][1][info][main] [source/server/server.cc:432] envoy.resource_monitors: envoy.resource_monitors.fixed_heap, envoy.resource_monitors.injected_resource
-[2026-04-20 10:38:17.731][1][info][main] [source/server/server.cc:432] envoy.http.original_ip_detection: envoy.http.original_ip_detection.custom_header, envoy.http.original_ip_detection.xff
-[2026-04-20 10:38:17.731][1][info][main] [source/server/server.cc:432] envoy.tracers.opentelemetry.samplers: envoy.tracers.opentelemetry.samplers.always_on, envoy.tracers.opentelemetry.samplers.dynatrace
-[2026-04-20 10:38:17.731][1][info][main] [source/server/server.cc:432] envoy.transport_sockets.downstream: envoy.transport_sockets.alts, envoy.transport_sockets.quic, envoy.transport_sockets.raw_buffer, envoy.transport_sockets.starttls, envoy.transport_sockets.tap, envoy.transport_sockets.tcp_stats, envoy.transport_sockets.tls, raw_buffer, starttls, tls
-[2026-04-20 10:38:17.731][1][info][main] [source/server/server.cc:432] envoy.tracers.opentelemetry.resource_detectors: envoy.tracers.opentelemetry.resource_detectors.dynatrace, envoy.tracers.opentelemetry.resource_detectors.environment
-[2026-04-20 10:38:17.731][1][info][main] [source/server/server.cc:432] envoy.upstream.local_address_selector: envoy.upstream.local_address_selector.default_local_address_selector
-[2026-04-20 10:38:17.731][1][info][main] [source/server/server.cc:432] envoy.route_config_update_requester: envoy.route_config_update_requester.default
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.access_loggers.extension_filters: envoy.access_loggers.extension_filters.cel
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.filters.udp.session: envoy.filters.udp.session.dynamic_forward_proxy, envoy.filters.udp.session.http_capsule
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.tracers: envoy.dynamic.ot, envoy.tracers.datadog, envoy.tracers.dynamic_ot, envoy.tracers.opencensus, envoy.tracers.opentelemetry, envoy.tracers.skywalking, envoy.tracers.xray, envoy.tracers.zipkin, envoy.zipkin
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.string_matcher: envoy.string_matcher.lua
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.guarddog_actions: envoy.watchdog.abort_action, envoy.watchdog.profile_action
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.retry_host_predicates: envoy.retry_host_predicates.omit_canary_hosts, envoy.retry_host_predicates.omit_host_metadata, envoy.retry_host_predicates.previous_hosts
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.http.injected_credentials: envoy.http.injected_credentials.generic
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.matching.http.custom_matchers: envoy.matching.custom_matchers.trie_matcher
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.path.match: envoy.path.match.uri_template.uri_template_matcher
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.clusters: envoy.cluster.eds, envoy.cluster.logical_dns, envoy.cluster.original_dst, envoy.cluster.static, envoy.cluster.strict_dns, envoy.clusters.aggregate, envoy.clusters.dynamic_forward_proxy, envoy.clusters.redis
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.thrift_proxy.filters: envoy.filters.thrift.header_to_metadata, envoy.filters.thrift.payload_to_metadata, envoy.filters.thrift.rate_limit, envoy.filters.thrift.router
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.http.stateful_header_formatters: envoy.http.stateful_header_formatters.preserve_case, preserve_case
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.thrift_proxy.transports: auto, framed, header, unframed
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.connection_handler: envoy.connection_handler.default
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.udp_packet_writer: envoy.udp_packet_writer.default, envoy.udp_packet_writer.gso
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] quic.http_server_connection: quic.http_server_connection.default
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.http.header_validators: envoy.http.header_validators.envoy_default
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.http.early_header_mutation: envoy.http.early_header_mutation.header_mutation
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] network.connection.client: default, envoy_internal
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.bootstrap: envoy.bootstrap.internal_listener, envoy.bootstrap.wasm, envoy.extensions.network.socket_interface.default_socket_interface
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.filters.udp_listener: envoy.filters.udp.dns_filter, envoy.filters.udp_listener.udp_proxy
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.dubbo_proxy.protocols: dubbo
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.wasm.runtime: envoy.wasm.runtime.null, envoy.wasm.runtime.v8
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.rbac.matchers: envoy.rbac.matchers.upstream_ip_port
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.dubbo_proxy.filters: envoy.filters.dubbo.router
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.grpc_credentials: envoy.grpc_credentials.aws_iam, envoy.grpc_credentials.default, envoy.grpc_credentials.file_based_metadata
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.formatter: envoy.formatter.cel, envoy.formatter.metadata, envoy.formatter.req_without_query
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.quic.connection_id_generator: envoy.quic.deterministic_connection_id_generator
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.matching.action: envoy.matching.actions.format_string, filter-chain-name
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.health_check.event_sinks: envoy.health_check.event_sink.file
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.upstream_options: envoy.extensions.upstreams.http.v3.HttpProtocolOptions, envoy.extensions.upstreams.tcp.v3.TcpProtocolOptions, envoy.upstreams.http.http_protocol_options, envoy.upstreams.tcp.tcp_protocol_options
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.request_id: envoy.request_id.uuid
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.route.early_data_policy: envoy.route.early_data_policy.default
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.matching.network.custom_matchers: envoy.matching.custom_matchers.trie_matcher
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.retry_priorities: envoy.retry_priorities.previous_priorities
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.network.dns_resolver: envoy.network.dns_resolver.cares, envoy.network.dns_resolver.getaddrinfo
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.resolvers: envoy.ip
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.matching.input_matchers: envoy.matching.matchers.cel_matcher, envoy.matching.matchers.consistent_hashing, envoy.matching.matchers.ip, envoy.matching.matchers.runtime_fraction
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.http.custom_response: envoy.extensions.http.custom_response.local_response_policy, envoy.extensions.http.custom_response.redirect_policy
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.quic.proof_source: envoy.quic.proof_source.filter_chain
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.internal_redirect_predicates: envoy.internal_redirect_predicates.allow_listed_routes, envoy.internal_redirect_predicates.previous_routes, envoy.internal_redirect_predicates.safe_cross_scheme
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.filters.http.upstream: envoy.buffer, envoy.ext_proc, envoy.filters.http.admission_control, envoy.filters.http.aws_lambda, envoy.filters.http.aws_request_signing, envoy.filters.http.buffer, envoy.filters.http.composite, envoy.filters.http.ext_proc, envoy.filters.http.header_mutation, envoy.filters.http.match_delegate, envoy.filters.http.upstream_codec
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.config_mux: envoy.config_mux.delta_grpc_mux_factory, envoy.config_mux.grpc_mux_factory, envoy.config_mux.new_grpc_mux_factory, envoy.config_mux.sotw_grpc_mux_factory
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.dubbo_proxy.serializers: dubbo.hessian2
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.config_subscription: envoy.config_subscription.ads, envoy.config_subscription.ads_collection, envoy.config_subscription.aggregated_grpc_collection, envoy.config_subscription.delta_grpc, envoy.config_subscription.delta_grpc_collection, envoy.config_subscription.filesystem, envoy.config_subscription.filesystem_collection, envoy.config_subscription.grpc, envoy.config_subscription.rest
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.path.rewrite: envoy.path.rewrite.uri_template.uri_template_rewriter
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.thrift_proxy.protocols: auto, binary, binary/non-strict, compact, twitter
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.health_checkers: envoy.health_checkers.grpc, envoy.health_checkers.http, envoy.health_checkers.redis, envoy.health_checkers.tcp, envoy.health_checkers.thrift
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.regex_engines: envoy.regex_engines.google_re2
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.filters.listener: envoy.filters.listener.http_inspector, envoy.filters.listener.local_ratelimit, envoy.filters.listener.original_dst, envoy.filters.listener.original_src, envoy.filters.listener.proxy_protocol, envoy.filters.listener.tls_inspector, envoy.listener.http_inspector, envoy.listener.original_dst, envoy.listener.original_src, envoy.listener.proxy_protocol, envoy.listener.tls_inspector
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.stats_sinks: envoy.dog_statsd, envoy.graphite_statsd, envoy.metrics_service, envoy.open_telemetry_stat_sink, envoy.stat_sinks.dog_statsd, envoy.stat_sinks.graphite_statsd, envoy.stat_sinks.hystrix, envoy.stat_sinks.metrics_service, envoy.stat_sinks.open_telemetry, envoy.stat_sinks.statsd, envoy.stat_sinks.wasm, envoy.statsd
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.compression.decompressor: envoy.compression.brotli.decompressor, envoy.compression.gzip.decompressor, envoy.compression.zstd.decompressor
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.http.stateful_session: envoy.http.stateful_session.cookie, envoy.http.stateful_session.header
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.listener_manager_impl: envoy.listener_manager_impl.default, envoy.listener_manager_impl.validation
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.load_balancing_policies: envoy.load_balancing_policies.cluster_provided, envoy.load_balancing_policies.least_request, envoy.load_balancing_policies.maglev, envoy.load_balancing_policies.random, envoy.load_balancing_policies.ring_hash, envoy.load_balancing_policies.round_robin, envoy.load_balancing_policies.subset
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.common.key_value: envoy.key_value.file_based
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.upstreams: envoy.filters.connection_pools.tcp.generic
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.router.cluster_specifier_plugin: envoy.router.cluster_specifier_plugin.lua
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.tls.cert_validator: envoy.tls.cert_validator.default, envoy.tls.cert_validator.spiffe
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.http.cache: envoy.extensions.http.cache.file_system_http_cache, envoy.extensions.http.cache.simple
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.quic.server.crypto_stream: envoy.quic.crypto_stream.server.quiche
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.config.validators: envoy.config.validators.minimum_clusters, envoy.config.validators.minimum_clusters_validator
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] filter_state.object: envoy.filters.listener.original_dst.local_ip, envoy.filters.listener.original_dst.remote_ip, envoy.network.application_protocols, envoy.network.transport_socket.original_dst_address, envoy.network.upstream_server_name, envoy.network.upstream_subject_alt_names, envoy.string, envoy.tcp_proxy.cluster, envoy.tcp_proxy.disable_tunneling, envoy.tcp_proxy.per_connection_idle_timeout_ms, envoy.upstream.dynamic_host, envoy.upstream.dynamic_port
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.rate_limit_descriptors: envoy.rate_limit_descriptors.expr
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.access_loggers: envoy.access_loggers.file, envoy.access_loggers.fluentd, envoy.access_loggers.http_grpc, envoy.access_loggers.open_telemetry, envoy.access_loggers.stderr, envoy.access_loggers.stdout, envoy.access_loggers.tcp_grpc, envoy.access_loggers.wasm, envoy.file_access_log, envoy.fluentd_access_log, envoy.http_grpc_access_log, envoy.open_telemetry_access_log, envoy.stderr_access_log, envoy.stdout_access_log, envoy.tcp_grpc_access_log, envoy.wasm_access_log
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.filters.network: envoy.echo, envoy.ext_authz, envoy.filters.network.connection_limit, envoy.filters.network.direct_response, envoy.filters.network.dubbo_proxy, envoy.filters.network.echo, envoy.filters.network.ext_authz, envoy.filters.network.http_connection_manager, envoy.filters.network.local_ratelimit, envoy.filters.network.mongo_proxy, envoy.filters.network.ratelimit, envoy.filters.network.rbac, envoy.filters.network.redis_proxy, envoy.filters.network.set_filter_state, envoy.filters.network.sni_cluster, envoy.filters.network.sni_dynamic_forward_proxy, envoy.filters.network.tcp_proxy, envoy.filters.network.thrift_proxy, envoy.filters.network.wasm, envoy.filters.network.zookeeper_proxy, envoy.http_connection_manager, envoy.mongo_proxy, envoy.ratelimit, envoy.redis_proxy, envoy.tcp_proxy
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.geoip_providers: envoy.geoip_providers.maxmind
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.quic.server_preferred_address: quic.server_preferred_address.fixed
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.matching.http.input: envoy.matching.inputs.cel_data_input, envoy.matching.inputs.destination_ip, envoy.matching.inputs.destination_port, envoy.matching.inputs.direct_source_ip, envoy.matching.inputs.dns_san, envoy.matching.inputs.request_headers, envoy.matching.inputs.request_trailers, envoy.matching.inputs.response_headers, envoy.matching.inputs.response_trailers, envoy.matching.inputs.server_name, envoy.matching.inputs.source_ip, envoy.matching.inputs.source_port, envoy.matching.inputs.source_type, envoy.matching.inputs.status_code_class_input, envoy.matching.inputs.status_code_input, envoy.matching.inputs.subject, envoy.matching.inputs.uri_san, query_params
-[2026-04-20 10:38:17.732][1][info][main] [source/server/server.cc:432] envoy.compression.compressor: envoy.compression.brotli.compressor, envoy.compression.gzip.compressor, envoy.compression.zstd.compressor
-[2026-04-20 10:38:17.735][1][info][main] [source/server/server.cc:486] HTTP header map info:
-[2026-04-20 10:38:17.737][1][info][main] [source/server/server.cc:489] request header map: 664 bytes: :authority,:method,:path,:protocol,:scheme,accept,accept-encoding,access-control-request-headers,access-control-request-method,access-control-request-private-network,authentication,authorization,cache-control,cdn-loop,connection,content-encoding,content-length,content-type,expect,grpc-accept-encoding,grpc-timeout,if-match,if-modified-since,if-none-match,if-range,if-unmodified-since,keep-alive,origin,pragma,proxy-connection,proxy-status,referer,te,transfer-encoding,upgrade,user-agent,via,x-client-trace-id,x-envoy-attempt-count,x-envoy-decorator-operation,x-envoy-downstream-service-cluster,x-envoy-downstream-service-node,x-envoy-expected-rq-timeout-ms,x-envoy-external-address,x-envoy-force-trace,x-envoy-hedge-on-per-try-timeout,x-envoy-internal,x-envoy-ip-tags,x-envoy-is-timeout-retry,x-envoy-max-retries,x-envoy-original-path,x-envoy-original-url,x-envoy-retriable-header-names,x-envoy-retriable-status-codes,x-envoy-retry-grpc-on,x-envoy-retry-on,x-envoy-upstream-alt-stat-name,x-envoy-upstream-rq-per-try-timeout-ms,x-envoy-upstream-rq-timeout-alt-response,x-envoy-upstream-rq-timeout-ms,x-envoy-upstream-stream-duration-ms,x-forwarded-client-cert,x-forwarded-for,x-forwarded-host,x-forwarded-port,x-forwarded-proto,x-ot-span-context,x-request-id
-[2026-04-20 10:38:17.737][1][info][main] [source/server/server.cc:489] request trailer map: 120 bytes:
-[2026-04-20 10:38:17.737][1][info][main] [source/server/server.cc:489] response header map: 432 bytes: :status,access-control-allow-credentials,access-control-allow-headers,access-control-allow-methods,access-control-allow-origin,access-control-allow-private-network,access-control-expose-headers,access-control-max-age,age,cache-control,connection,content-encoding,content-length,content-type,date,etag,expires,grpc-message,grpc-status,keep-alive,last-modified,location,proxy-connection,proxy-status,server,transfer-encoding,upgrade,vary,via,x-envoy-attempt-count,x-envoy-decorator-operation,x-envoy-degraded,x-envoy-immediate-health-check-fail,x-envoy-ratelimited,x-envoy-upstream-canary,x-envoy-upstream-healthchecked-cluster,x-envoy-upstream-service-time,x-request-id
-[2026-04-20 10:38:17.737][1][info][main] [source/server/server.cc:489] response trailer map: 144 bytes: grpc-message,grpc-status
-[2026-04-20 10:38:17.798][1][info][main] [source/server/server.cc:861] runtime: layers:
- - name: static_layer
- static_layer:
- envoy:
- resource_limits:
- listener:
- main:
- connection_limit: 1048576
-[2026-04-20 10:38:17.799][1][info][admin] [source/server/admin/admin.cc:66] admin address: 127.0.0.1:9901
-[2026-04-20 10:38:17.799][1][info][config] [source/server/configuration_impl.cc:168] loading tracing configuration
-[2026-04-20 10:38:17.799][1][info][config] [source/server/configuration_impl.cc:124] loading 0 static secret(s)
-[2026-04-20 10:38:17.799][1][info][config] [source/server/configuration_impl.cc:130] loading 0 cluster(s)
-[2026-04-20 10:38:17.799][1][info][config] [source/server/configuration_impl.cc:138] loading 1 listener(s)
-[2026-04-20 10:38:17.800][1][warning][misc] [source/extensions/filters/network/http_connection_manager/config.cc:84] internal_address_config is not configured. The existing default behaviour will trust RFC1918 IP addresses, but this will be changed in next release. Please explictily config internal address config as the migration step.
-[2026-04-20 10:38:17.801][1][info][lua] [source/extensions/filters/http/lua/lua_filter.cc:228] envoy_on_response() function not found. Lua filter will not hook responses.
-[2026-04-20 10:38:17.802][1][info][config] [source/server/configuration_impl.cc:154] loading stats configuration
-[2026-04-20 10:38:17.802][1][info][runtime] [source/common/runtime/runtime_impl.cc:614] RTDS has finished initialization
-[2026-04-20 10:38:17.802][1][info][upstream] [source/common/upstream/cluster_manager_impl.cc:240] cm init: all clusters initialized
-[2026-04-20 10:38:17.802][1][warning][main] [source/server/server.cc:928] There is no configured limit to the number of allowed active downstream connections. Configure a limit in `envoy.resource_monitors.downstream_connections` resource monitor.
-[2026-04-20 10:38:17.802][1][info][main] [source/server/server.cc:950] all clusters initialized. initializing init manager
-[2026-04-20 10:38:17.802][1][info][config] [source/common/listener_manager/listener_manager_impl.cc:930] all dependencies initialized. starting workers
-[2026-04-20 10:38:17.811][1][info][main] [source/server/server.cc:969] starting main dispatch loop
diff --git a/site/static/logs/static/1024/nginx.log b/site/static/logs/static/1024/nginx.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/static/1024/pingora.log b/site/static/logs/static/1024/pingora.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/static/1024/traefik.log b/site/static/logs/static/1024/traefik.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/static/4096/apache.log b/site/static/logs/static/4096/apache.log
deleted file mode 100644
index 481570bc3..000000000
--- a/site/static/logs/static/4096/apache.log
+++ /dev/null
@@ -1,2 +0,0 @@
-[Sun Apr 19 20:13:08.184665 2026] [mpm_event:notice] [pid 1:tid 1] AH00489: Apache/2.4.66 (Debian) configured -- resuming normal operations
-[Sun Apr 19 20:13:08.184775 2026] [core:notice] [pid 1:tid 1] AH00094: Command line: 'apache2 -D FOREGROUND -f /etc/apache2/httpd.conf'
diff --git a/site/static/logs/static/4096/caddy.log b/site/static/logs/static/4096/caddy.log
deleted file mode 100644
index 4a8c75944..000000000
--- a/site/static/logs/static/4096/caddy.log
+++ /dev/null
@@ -1,3 +0,0 @@
-{"level":"info","ts":1776636316.441986,"msg":"using config from file","file":"/etc/caddy/Caddyfile"}
-{"level":"info","ts":1776636316.442806,"msg":"adapted config to JSON","adapter":"caddyfile"}
-{"level":"info","ts":1776636316.4429443,"msg":"redirected default logger","from":"stderr","to":"discard"}
diff --git a/site/static/logs/static/4096/envoy.log b/site/static/logs/static/4096/envoy.log
deleted file mode 100644
index 2cc4b69d4..000000000
--- a/site/static/logs/static/4096/envoy.log
+++ /dev/null
@@ -1,110 +0,0 @@
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:428] initializing epoch 0 (base id=0, hot restart version=11.104)
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:430] statically linked extensions:
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.http.header_validators: envoy.http.header_validators.envoy_default
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.regex_engines: envoy.regex_engines.google_re2
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.clusters: envoy.cluster.eds, envoy.cluster.logical_dns, envoy.cluster.original_dst, envoy.cluster.static, envoy.cluster.strict_dns, envoy.clusters.aggregate, envoy.clusters.dynamic_forward_proxy, envoy.clusters.redis
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.router.cluster_specifier_plugin: envoy.router.cluster_specifier_plugin.lua
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.config.validators: envoy.config.validators.minimum_clusters, envoy.config.validators.minimum_clusters_validator
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.tracers.opentelemetry.samplers: envoy.tracers.opentelemetry.samplers.always_on, envoy.tracers.opentelemetry.samplers.dynatrace
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.udp_packet_writer: envoy.udp_packet_writer.default, envoy.udp_packet_writer.gso
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.access_loggers: envoy.access_loggers.file, envoy.access_loggers.fluentd, envoy.access_loggers.http_grpc, envoy.access_loggers.open_telemetry, envoy.access_loggers.stderr, envoy.access_loggers.stdout, envoy.access_loggers.tcp_grpc, envoy.access_loggers.wasm, envoy.file_access_log, envoy.fluentd_access_log, envoy.http_grpc_access_log, envoy.open_telemetry_access_log, envoy.stderr_access_log, envoy.stdout_access_log, envoy.tcp_grpc_access_log, envoy.wasm_access_log
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.quic.server_preferred_address: quic.server_preferred_address.fixed
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.resolvers: envoy.ip
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.request_id: envoy.request_id.uuid
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.path.rewrite: envoy.path.rewrite.uri_template.uri_template_rewriter
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.health_check.event_sinks: envoy.health_check.event_sink.file
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.tracers.opentelemetry.resource_detectors: envoy.tracers.opentelemetry.resource_detectors.dynatrace, envoy.tracers.opentelemetry.resource_detectors.environment
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.filters.listener: envoy.filters.listener.http_inspector, envoy.filters.listener.local_ratelimit, envoy.filters.listener.original_dst, envoy.filters.listener.original_src, envoy.filters.listener.proxy_protocol, envoy.filters.listener.tls_inspector, envoy.listener.http_inspector, envoy.listener.original_dst, envoy.listener.original_src, envoy.listener.proxy_protocol, envoy.listener.tls_inspector
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.matching.input_matchers: envoy.matching.matchers.cel_matcher, envoy.matching.matchers.consistent_hashing, envoy.matching.matchers.ip, envoy.matching.matchers.runtime_fraction
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.filters.http: envoy.bandwidth_limit, envoy.buffer, envoy.cors, envoy.csrf, envoy.ext_authz, envoy.ext_proc, envoy.fault, envoy.filters.http.adaptive_concurrency, envoy.filters.http.admission_control, envoy.filters.http.alternate_protocols_cache, envoy.filters.http.aws_lambda, envoy.filters.http.aws_request_signing, envoy.filters.http.bandwidth_limit, envoy.filters.http.basic_auth, envoy.filters.http.buffer, envoy.filters.http.cache, envoy.filters.http.cdn_loop, envoy.filters.http.composite, envoy.filters.http.compressor, envoy.filters.http.connect_grpc_bridge, envoy.filters.http.cors, envoy.filters.http.credential_injector, envoy.filters.http.csrf, envoy.filters.http.custom_response, envoy.filters.http.decompressor, envoy.filters.http.dynamic_forward_proxy, envoy.filters.http.ext_authz, envoy.filters.http.ext_proc, envoy.filters.http.fault, envoy.filters.http.file_system_buffer, envoy.filters.http.gcp_authn, envoy.filters.http.geoip, envoy.filters.http.grpc_field_extraction, envoy.filters.http.grpc_http1_bridge, envoy.filters.http.grpc_http1_reverse_bridge, envoy.filters.http.grpc_json_transcoder, envoy.filters.http.grpc_stats, envoy.filters.http.grpc_web, envoy.filters.http.header_mutation, envoy.filters.http.header_to_metadata, envoy.filters.http.health_check, envoy.filters.http.ip_tagging, envoy.filters.http.json_to_metadata, envoy.filters.http.jwt_authn, envoy.filters.http.local_ratelimit, envoy.filters.http.lua, envoy.filters.http.match_delegate, envoy.filters.http.oauth2, envoy.filters.http.on_demand, envoy.filters.http.original_src, envoy.filters.http.rate_limit_quota, envoy.filters.http.ratelimit, envoy.filters.http.rbac, envoy.filters.http.router, envoy.filters.http.set_filter_state, envoy.filters.http.set_metadata, envoy.filters.http.stateful_session, envoy.filters.http.tap, envoy.filters.http.wasm, envoy.geoip, envoy.grpc_http1_bridge, envoy.grpc_json_transcoder, envoy.grpc_web, envoy.health_check, envoy.ip_tagging, envoy.local_rate_limit, envoy.lua, envoy.rate_limit, envoy.router
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.matching.http.custom_matchers: envoy.matching.custom_matchers.trie_matcher
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.filters.udp.session: envoy.filters.udp.session.dynamic_forward_proxy, envoy.filters.udp.session.http_capsule
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.common.key_value: envoy.key_value.file_based
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.resource_monitors: envoy.resource_monitors.fixed_heap, envoy.resource_monitors.injected_resource
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.upstreams: envoy.filters.connection_pools.tcp.generic
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.http.stateful_header_formatters: envoy.http.stateful_header_formatters.preserve_case, preserve_case
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.string_matcher: envoy.string_matcher.lua
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.tls.cert_validator: envoy.tls.cert_validator.default, envoy.tls.cert_validator.spiffe
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.retry_priorities: envoy.retry_priorities.previous_priorities
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.grpc_credentials: envoy.grpc_credentials.aws_iam, envoy.grpc_credentials.default, envoy.grpc_credentials.file_based_metadata
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.compression.decompressor: envoy.compression.brotli.decompressor, envoy.compression.gzip.decompressor, envoy.compression.zstd.decompressor
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.matching.common_inputs: envoy.matching.common_inputs.environment_variable
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.access_loggers.extension_filters: envoy.access_loggers.extension_filters.cel
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.quic.connection_id_generator: envoy.quic.deterministic_connection_id_generator
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.config_subscription: envoy.config_subscription.ads, envoy.config_subscription.ads_collection, envoy.config_subscription.aggregated_grpc_collection, envoy.config_subscription.delta_grpc, envoy.config_subscription.delta_grpc_collection, envoy.config_subscription.filesystem, envoy.config_subscription.filesystem_collection, envoy.config_subscription.grpc, envoy.config_subscription.rest
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.matching.http.input: envoy.matching.inputs.cel_data_input, envoy.matching.inputs.destination_ip, envoy.matching.inputs.destination_port, envoy.matching.inputs.direct_source_ip, envoy.matching.inputs.dns_san, envoy.matching.inputs.request_headers, envoy.matching.inputs.request_trailers, envoy.matching.inputs.response_headers, envoy.matching.inputs.response_trailers, envoy.matching.inputs.server_name, envoy.matching.inputs.source_ip, envoy.matching.inputs.source_port, envoy.matching.inputs.source_type, envoy.matching.inputs.status_code_class_input, envoy.matching.inputs.status_code_input, envoy.matching.inputs.subject, envoy.matching.inputs.uri_san, query_params
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.thrift_proxy.filters: envoy.filters.thrift.header_to_metadata, envoy.filters.thrift.payload_to_metadata, envoy.filters.thrift.rate_limit, envoy.filters.thrift.router
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.rate_limit_descriptors: envoy.rate_limit_descriptors.expr
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.transport_sockets.upstream: envoy.transport_sockets.alts, envoy.transport_sockets.http_11_proxy, envoy.transport_sockets.internal_upstream, envoy.transport_sockets.quic, envoy.transport_sockets.raw_buffer, envoy.transport_sockets.starttls, envoy.transport_sockets.tap, envoy.transport_sockets.tcp_stats, envoy.transport_sockets.tls, envoy.transport_sockets.upstream_proxy_protocol, raw_buffer, starttls, tls
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] network.connection.client: default, envoy_internal
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.dubbo_proxy.serializers: dubbo.hessian2
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.http.early_header_mutation: envoy.http.early_header_mutation.header_mutation
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.geoip_providers: envoy.geoip_providers.maxmind
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.matching.network.input: envoy.matching.inputs.application_protocol, envoy.matching.inputs.destination_ip, envoy.matching.inputs.destination_port, envoy.matching.inputs.direct_source_ip, envoy.matching.inputs.dns_san, envoy.matching.inputs.filter_state, envoy.matching.inputs.server_name, envoy.matching.inputs.source_ip, envoy.matching.inputs.source_port, envoy.matching.inputs.source_type, envoy.matching.inputs.subject, envoy.matching.inputs.transport_protocol, envoy.matching.inputs.uri_san
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.dubbo_proxy.filters: envoy.filters.dubbo.router
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] filter_state.object: envoy.filters.listener.original_dst.local_ip, envoy.filters.listener.original_dst.remote_ip, envoy.network.application_protocols, envoy.network.transport_socket.original_dst_address, envoy.network.upstream_server_name, envoy.network.upstream_subject_alt_names, envoy.string, envoy.tcp_proxy.cluster, envoy.tcp_proxy.disable_tunneling, envoy.tcp_proxy.per_connection_idle_timeout_ms, envoy.upstream.dynamic_host, envoy.upstream.dynamic_port
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.http.cache: envoy.extensions.http.cache.file_system_http_cache, envoy.extensions.http.cache.simple
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.upstream_options: envoy.extensions.upstreams.http.v3.HttpProtocolOptions, envoy.extensions.upstreams.tcp.v3.TcpProtocolOptions, envoy.upstreams.http.http_protocol_options, envoy.upstreams.tcp.tcp_protocol_options
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.connection_handler: envoy.connection_handler.default
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.quic.server.crypto_stream: envoy.quic.crypto_stream.server.quiche
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.route.early_data_policy: envoy.route.early_data_policy.default
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.stats_sinks: envoy.dog_statsd, envoy.graphite_statsd, envoy.metrics_service, envoy.open_telemetry_stat_sink, envoy.stat_sinks.dog_statsd, envoy.stat_sinks.graphite_statsd, envoy.stat_sinks.hystrix, envoy.stat_sinks.metrics_service, envoy.stat_sinks.open_telemetry, envoy.stat_sinks.statsd, envoy.stat_sinks.wasm, envoy.statsd
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.tracers: envoy.dynamic.ot, envoy.tracers.datadog, envoy.tracers.dynamic_ot, envoy.tracers.opencensus, envoy.tracers.opentelemetry, envoy.tracers.skywalking, envoy.tracers.xray, envoy.tracers.zipkin, envoy.zipkin
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.path.match: envoy.path.match.uri_template.uri_template_matcher
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.upstream.local_address_selector: envoy.upstream.local_address_selector.default_local_address_selector
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.health_checkers: envoy.health_checkers.grpc, envoy.health_checkers.http, envoy.health_checkers.redis, envoy.health_checkers.tcp, envoy.health_checkers.thrift
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.thrift_proxy.protocols: auto, binary, binary/non-strict, compact, twitter
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.http.injected_credentials: envoy.http.injected_credentials.generic
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.thrift_proxy.transports: auto, framed, header, unframed
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.http.stateful_session: envoy.http.stateful_session.cookie, envoy.http.stateful_session.header
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.rbac.matchers: envoy.rbac.matchers.upstream_ip_port
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.filters.network: envoy.echo, envoy.ext_authz, envoy.filters.network.connection_limit, envoy.filters.network.direct_response, envoy.filters.network.dubbo_proxy, envoy.filters.network.echo, envoy.filters.network.ext_authz, envoy.filters.network.http_connection_manager, envoy.filters.network.local_ratelimit, envoy.filters.network.mongo_proxy, envoy.filters.network.ratelimit, envoy.filters.network.rbac, envoy.filters.network.redis_proxy, envoy.filters.network.set_filter_state, envoy.filters.network.sni_cluster, envoy.filters.network.sni_dynamic_forward_proxy, envoy.filters.network.tcp_proxy, envoy.filters.network.thrift_proxy, envoy.filters.network.wasm, envoy.filters.network.zookeeper_proxy, envoy.http_connection_manager, envoy.mongo_proxy, envoy.ratelimit, envoy.redis_proxy, envoy.tcp_proxy
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.transport_sockets.downstream: envoy.transport_sockets.alts, envoy.transport_sockets.quic, envoy.transport_sockets.raw_buffer, envoy.transport_sockets.starttls, envoy.transport_sockets.tap, envoy.transport_sockets.tcp_stats, envoy.transport_sockets.tls, raw_buffer, starttls, tls
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.formatter: envoy.formatter.cel, envoy.formatter.metadata, envoy.formatter.req_without_query
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.http.original_ip_detection: envoy.http.original_ip_detection.custom_header, envoy.http.original_ip_detection.xff
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.dubbo_proxy.protocols: dubbo
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.compression.compressor: envoy.compression.brotli.compressor, envoy.compression.gzip.compressor, envoy.compression.zstd.compressor
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.guarddog_actions: envoy.watchdog.abort_action, envoy.watchdog.profile_action
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.quic.proof_source: envoy.quic.proof_source.filter_chain
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.internal_redirect_predicates: envoy.internal_redirect_predicates.allow_listed_routes, envoy.internal_redirect_predicates.previous_routes, envoy.internal_redirect_predicates.safe_cross_scheme
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.network.dns_resolver: envoy.network.dns_resolver.cares, envoy.network.dns_resolver.getaddrinfo
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.route_config_update_requester: envoy.route_config_update_requester.default
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.bootstrap: envoy.bootstrap.internal_listener, envoy.bootstrap.wasm, envoy.extensions.network.socket_interface.default_socket_interface
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.filters.http.upstream: envoy.buffer, envoy.ext_proc, envoy.filters.http.admission_control, envoy.filters.http.aws_lambda, envoy.filters.http.aws_request_signing, envoy.filters.http.buffer, envoy.filters.http.composite, envoy.filters.http.ext_proc, envoy.filters.http.header_mutation, envoy.filters.http.match_delegate, envoy.filters.http.upstream_codec
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.matching.network.custom_matchers: envoy.matching.custom_matchers.trie_matcher
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.load_balancing_policies: envoy.load_balancing_policies.cluster_provided, envoy.load_balancing_policies.least_request, envoy.load_balancing_policies.maglev, envoy.load_balancing_policies.random, envoy.load_balancing_policies.ring_hash, envoy.load_balancing_policies.round_robin, envoy.load_balancing_policies.subset
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.matching.action: envoy.matching.actions.format_string, filter-chain-name
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.filters.udp_listener: envoy.filters.udp.dns_filter, envoy.filters.udp_listener.udp_proxy
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.wasm.runtime: envoy.wasm.runtime.null, envoy.wasm.runtime.v8
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.config_mux: envoy.config_mux.delta_grpc_mux_factory, envoy.config_mux.grpc_mux_factory, envoy.config_mux.new_grpc_mux_factory, envoy.config_mux.sotw_grpc_mux_factory
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.listener_manager_impl: envoy.listener_manager_impl.default, envoy.listener_manager_impl.validation
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.retry_host_predicates: envoy.retry_host_predicates.omit_canary_hosts, envoy.retry_host_predicates.omit_host_metadata, envoy.retry_host_predicates.previous_hosts
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] quic.http_server_connection: quic.http_server_connection.default
-[2026-04-20 10:38:41.184][1][info][main] [source/server/server.cc:432] envoy.http.custom_response: envoy.extensions.http.custom_response.local_response_policy, envoy.extensions.http.custom_response.redirect_policy
-[2026-04-20 10:38:41.188][1][info][main] [source/server/server.cc:486] HTTP header map info:
-[2026-04-20 10:38:41.189][1][info][main] [source/server/server.cc:489] request header map: 664 bytes: :authority,:method,:path,:protocol,:scheme,accept,accept-encoding,access-control-request-headers,access-control-request-method,access-control-request-private-network,authentication,authorization,cache-control,cdn-loop,connection,content-encoding,content-length,content-type,expect,grpc-accept-encoding,grpc-timeout,if-match,if-modified-since,if-none-match,if-range,if-unmodified-since,keep-alive,origin,pragma,proxy-connection,proxy-status,referer,te,transfer-encoding,upgrade,user-agent,via,x-client-trace-id,x-envoy-attempt-count,x-envoy-decorator-operation,x-envoy-downstream-service-cluster,x-envoy-downstream-service-node,x-envoy-expected-rq-timeout-ms,x-envoy-external-address,x-envoy-force-trace,x-envoy-hedge-on-per-try-timeout,x-envoy-internal,x-envoy-ip-tags,x-envoy-is-timeout-retry,x-envoy-max-retries,x-envoy-original-path,x-envoy-original-url,x-envoy-retriable-header-names,x-envoy-retriable-status-codes,x-envoy-retry-grpc-on,x-envoy-retry-on,x-envoy-upstream-alt-stat-name,x-envoy-upstream-rq-per-try-timeout-ms,x-envoy-upstream-rq-timeout-alt-response,x-envoy-upstream-rq-timeout-ms,x-envoy-upstream-stream-duration-ms,x-forwarded-client-cert,x-forwarded-for,x-forwarded-host,x-forwarded-port,x-forwarded-proto,x-ot-span-context,x-request-id
-[2026-04-20 10:38:41.189][1][info][main] [source/server/server.cc:489] request trailer map: 120 bytes:
-[2026-04-20 10:38:41.189][1][info][main] [source/server/server.cc:489] response header map: 432 bytes: :status,access-control-allow-credentials,access-control-allow-headers,access-control-allow-methods,access-control-allow-origin,access-control-allow-private-network,access-control-expose-headers,access-control-max-age,age,cache-control,connection,content-encoding,content-length,content-type,date,etag,expires,grpc-message,grpc-status,keep-alive,last-modified,location,proxy-connection,proxy-status,server,transfer-encoding,upgrade,vary,via,x-envoy-attempt-count,x-envoy-decorator-operation,x-envoy-degraded,x-envoy-immediate-health-check-fail,x-envoy-ratelimited,x-envoy-upstream-canary,x-envoy-upstream-healthchecked-cluster,x-envoy-upstream-service-time,x-request-id
-[2026-04-20 10:38:41.189][1][info][main] [source/server/server.cc:489] response trailer map: 144 bytes: grpc-message,grpc-status
-[2026-04-20 10:38:41.235][1][info][main] [source/server/server.cc:861] runtime: layers:
- - name: static_layer
- static_layer:
- envoy:
- resource_limits:
- listener:
- main:
- connection_limit: 1048576
-[2026-04-20 10:38:41.236][1][info][admin] [source/server/admin/admin.cc:66] admin address: 127.0.0.1:9901
-[2026-04-20 10:38:41.236][1][info][config] [source/server/configuration_impl.cc:168] loading tracing configuration
-[2026-04-20 10:38:41.236][1][info][config] [source/server/configuration_impl.cc:124] loading 0 static secret(s)
-[2026-04-20 10:38:41.236][1][info][config] [source/server/configuration_impl.cc:130] loading 0 cluster(s)
-[2026-04-20 10:38:41.236][1][info][config] [source/server/configuration_impl.cc:138] loading 1 listener(s)
-[2026-04-20 10:38:41.237][1][warning][misc] [source/extensions/filters/network/http_connection_manager/config.cc:84] internal_address_config is not configured. The existing default behaviour will trust RFC1918 IP addresses, but this will be changed in next release. Please explictily config internal address config as the migration step.
-[2026-04-20 10:38:41.238][1][info][lua] [source/extensions/filters/http/lua/lua_filter.cc:228] envoy_on_response() function not found. Lua filter will not hook responses.
-[2026-04-20 10:38:41.239][1][info][config] [source/server/configuration_impl.cc:154] loading stats configuration
-[2026-04-20 10:38:41.239][1][info][runtime] [source/common/runtime/runtime_impl.cc:614] RTDS has finished initialization
-[2026-04-20 10:38:41.239][1][info][upstream] [source/common/upstream/cluster_manager_impl.cc:240] cm init: all clusters initialized
-[2026-04-20 10:38:41.239][1][warning][main] [source/server/server.cc:928] There is no configured limit to the number of allowed active downstream connections. Configure a limit in `envoy.resource_monitors.downstream_connections` resource monitor.
-[2026-04-20 10:38:41.239][1][info][main] [source/server/server.cc:950] all clusters initialized. initializing init manager
-[2026-04-20 10:38:41.239][1][info][config] [source/common/listener_manager/listener_manager_impl.cc:930] all dependencies initialized. starting workers
-[2026-04-20 10:38:41.246][1][info][main] [source/server/server.cc:969] starting main dispatch loop
diff --git a/site/static/logs/static/4096/nginx.log b/site/static/logs/static/4096/nginx.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/static/4096/pingora.log b/site/static/logs/static/4096/pingora.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/static/4096/traefik.log b/site/static/logs/static/4096/traefik.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/static/6800/apache.log b/site/static/logs/static/6800/apache.log
deleted file mode 100644
index f36f2f25d..000000000
--- a/site/static/logs/static/6800/apache.log
+++ /dev/null
@@ -1,2 +0,0 @@
-[Sun Apr 19 20:13:30.739541 2026] [mpm_event:notice] [pid 1:tid 1] AH00489: Apache/2.4.66 (Debian) configured -- resuming normal operations
-[Sun Apr 19 20:13:30.739668 2026] [core:notice] [pid 1:tid 1] AH00094: Command line: 'apache2 -D FOREGROUND -f /etc/apache2/httpd.conf'
diff --git a/site/static/logs/static/6800/caddy.log b/site/static/logs/static/6800/caddy.log
deleted file mode 100644
index c3759f4ef..000000000
--- a/site/static/logs/static/6800/caddy.log
+++ /dev/null
@@ -1,3 +0,0 @@
-{"level":"info","ts":1776636340.010471,"msg":"using config from file","file":"/etc/caddy/Caddyfile"}
-{"level":"info","ts":1776636340.0114827,"msg":"adapted config to JSON","adapter":"caddyfile"}
-{"level":"info","ts":1776636340.0116796,"msg":"redirected default logger","from":"stderr","to":"discard"}
diff --git a/site/static/logs/static/6800/envoy.log b/site/static/logs/static/6800/envoy.log
deleted file mode 100644
index 892fd54ad..000000000
--- a/site/static/logs/static/6800/envoy.log
+++ /dev/null
@@ -1,110 +0,0 @@
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:428] initializing epoch 0 (base id=0, hot restart version=11.104)
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:430] statically linked extensions:
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] network.connection.client: default, envoy_internal
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.path.rewrite: envoy.path.rewrite.uri_template.uri_template_rewriter
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.tracers.opentelemetry.samplers: envoy.tracers.opentelemetry.samplers.always_on, envoy.tracers.opentelemetry.samplers.dynatrace
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.health_checkers: envoy.health_checkers.grpc, envoy.health_checkers.http, envoy.health_checkers.redis, envoy.health_checkers.tcp, envoy.health_checkers.thrift
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.upstreams: envoy.filters.connection_pools.tcp.generic
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.route_config_update_requester: envoy.route_config_update_requester.default
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.matching.common_inputs: envoy.matching.common_inputs.environment_variable
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.transport_sockets.upstream: envoy.transport_sockets.alts, envoy.transport_sockets.http_11_proxy, envoy.transport_sockets.internal_upstream, envoy.transport_sockets.quic, envoy.transport_sockets.raw_buffer, envoy.transport_sockets.starttls, envoy.transport_sockets.tap, envoy.transport_sockets.tcp_stats, envoy.transport_sockets.tls, envoy.transport_sockets.upstream_proxy_protocol, raw_buffer, starttls, tls
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.http.stateful_session: envoy.http.stateful_session.cookie, envoy.http.stateful_session.header
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.dubbo_proxy.serializers: dubbo.hessian2
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.http.original_ip_detection: envoy.http.original_ip_detection.custom_header, envoy.http.original_ip_detection.xff
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.quic.connection_id_generator: envoy.quic.deterministic_connection_id_generator
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.path.match: envoy.path.match.uri_template.uri_template_matcher
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.compression.decompressor: envoy.compression.brotli.decompressor, envoy.compression.gzip.decompressor, envoy.compression.zstd.decompressor
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.regex_engines: envoy.regex_engines.google_re2
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.access_loggers: envoy.access_loggers.file, envoy.access_loggers.fluentd, envoy.access_loggers.http_grpc, envoy.access_loggers.open_telemetry, envoy.access_loggers.stderr, envoy.access_loggers.stdout, envoy.access_loggers.tcp_grpc, envoy.access_loggers.wasm, envoy.file_access_log, envoy.fluentd_access_log, envoy.http_grpc_access_log, envoy.open_telemetry_access_log, envoy.stderr_access_log, envoy.stdout_access_log, envoy.tcp_grpc_access_log, envoy.wasm_access_log
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.matching.input_matchers: envoy.matching.matchers.cel_matcher, envoy.matching.matchers.consistent_hashing, envoy.matching.matchers.ip, envoy.matching.matchers.runtime_fraction
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.upstream_options: envoy.extensions.upstreams.http.v3.HttpProtocolOptions, envoy.extensions.upstreams.tcp.v3.TcpProtocolOptions, envoy.upstreams.http.http_protocol_options, envoy.upstreams.tcp.tcp_protocol_options
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.http.early_header_mutation: envoy.http.early_header_mutation.header_mutation
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] filter_state.object: envoy.filters.listener.original_dst.local_ip, envoy.filters.listener.original_dst.remote_ip, envoy.network.application_protocols, envoy.network.transport_socket.original_dst_address, envoy.network.upstream_server_name, envoy.network.upstream_subject_alt_names, envoy.string, envoy.tcp_proxy.cluster, envoy.tcp_proxy.disable_tunneling, envoy.tcp_proxy.per_connection_idle_timeout_ms, envoy.upstream.dynamic_host, envoy.upstream.dynamic_port
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.thrift_proxy.filters: envoy.filters.thrift.header_to_metadata, envoy.filters.thrift.payload_to_metadata, envoy.filters.thrift.rate_limit, envoy.filters.thrift.router
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.retry_priorities: envoy.retry_priorities.previous_priorities
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.http.injected_credentials: envoy.http.injected_credentials.generic
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.matching.network.input: envoy.matching.inputs.application_protocol, envoy.matching.inputs.destination_ip, envoy.matching.inputs.destination_port, envoy.matching.inputs.direct_source_ip, envoy.matching.inputs.dns_san, envoy.matching.inputs.filter_state, envoy.matching.inputs.server_name, envoy.matching.inputs.source_ip, envoy.matching.inputs.source_port, envoy.matching.inputs.source_type, envoy.matching.inputs.subject, envoy.matching.inputs.transport_protocol, envoy.matching.inputs.uri_san
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.guarddog_actions: envoy.watchdog.abort_action, envoy.watchdog.profile_action
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.http.header_validators: envoy.http.header_validators.envoy_default
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.wasm.runtime: envoy.wasm.runtime.null, envoy.wasm.runtime.v8
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.load_balancing_policies: envoy.load_balancing_policies.cluster_provided, envoy.load_balancing_policies.least_request, envoy.load_balancing_policies.maglev, envoy.load_balancing_policies.random, envoy.load_balancing_policies.ring_hash, envoy.load_balancing_policies.round_robin, envoy.load_balancing_policies.subset
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.formatter: envoy.formatter.cel, envoy.formatter.metadata, envoy.formatter.req_without_query
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.config.validators: envoy.config.validators.minimum_clusters, envoy.config.validators.minimum_clusters_validator
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.string_matcher: envoy.string_matcher.lua
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.dubbo_proxy.protocols: dubbo
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.bootstrap: envoy.bootstrap.internal_listener, envoy.bootstrap.wasm, envoy.extensions.network.socket_interface.default_socket_interface
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.filters.http: envoy.bandwidth_limit, envoy.buffer, envoy.cors, envoy.csrf, envoy.ext_authz, envoy.ext_proc, envoy.fault, envoy.filters.http.adaptive_concurrency, envoy.filters.http.admission_control, envoy.filters.http.alternate_protocols_cache, envoy.filters.http.aws_lambda, envoy.filters.http.aws_request_signing, envoy.filters.http.bandwidth_limit, envoy.filters.http.basic_auth, envoy.filters.http.buffer, envoy.filters.http.cache, envoy.filters.http.cdn_loop, envoy.filters.http.composite, envoy.filters.http.compressor, envoy.filters.http.connect_grpc_bridge, envoy.filters.http.cors, envoy.filters.http.credential_injector, envoy.filters.http.csrf, envoy.filters.http.custom_response, envoy.filters.http.decompressor, envoy.filters.http.dynamic_forward_proxy, envoy.filters.http.ext_authz, envoy.filters.http.ext_proc, envoy.filters.http.fault, envoy.filters.http.file_system_buffer, envoy.filters.http.gcp_authn, envoy.filters.http.geoip, envoy.filters.http.grpc_field_extraction, envoy.filters.http.grpc_http1_bridge, envoy.filters.http.grpc_http1_reverse_bridge, envoy.filters.http.grpc_json_transcoder, envoy.filters.http.grpc_stats, envoy.filters.http.grpc_web, envoy.filters.http.header_mutation, envoy.filters.http.header_to_metadata, envoy.filters.http.health_check, envoy.filters.http.ip_tagging, envoy.filters.http.json_to_metadata, envoy.filters.http.jwt_authn, envoy.filters.http.local_ratelimit, envoy.filters.http.lua, envoy.filters.http.match_delegate, envoy.filters.http.oauth2, envoy.filters.http.on_demand, envoy.filters.http.original_src, envoy.filters.http.rate_limit_quota, envoy.filters.http.ratelimit, envoy.filters.http.rbac, envoy.filters.http.router, envoy.filters.http.set_filter_state, envoy.filters.http.set_metadata, envoy.filters.http.stateful_session, envoy.filters.http.tap, envoy.filters.http.wasm, envoy.geoip, envoy.grpc_http1_bridge, envoy.grpc_json_transcoder, envoy.grpc_web, envoy.health_check, envoy.ip_tagging, envoy.local_rate_limit, envoy.lua, envoy.rate_limit, envoy.router
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.http.custom_response: envoy.extensions.http.custom_response.local_response_policy, envoy.extensions.http.custom_response.redirect_policy
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.access_loggers.extension_filters: envoy.access_loggers.extension_filters.cel
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.quic.server_preferred_address: quic.server_preferred_address.fixed
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.tls.cert_validator: envoy.tls.cert_validator.default, envoy.tls.cert_validator.spiffe
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.filters.listener: envoy.filters.listener.http_inspector, envoy.filters.listener.local_ratelimit, envoy.filters.listener.original_dst, envoy.filters.listener.original_src, envoy.filters.listener.proxy_protocol, envoy.filters.listener.tls_inspector, envoy.listener.http_inspector, envoy.listener.original_dst, envoy.listener.original_src, envoy.listener.proxy_protocol, envoy.listener.tls_inspector
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.filters.network: envoy.echo, envoy.ext_authz, envoy.filters.network.connection_limit, envoy.filters.network.direct_response, envoy.filters.network.dubbo_proxy, envoy.filters.network.echo, envoy.filters.network.ext_authz, envoy.filters.network.http_connection_manager, envoy.filters.network.local_ratelimit, envoy.filters.network.mongo_proxy, envoy.filters.network.ratelimit, envoy.filters.network.rbac, envoy.filters.network.redis_proxy, envoy.filters.network.set_filter_state, envoy.filters.network.sni_cluster, envoy.filters.network.sni_dynamic_forward_proxy, envoy.filters.network.tcp_proxy, envoy.filters.network.thrift_proxy, envoy.filters.network.wasm, envoy.filters.network.zookeeper_proxy, envoy.http_connection_manager, envoy.mongo_proxy, envoy.ratelimit, envoy.redis_proxy, envoy.tcp_proxy
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.rbac.matchers: envoy.rbac.matchers.upstream_ip_port
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.matching.http.custom_matchers: envoy.matching.custom_matchers.trie_matcher
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.listener_manager_impl: envoy.listener_manager_impl.default, envoy.listener_manager_impl.validation
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.filters.http.upstream: envoy.buffer, envoy.ext_proc, envoy.filters.http.admission_control, envoy.filters.http.aws_lambda, envoy.filters.http.aws_request_signing, envoy.filters.http.buffer, envoy.filters.http.composite, envoy.filters.http.ext_proc, envoy.filters.http.header_mutation, envoy.filters.http.match_delegate, envoy.filters.http.upstream_codec
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.quic.server.crypto_stream: envoy.quic.crypto_stream.server.quiche
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.quic.proof_source: envoy.quic.proof_source.filter_chain
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.grpc_credentials: envoy.grpc_credentials.aws_iam, envoy.grpc_credentials.default, envoy.grpc_credentials.file_based_metadata
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.filters.udp_listener: envoy.filters.udp.dns_filter, envoy.filters.udp_listener.udp_proxy
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.stats_sinks: envoy.dog_statsd, envoy.graphite_statsd, envoy.metrics_service, envoy.open_telemetry_stat_sink, envoy.stat_sinks.dog_statsd, envoy.stat_sinks.graphite_statsd, envoy.stat_sinks.hystrix, envoy.stat_sinks.metrics_service, envoy.stat_sinks.open_telemetry, envoy.stat_sinks.statsd, envoy.stat_sinks.wasm, envoy.statsd
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.compression.compressor: envoy.compression.brotli.compressor, envoy.compression.gzip.compressor, envoy.compression.zstd.compressor
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] quic.http_server_connection: quic.http_server_connection.default
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.resolvers: envoy.ip
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.rate_limit_descriptors: envoy.rate_limit_descriptors.expr
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.matching.action: envoy.matching.actions.format_string, filter-chain-name
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.transport_sockets.downstream: envoy.transport_sockets.alts, envoy.transport_sockets.quic, envoy.transport_sockets.raw_buffer, envoy.transport_sockets.starttls, envoy.transport_sockets.tap, envoy.transport_sockets.tcp_stats, envoy.transport_sockets.tls, raw_buffer, starttls, tls
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.thrift_proxy.transports: auto, framed, header, unframed
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.clusters: envoy.cluster.eds, envoy.cluster.logical_dns, envoy.cluster.original_dst, envoy.cluster.static, envoy.cluster.strict_dns, envoy.clusters.aggregate, envoy.clusters.dynamic_forward_proxy, envoy.clusters.redis
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.health_check.event_sinks: envoy.health_check.event_sink.file
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.tracers: envoy.dynamic.ot, envoy.tracers.datadog, envoy.tracers.dynamic_ot, envoy.tracers.opencensus, envoy.tracers.opentelemetry, envoy.tracers.skywalking, envoy.tracers.xray, envoy.tracers.zipkin, envoy.zipkin
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.internal_redirect_predicates: envoy.internal_redirect_predicates.allow_listed_routes, envoy.internal_redirect_predicates.previous_routes, envoy.internal_redirect_predicates.safe_cross_scheme
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.tracers.opentelemetry.resource_detectors: envoy.tracers.opentelemetry.resource_detectors.dynatrace, envoy.tracers.opentelemetry.resource_detectors.environment
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.network.dns_resolver: envoy.network.dns_resolver.cares, envoy.network.dns_resolver.getaddrinfo
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.geoip_providers: envoy.geoip_providers.maxmind
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.config_mux: envoy.config_mux.delta_grpc_mux_factory, envoy.config_mux.grpc_mux_factory, envoy.config_mux.new_grpc_mux_factory, envoy.config_mux.sotw_grpc_mux_factory
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.config_subscription: envoy.config_subscription.ads, envoy.config_subscription.ads_collection, envoy.config_subscription.aggregated_grpc_collection, envoy.config_subscription.delta_grpc, envoy.config_subscription.delta_grpc_collection, envoy.config_subscription.filesystem, envoy.config_subscription.filesystem_collection, envoy.config_subscription.grpc, envoy.config_subscription.rest
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.router.cluster_specifier_plugin: envoy.router.cluster_specifier_plugin.lua
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.dubbo_proxy.filters: envoy.filters.dubbo.router
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.filters.udp.session: envoy.filters.udp.session.dynamic_forward_proxy, envoy.filters.udp.session.http_capsule
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.retry_host_predicates: envoy.retry_host_predicates.omit_canary_hosts, envoy.retry_host_predicates.omit_host_metadata, envoy.retry_host_predicates.previous_hosts
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.upstream.local_address_selector: envoy.upstream.local_address_selector.default_local_address_selector
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.matching.http.input: envoy.matching.inputs.cel_data_input, envoy.matching.inputs.destination_ip, envoy.matching.inputs.destination_port, envoy.matching.inputs.direct_source_ip, envoy.matching.inputs.dns_san, envoy.matching.inputs.request_headers, envoy.matching.inputs.request_trailers, envoy.matching.inputs.response_headers, envoy.matching.inputs.response_trailers, envoy.matching.inputs.server_name, envoy.matching.inputs.source_ip, envoy.matching.inputs.source_port, envoy.matching.inputs.source_type, envoy.matching.inputs.status_code_class_input, envoy.matching.inputs.status_code_input, envoy.matching.inputs.subject, envoy.matching.inputs.uri_san, query_params
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.udp_packet_writer: envoy.udp_packet_writer.default, envoy.udp_packet_writer.gso
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.resource_monitors: envoy.resource_monitors.fixed_heap, envoy.resource_monitors.injected_resource
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.thrift_proxy.protocols: auto, binary, binary/non-strict, compact, twitter
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.http.stateful_header_formatters: envoy.http.stateful_header_formatters.preserve_case, preserve_case
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.http.cache: envoy.extensions.http.cache.file_system_http_cache, envoy.extensions.http.cache.simple
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.matching.network.custom_matchers: envoy.matching.custom_matchers.trie_matcher
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.request_id: envoy.request_id.uuid
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.connection_handler: envoy.connection_handler.default
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.route.early_data_policy: envoy.route.early_data_policy.default
-[2026-04-20 10:39:04.858][1][info][main] [source/server/server.cc:432] envoy.common.key_value: envoy.key_value.file_based
-[2026-04-20 10:39:04.861][1][info][main] [source/server/server.cc:486] HTTP header map info:
-[2026-04-20 10:39:04.863][1][info][main] [source/server/server.cc:489] request header map: 664 bytes: :authority,:method,:path,:protocol,:scheme,accept,accept-encoding,access-control-request-headers,access-control-request-method,access-control-request-private-network,authentication,authorization,cache-control,cdn-loop,connection,content-encoding,content-length,content-type,expect,grpc-accept-encoding,grpc-timeout,if-match,if-modified-since,if-none-match,if-range,if-unmodified-since,keep-alive,origin,pragma,proxy-connection,proxy-status,referer,te,transfer-encoding,upgrade,user-agent,via,x-client-trace-id,x-envoy-attempt-count,x-envoy-decorator-operation,x-envoy-downstream-service-cluster,x-envoy-downstream-service-node,x-envoy-expected-rq-timeout-ms,x-envoy-external-address,x-envoy-force-trace,x-envoy-hedge-on-per-try-timeout,x-envoy-internal,x-envoy-ip-tags,x-envoy-is-timeout-retry,x-envoy-max-retries,x-envoy-original-path,x-envoy-original-url,x-envoy-retriable-header-names,x-envoy-retriable-status-codes,x-envoy-retry-grpc-on,x-envoy-retry-on,x-envoy-upstream-alt-stat-name,x-envoy-upstream-rq-per-try-timeout-ms,x-envoy-upstream-rq-timeout-alt-response,x-envoy-upstream-rq-timeout-ms,x-envoy-upstream-stream-duration-ms,x-forwarded-client-cert,x-forwarded-for,x-forwarded-host,x-forwarded-port,x-forwarded-proto,x-ot-span-context,x-request-id
-[2026-04-20 10:39:04.863][1][info][main] [source/server/server.cc:489] request trailer map: 120 bytes:
-[2026-04-20 10:39:04.863][1][info][main] [source/server/server.cc:489] response header map: 432 bytes: :status,access-control-allow-credentials,access-control-allow-headers,access-control-allow-methods,access-control-allow-origin,access-control-allow-private-network,access-control-expose-headers,access-control-max-age,age,cache-control,connection,content-encoding,content-length,content-type,date,etag,expires,grpc-message,grpc-status,keep-alive,last-modified,location,proxy-connection,proxy-status,server,transfer-encoding,upgrade,vary,via,x-envoy-attempt-count,x-envoy-decorator-operation,x-envoy-degraded,x-envoy-immediate-health-check-fail,x-envoy-ratelimited,x-envoy-upstream-canary,x-envoy-upstream-healthchecked-cluster,x-envoy-upstream-service-time,x-request-id
-[2026-04-20 10:39:04.863][1][info][main] [source/server/server.cc:489] response trailer map: 144 bytes: grpc-message,grpc-status
-[2026-04-20 10:39:04.921][1][info][main] [source/server/server.cc:861] runtime: layers:
- - name: static_layer
- static_layer:
- envoy:
- resource_limits:
- listener:
- main:
- connection_limit: 1048576
-[2026-04-20 10:39:04.922][1][info][admin] [source/server/admin/admin.cc:66] admin address: 127.0.0.1:9901
-[2026-04-20 10:39:04.922][1][info][config] [source/server/configuration_impl.cc:168] loading tracing configuration
-[2026-04-20 10:39:04.922][1][info][config] [source/server/configuration_impl.cc:124] loading 0 static secret(s)
-[2026-04-20 10:39:04.922][1][info][config] [source/server/configuration_impl.cc:130] loading 0 cluster(s)
-[2026-04-20 10:39:04.922][1][info][config] [source/server/configuration_impl.cc:138] loading 1 listener(s)
-[2026-04-20 10:39:04.923][1][warning][misc] [source/extensions/filters/network/http_connection_manager/config.cc:84] internal_address_config is not configured. The existing default behaviour will trust RFC1918 IP addresses, but this will be changed in next release. Please explictily config internal address config as the migration step.
-[2026-04-20 10:39:04.924][1][info][lua] [source/extensions/filters/http/lua/lua_filter.cc:228] envoy_on_response() function not found. Lua filter will not hook responses.
-[2026-04-20 10:39:04.925][1][info][config] [source/server/configuration_impl.cc:154] loading stats configuration
-[2026-04-20 10:39:04.925][1][info][runtime] [source/common/runtime/runtime_impl.cc:614] RTDS has finished initialization
-[2026-04-20 10:39:04.925][1][info][upstream] [source/common/upstream/cluster_manager_impl.cc:240] cm init: all clusters initialized
-[2026-04-20 10:39:04.925][1][warning][main] [source/server/server.cc:928] There is no configured limit to the number of allowed active downstream connections. Configure a limit in `envoy.resource_monitors.downstream_connections` resource monitor.
-[2026-04-20 10:39:04.925][1][info][main] [source/server/server.cc:950] all clusters initialized. initializing init manager
-[2026-04-20 10:39:04.925][1][info][config] [source/common/listener_manager/listener_manager_impl.cc:930] all dependencies initialized. starting workers
-[2026-04-20 10:39:04.933][1][info][main] [source/server/server.cc:969] starting main dispatch loop
diff --git a/site/static/logs/static/6800/nginx.log b/site/static/logs/static/6800/nginx.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/static/6800/pingora.log b/site/static/logs/static/6800/pingora.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/logs/static/6800/traefik.log b/site/static/logs/static/6800/traefik.log
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/static/new-leaderboard/index.html b/site/static/new-leaderboard/index.html
index d4dabb881..41062c5d9 100644
--- a/site/static/new-leaderboard/index.html
+++ b/site/static/new-leaderboard/index.html
@@ -80,12 +80,10 @@
.type-filter button[data-type="emerging"].on{background:rgba(59,115,196,.16); color:#2b5694}
.type-filter button[data-type="experimental"].on{background:rgba(217,142,43,.16); color:#8a5a12}
.type-filter button[data-type="engine"].on{background:rgba(203,95,81,.15); color:#b0463a}
- .type-filter button[data-type="infrastructure"].on{background:rgba(47,147,168,.18); color:#277482}
html[data-theme="dark"] .type-filter button[data-type="flagship"].on{background:rgba(46,158,106,.24); color:#5cc596}
html[data-theme="dark"] .type-filter button[data-type="emerging"].on{background:rgba(59,115,196,.30); color:#9bbdec}
html[data-theme="dark"] .type-filter button[data-type="experimental"].on{background:rgba(217,142,43,.28); color:#e8b066}
html[data-theme="dark"] .type-filter button[data-type="engine"].on{background:rgba(203,95,81,.24); color:#e89384}
- html[data-theme="dark"] .type-filter button[data-type="infrastructure"].on{background:rgba(47,147,168,.24); color:#6cc3d2}
.layout{display:grid; grid-template-columns:264px 1fr; align-items:start}
.nav{position:sticky; top:57px; align-self:start; height:calc(100vh - 57px); overflow-y:auto; border-right:1px solid var(--line); padding:.9rem .7rem 3rem; background:transparent; scrollbar-width:thin; scrollbar-color:var(--line) transparent}
@@ -245,7 +243,6 @@
.badge{font-size:.6rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; padding:.1rem .34rem; border-radius:5px; white-space:nowrap; flex:none}
/* type as a small colored square (no label) in tables; fixed lang slot keeps names aligned. .badge stays for the modal */
.tsq{width:10px; height:10px; border-radius:3px; flex:none; display:inline-block}
- .tsq-flagship{background:#2e9e6a} .tsq-emerging{background:#3b73c4} .tsq-experimental{background:#d98e2b} .tsq-engine{background:#cb5f51} .tsq-infrastructure{background:#2f93a8}
/* 'tuned' mode cue - yellow ring around the type square / badge */
.tsq.tuned, .badge.tuned{position:relative}
.tsq.tuned::after, .badge.tuned::after{content:""; position:absolute; top:0; bottom:0; right:calc(100% + 2px); width:4px; background:#c89a3c}
@@ -254,7 +251,6 @@
.b-emerging{background:rgba(59,115,196,.14); color:#2b5694} html[data-theme="dark"] .b-emerging{color:#9bbdec}
.b-experimental{background:rgba(217,142,43,.14); color:#8a5a12} html[data-theme="dark"] .b-experimental{color:#e8b066}
.b-engine{background:rgba(203,95,81,.13); color:#b0463a} html[data-theme="dark"] .b-engine{color:#e89384}
- .b-infrastructure{background:rgba(47,147,168,.14); color:#277482} html[data-theme="dark"] .b-infrastructure{color:#6cc3d2}
.meter{position:relative; display:flex; flex-direction:column; align-items:flex-end; gap:.28rem; padding:.5rem .55rem !important}
.meter .v{font-family:var(--mono); font-variant-numeric:tabular-nums; font-weight:600; font-size:.85rem}
@@ -398,7 +394,6 @@
-
@@ -493,13 +488,12 @@
if(pos.length && !pos.some(hit)) return false;
return true;
}
- function typeAbbr(t){ return {flagship:'flagship', emerging:'emerging', experimental:'experimental', engine:'engine', infrastructure:'infra'}[t] || t; }
+ function typeAbbr(t){ return {flagship:'flagship', emerging:'emerging', experimental:'experimental', engine:'engine'}[t] || t; }
var TYPE_TIP={
flagship:'Flagship - mature framework with an active development team, a solid ecosystem, and an established community around it; covers a complete test category.',
emerging:'Emerging - a real framework that doesn’t yet meet the full flagship bar (younger, minimal, or partial coverage).',
experimental:'Experimental - very new, unproven work. Ranked with frameworks but hidden until selected.',
- engine:'Engine - bare-metal HTTP implementation (raw sockets / low-level I/O). Ranked separately.',
- infrastructure:'Infrastructure - reverse proxies and static-file servers (e.g. nginx, h2o).'
+ engine:'Engine - bare-metal HTTP implementation (raw sockets / low-level I/O). Ranked separately.'
};
function typeTip(t){ return TYPE_TIP[t]||t; }
var TIP={
@@ -853,18 +847,18 @@
}
function saveTypes(){ try{ localStorage.setItem('lb-types', JSON.stringify(state.types)); }catch(e){} }
function saveTuned(){ try{ localStorage.setItem('lb-showtuned', state.showTuned?'1':'0'); }catch(e){} }
- // prod/tuned combine; engine & infra are exclusive (selected alone). Never empty.
+ // flagship/emerging combine; engine is exclusive (selected alone). Never empty.
function toggleType(t){
var s=state.types.slice();
- if(t==='engine' || t==='infrastructure'){ s=[t]; }
- else if(s.indexOf('engine')>=0 || s.indexOf('infrastructure')>=0){ s=[t]; }
+ if(t==='engine'){ s=[t]; }
+ else if(s.indexOf('engine')>=0){ s=[t]; }
else { var i=s.indexOf(t); if(i>=0){ if(s.length>1) s.splice(i,1); } else { s.push(t); } }
state.types=s; saveTypes(); render();
}
// ── COMPOSITE scoring (mirrors the canonical board) ─────
var MIXW={baseline:0.15, json:1, upload:10, static:2, async_db:10};
- function isScored(pid,fw){ var p=PROF[pid]; if(!p||p.scored===false) return false; var t=typeOf(fw); if(t==='engine')return !!p.engineScored; if(t==='infrastructure')return !!p.infraScored; return true; }
+ function isScored(pid,fw){ var p=PROF[pid]; if(!p||p.scored===false) return false; var t=typeOf(fw); if(t==='engine')return !!p.engineScored; return true; }
function aggregate(){
// avg rps/mem/bw over each profile's scored conns; tpl avg for api.
var avg={},amem={},abw={},atpl={};
@@ -1159,7 +1153,7 @@
if(e.target.closest('a')) return;
var row=e.target.closest('[data-fw-row]'); if(row) openModal(row.getAttribute('data-fw-row'));
});
- try{ var _vt=['flagship','emerging','experimental','engine','infrastructure']; var _t=JSON.parse(localStorage.getItem('lb-types')||'null'); if(_t&&_t.length){ _t=_t.filter(function(x){return _vt.indexOf(x)>=0;}); if(_t.length) state.types=_t; } }catch(e){}
+ try{ var _vt=['flagship','emerging','experimental','engine']; var _t=JSON.parse(localStorage.getItem('lb-types')||'null'); if(_t&&_t.length){ _t=_t.filter(function(x){return _vt.indexOf(x)>=0;}); if(_t.length) state.types=_t; } }catch(e){}
document.getElementById('typeFilter').addEventListener('click', function(e){ var b=e.target.closest('button[data-type]'); if(!b) return; toggleType(b.getAttribute('data-type')); });
try{ var _st=localStorage.getItem('lb-showtuned'); if(_st!==null) state.showTuned=_st==='1'; }catch(e){}
document.getElementById('tunedToggle').addEventListener('click', function(){ state.showTuned=!state.showTuned; saveTuned(); render(); });