62 lines
3.9 KiB
XML
62 lines
3.9 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 480 680" role="img" aria-labelledby="title desc">
|
||
<title id="title">Как профиль workload превращается в evidence packet</title>
|
||
<desc id="desc">Вертикальная схема показывает карточку workload, четыре сегмента и evidence packet с endpoint, средой, данными и критерием остановки. Красная карточка отклоняет общее количество запросов без сценария. Схема не содержит HTTP, генератора или измерений latency.</desc>
|
||
<defs>
|
||
<marker id="arrow" markerWidth="10" markerHeight="10" refX="9" refY="5" orient="auto">
|
||
<path d="M 0 0 L 10 5 L 0 10 z" fill="#486581"/>
|
||
</marker>
|
||
<marker id="warn-arrow" markerWidth="10" markerHeight="10" refX="9" refY="5" orient="auto">
|
||
<path d="M 0 0 L 10 5 L 0 10 z" fill="#c53030"/>
|
||
</marker>
|
||
<style>
|
||
.bg { fill: #f8fafc; }
|
||
.title { fill: #102a43; font: 700 25px Arial, sans-serif; }
|
||
.subtitle { fill: #486581; font: 15px Arial, sans-serif; }
|
||
.card { fill: #ffffff; stroke: #829ab1; stroke-width: 2; }
|
||
.packet { fill: #ebf8ff; stroke: #3182ce; stroke-width: 2; }
|
||
.reject-card { fill: #fff5f5; stroke: #c53030; stroke-width: 2; }
|
||
.label { fill: #102a43; font: 700 17px Arial, sans-serif; }
|
||
.small { fill: #334e68; font: 14px Arial, sans-serif; }
|
||
.tiny { fill: #486581; font: 13px Arial, sans-serif; }
|
||
.arrow { fill: none; stroke: #486581; stroke-width: 3; marker-end: url(#arrow); }
|
||
.warn { fill: none; stroke: #c53030; stroke-width: 3; stroke-dasharray: 8 6; marker-end: url(#warn-arrow); }
|
||
.slot { fill: #4299e1; }
|
||
.accept { fill: #2f855a; }
|
||
.reject { fill: #c53030; }
|
||
</style>
|
||
</defs>
|
||
<rect class="bg" width="480" height="680" rx="22"/>
|
||
<text class="title" x="30" y="44">Evidence начинается до tool</text>
|
||
<text class="subtitle" x="30" y="70">План и наблюдение остаются рядом.</text>
|
||
|
||
<rect class="card" x="30" y="108" width="420" height="132" rx="14"/>
|
||
<text class="label" x="54" y="140">1. Карточка workload</text>
|
||
<text class="small" x="54" y="170">endpoint intent · data setup identity</text>
|
||
<text class="small" x="54" y="196">environment + constraint · stop criterion</text>
|
||
<text class="tiny" x="54" y="222">GET /fixture/neutral-resource · in-memory only · no HTTP</text>
|
||
|
||
<path class="arrow" d="M 240 240 L 240 276"/>
|
||
<rect class="card" x="30" y="282" width="420" height="150" rx="14"/>
|
||
<text class="label" x="54" y="314">2. Профиль: порядок visible</text>
|
||
<g transform="translate(54 324)">
|
||
<rect class="slot" x="0" y="0" width="18" height="18" rx="3"/>
|
||
<text class="small" x="28" y="15">warm-up: slots</text>
|
||
<rect class="accept" x="0" y="30" width="18" height="18" rx="3"/>
|
||
<text class="small" x="28" y="45">steady: accepted units</text>
|
||
<rect class="reject" x="0" y="60" width="18" height="18" rx="3"/>
|
||
<text class="small" x="28" y="75">step: flag + rejected units</text>
|
||
<rect class="slot" x="0" y="90" width="18" height="18" rx="3"/>
|
||
<text class="small" x="28" y="105">recovery: stop criterion can close</text>
|
||
</g>
|
||
|
||
<path class="arrow" d="M 240 432 L 240 476"/>
|
||
<rect class="packet" x="30" y="482" width="420" height="126" rx="14"/>
|
||
<text class="label" x="54" y="514">3. Evidence packet</text>
|
||
<text class="small" x="54" y="542">endpoint + data · environment identity · profile records</text>
|
||
<text class="small" x="54" y="568">accepted/rejected · stop state · diagnostic labels</text>
|
||
<text class="tiny" x="54" y="592">Synthetic units only: not latency, not throughput.</text>
|
||
|
||
<rect class="reject-card" x="30" y="626" width="420" height="32" rx="10"/>
|
||
<text class="small" x="46" y="647">Total без scenario → отклонить: не workload model.</text>
|
||
</svg>
|