58 lines
3.9 KiB
XML
58 lines
3.9 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 720" role="img" aria-labelledby="title desc">
|
|
<title id="title">Учебный маршрут диагностики между metric, trace и log event</title>
|
|
<desc id="desc">Сначала маленькая synthetic metric задаёт класс исхода. Затем общий trace ID ведёт к gateway и payment span, после чего log event с теми же trace и span IDs объясняет payment отказ. Карточка evidence сохраняет статус not-a-production-observation. Ветка trace ID как metric label перечёркнута.</desc>
|
|
<defs>
|
|
<marker id="arrow" markerWidth="12" markerHeight="12" refX="10" refY="6" orient="auto"><path d="M0 0L12 6L0 12Z" fill="#5b6cff"/></marker>
|
|
<style>
|
|
.bg { fill: #f7f8fc; }
|
|
.metric { fill: #fff4df; stroke: #d77a00; stroke-width: 3; }
|
|
.trace { fill: #e6eaff; stroke: #5b6cff; stroke-width: 3; }
|
|
.log { fill: #e8fbf5; stroke: #138b6d; stroke-width: 3; }
|
|
.evidence { fill: #f3ecff; stroke: #8b5cf6; stroke-width: 3; }
|
|
.label { font: 700 33px Arial, sans-serif; fill: #17213a; }
|
|
.sub { font: 500 24px Arial, sans-serif; fill: #42516c; }
|
|
.mono { font: 600 23px Menlo, Consolas, monospace; fill: #17213a; }
|
|
.tiny { font: 500 20px Arial, sans-serif; fill: #55627b; }
|
|
.arrow { fill: none; stroke: #5b6cff; stroke-width: 5; marker-end: url(#arrow); }
|
|
.dash { fill: none; stroke: #8b5cf6; stroke-width: 4; stroke-dasharray: 10 8; marker-end: url(#arrow); }
|
|
.cross { stroke: #dc3d4b; stroke-width: 7; stroke-linecap: round; }
|
|
</style>
|
|
</defs>
|
|
<rect class="bg" width="1200" height="720" rx="28"/>
|
|
<text x="56" y="68" class="label">Маршрут: симптом → причина → проверка → действие</text>
|
|
<text x="56" y="106" class="sub">Один fixed synthetic scenario; каждая стрелка требует отдельной реальной проверки позднее</text>
|
|
|
|
<rect x="54" y="160" width="244" height="220" rx="24" class="metric"/>
|
|
<text x="82" y="207" class="label">1. Metric</text>
|
|
<text x="82" y="247" class="mono">outcome=rejected</text>
|
|
<text x="82" y="282" class="mono">route=checkout</text>
|
|
<text x="82" y="330" class="tiny">вопрос: какой класс?</text>
|
|
|
|
<rect x="392" y="160" width="340" height="220" rx="24" class="trace"/>
|
|
<text x="420" y="207" class="label">2. Trace</text>
|
|
<text x="420" y="247" class="mono">synthetic-trace-A</text>
|
|
<text x="420" y="285" class="sub">gateway span → payment span</text>
|
|
<text x="420" y="330" class="tiny">вопрос: какой путь?</text>
|
|
|
|
<rect x="826" y="160" width="320" height="220" rx="24" class="log"/>
|
|
<text x="854" y="207" class="label">3. Log/event</text>
|
|
<text x="854" y="247" class="mono">same trace + span</text>
|
|
<text x="854" y="285" class="sub">authorization-rejected</text>
|
|
<text x="854" y="330" class="tiny">вопрос: что случилось?</text>
|
|
|
|
<path d="M300 270H382" class="arrow"/>
|
|
<path d="M734 270H816" class="arrow"/>
|
|
<text x="315" y="238" class="tiny">не per-request label</text>
|
|
<text x="748" y="238" class="tiny">correlation key</text>
|
|
|
|
<rect x="345" y="482" width="510" height="142" rx="24" class="evidence"/>
|
|
<text x="378" y="530" class="label">4. Evidence card</text>
|
|
<text x="378" y="570" class="mono">not-a-production-observation</text>
|
|
<text x="378" y="606" class="tiny">записать hypothesis и нужную проверку</text>
|
|
<path d="M985 382C967 438 842 459 798 478" class="dash"/>
|
|
|
|
<text x="70" y="473" class="mono" fill="#dc3d4b">trace_id as metric label</text>
|
|
<path d="M60 493L295 529M295 493L60 529" class="cross"/>
|
|
<text x="56" y="602" class="tiny">Не заменять missing correlation новым identifier в счётчике.</text>
|
|
</svg>
|