Files
technical-visualization-haness/examples/03-query-fanout/metrics-query-fanout.svg
T

99 lines
14 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" width="1440" height="560" viewBox="0 0 1440 560" role="img" aria-labelledby="title desc">
<title id="title">Query fan-out</title>
<desc id="desc">사용자 쿼리를 파싱한 뒤 시간 범위와 필터를 기준으로 세 개의 저장소 샤드에 fan-out하는 데이터 조회 구조.</desc>
<metadata>{&quot;generator&quot;:&quot;examples/build_examples.py&quot;,&quot;version&quot;:&quot;0.3.0&quot;,&quot;canvas_policy&quot;:&quot;diagram-only&quot;,&quot;decorative_effects&quot;:false}</metadata>
<defs>
<marker id="arrow-ink" markerWidth="10" markerHeight="8" refX="9" refY="4" orient="auto" markerUnits="strokeWidth"><path d="M 0 0 L 10 4 L 0 8 z" fill="#24272B"/></marker>
<marker id="arrow-muted" markerWidth="10" markerHeight="8" refX="9" refY="4" orient="auto" markerUnits="strokeWidth"><path d="M 0 0 L 10 4 L 0 8 z" fill="#667085"/></marker>
<marker id="arrow-blue" markerWidth="10" markerHeight="8" refX="9" refY="4" orient="auto" markerUnits="strokeWidth"><path d="M 0 0 L 10 4 L 0 8 z" fill="#1677FF"/></marker>
<marker id="arrow-green" markerWidth="10" markerHeight="8" refX="9" refY="4" orient="auto" markerUnits="strokeWidth"><path d="M 0 0 L 10 4 L 0 8 z" fill="#00A86B"/></marker>
<marker id="arrow-red" markerWidth="10" markerHeight="8" refX="9" refY="4" orient="auto" markerUnits="strokeWidth"><path d="M 0 0 L 10 4 L 0 8 z" fill="#D94B4B"/></marker>
<marker id="arrow-purple" markerWidth="10" markerHeight="8" refX="9" refY="4" orient="auto" markerUnits="strokeWidth"><path d="M 0 0 L 10 4 L 0 8 z" fill="#7556D8"/></marker>
<marker id="arrow-white" markerWidth="10" markerHeight="8" refX="9" refY="4" orient="auto" markerUnits="strokeWidth"><path d="M 0 0 L 10 4 L 0 8 z" fill="#FFFFFF"/></marker>
<marker id="arrow-yellow" markerWidth="10" markerHeight="8" refX="9" refY="4" orient="auto" markerUnits="strokeWidth"><path d="M 0 0 L 10 4 L 0 8 z" fill="#E7C51D"/></marker>
</defs>
<rect width="1440" height="560" fill="#FFFFFF"/>
<circle cx="55" cy="245" r="13.2" fill="none" stroke="#4B5563" stroke-width="2.2" />
<path d="M 27.5 297.8 C 30.8 269.2, 79.2 269.2, 82.5 297.8" fill="none" stroke="#4B5563" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" />
<path d="M 27.5 297.8 L 82.5 297.8" fill="none" stroke="#4B5563" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" />
<rect x="45" y="35" width="475" height="105" fill="#FFFFFF" stroke="#6B7280" stroke-width="1.5" rx="16" />
<polygon points="82,140 105,140 91,185" fill="#FFFFFF" stroke="#6B7280" stroke-width="1.3" />
<text x="78" y="69" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="13" font-weight="500" fill="#667085" text-anchor="start">사용자 범위 쿼리</text>
<text x="78" y="97" font-family='&quot;Noto Sans Mono CJK KR&quot;, &quot;D2Coding&quot;, monospace' font-size="16" font-weight="600" fill="#24272B" text-anchor="start">rate(http_requests_total{container=&quot;search-api&quot;}[5m])</text>
<text x="78" y="122" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="12" font-weight="450" fill="#667085" text-anchor="start">2026/06/22 15:00 15:10</text>
<path d="M 92 245 L 260 245" fill="none" stroke="#24272B" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow-ink)" />
<rect x="260" y="205" width="180" height="80" fill="#E9F8F0" stroke="#00A86B" stroke-width="2" rx="8" />
<text x="350" y="250" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="17" font-weight="700" fill="#087A4E" text-anchor="middle">vmselect</text>
<rect x="300" y="325" width="100" height="44" fill="#FFFFFF" stroke="#A7ADB5" stroke-width="1.2" rx="8" />
<text x="350" y="352" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="12" font-weight="700" fill="#24272B" text-anchor="middle">query parser</text>
<path d="M 350 285 L 350 325" fill="none" stroke="#A7ADB5" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" />
<path d="M 440 245 L 690 245" fill="none" stroke="#24272B" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
<rect x="448.7" y="218" width="232.5" height="21" fill="#FFFFFF" rx="2" />
<text x="565" y="232" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="12" font-weight="600" fill="#24272B" text-anchor="middle">FILTERS &amp; TIMERANGE(start, end)</text>
<circle cx="690" cy="245" r="4" fill="#24272B" />
<rect x="820" y="35" width="550" height="135" fill="#DDF1FF" stroke="#2585C7" stroke-width="1.8" rx="10" />
<rect x="845" y="72" width="58" height="33" fill="#0B659D" />
<ellipse cx="874" cy="72" rx="29" ry="11" fill="#0B659D" stroke="#0B659D" stroke-width="1.6" />
<path d="M 845 72 L 845 105" fill="none" stroke="#0B659D" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" />
<path d="M 903 72 L 903 105" fill="none" stroke="#0B659D" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" />
<path d="M 845 105 C 856.6 118, 891.4 118, 903 105" fill="none" stroke="#0B659D" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" />
<text x="874" y="91.5" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="16" font-weight="700" fill="#24272B" text-anchor="middle"></text>
<rect x="930" y="70" width="105" height="55" fill="#BFE7FF" stroke="#1778B7" stroke-width="1.5" rx="8" />
<text x="982.5" y="102.5" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="15" font-weight="700" fill="#24272B" text-anchor="middle">IndexDB</text>
<rect x="1080" y="70" width="100" height="55" fill="#BFE7FF" stroke="#1778B7" stroke-width="1.5" rx="8" />
<text x="1130" y="102.5" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="15" font-weight="700" fill="#24272B" text-anchor="middle">TSID</text>
<rect x="1230" y="70" width="100" height="55" fill="#BFE7FF" stroke="#1778B7" stroke-width="1.5" rx="8" />
<text x="1280" y="102.5" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="15" font-weight="700" fill="#24272B" text-anchor="middle">Data</text>
<path d="M 903 97 L 930 97" fill="none" stroke="#24272B" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow-ink)" />
<path d="M 1035 97 L 1080 97" fill="none" stroke="#24272B" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow-ink)" />
<path d="M 1180 97 L 1230 97" fill="none" stroke="#24272B" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow-ink)" />
<text x="830" y="154" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="13" font-weight="600" fill="#174D6B" text-anchor="start">vmstorage A</text>
<path d="M 690 245 L 820 102" fill="none" stroke="#24272B" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow-ink)" />
<rect x="820" y="205" width="550" height="135" fill="#DDF1FF" stroke="#2585C7" stroke-width="1.8" rx="10" />
<rect x="845" y="242" width="58" height="33" fill="#0B659D" />
<ellipse cx="874" cy="242" rx="29" ry="11" fill="#0B659D" stroke="#0B659D" stroke-width="1.6" />
<path d="M 845 242 L 845 275" fill="none" stroke="#0B659D" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" />
<path d="M 903 242 L 903 275" fill="none" stroke="#0B659D" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" />
<path d="M 845 275 C 856.6 288, 891.4 288, 903 275" fill="none" stroke="#0B659D" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" />
<text x="874" y="261.5" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="16" font-weight="700" fill="#24272B" text-anchor="middle"></text>
<rect x="930" y="240" width="105" height="55" fill="#BFE7FF" stroke="#1778B7" stroke-width="1.5" rx="8" />
<text x="982.5" y="272.5" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="15" font-weight="700" fill="#24272B" text-anchor="middle">IndexDB</text>
<rect x="1080" y="240" width="100" height="55" fill="#BFE7FF" stroke="#1778B7" stroke-width="1.5" rx="8" />
<text x="1130" y="272.5" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="15" font-weight="700" fill="#24272B" text-anchor="middle">TSID</text>
<rect x="1230" y="240" width="100" height="55" fill="#BFE7FF" stroke="#1778B7" stroke-width="1.5" rx="8" />
<text x="1280" y="272.5" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="15" font-weight="700" fill="#24272B" text-anchor="middle">Data</text>
<path d="M 903 267 L 930 267" fill="none" stroke="#24272B" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow-ink)" />
<path d="M 1035 267 L 1080 267" fill="none" stroke="#24272B" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow-ink)" />
<path d="M 1180 267 L 1230 267" fill="none" stroke="#24272B" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow-ink)" />
<text x="830" y="324" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="13" font-weight="600" fill="#174D6B" text-anchor="start">vmstorage B</text>
<path d="M 690 245 L 820 272" fill="none" stroke="#24272B" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow-ink)" />
<rect x="820" y="375" width="550" height="135" fill="#DDF1FF" stroke="#2585C7" stroke-width="1.8" rx="10" />
<rect x="845" y="412" width="58" height="33" fill="#0B659D" />
<ellipse cx="874" cy="412" rx="29" ry="11" fill="#0B659D" stroke="#0B659D" stroke-width="1.6" />
<path d="M 845 412 L 845 445" fill="none" stroke="#0B659D" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" />
<path d="M 903 412 L 903 445" fill="none" stroke="#0B659D" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" />
<path d="M 845 445 C 856.6 458, 891.4 458, 903 445" fill="none" stroke="#0B659D" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" />
<text x="874" y="431.5" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="16" font-weight="700" fill="#24272B" text-anchor="middle"></text>
<rect x="930" y="410" width="105" height="55" fill="#BFE7FF" stroke="#1778B7" stroke-width="1.5" rx="8" />
<text x="982.5" y="442.5" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="15" font-weight="700" fill="#24272B" text-anchor="middle">IndexDB</text>
<rect x="1080" y="410" width="100" height="55" fill="#BFE7FF" stroke="#1778B7" stroke-width="1.5" rx="8" />
<text x="1130" y="442.5" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="15" font-weight="700" fill="#24272B" text-anchor="middle">TSID</text>
<rect x="1230" y="410" width="100" height="55" fill="#BFE7FF" stroke="#1778B7" stroke-width="1.5" rx="8" />
<text x="1280" y="442.5" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="15" font-weight="700" fill="#24272B" text-anchor="middle">Data</text>
<path d="M 903 437 L 930 437" fill="none" stroke="#24272B" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow-ink)" />
<path d="M 1035 437 L 1080 437" fill="none" stroke="#24272B" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow-ink)" />
<path d="M 1180 437 L 1230 437" fill="none" stroke="#24272B" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow-ink)" />
<text x="830" y="494" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="13" font-weight="600" fill="#174D6B" text-anchor="start">vmstorage C</text>
<path d="M 690 245 L 820 442" fill="none" stroke="#24272B" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow-ink)" />
<rect x="220" y="415" width="380" height="110" fill="#FAFAFA" stroke="#E3E5E8" stroke-width="1" rx="6" />
<text x="245" y="445" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="10" font-weight="700" fill="#858B94" text-anchor="start">FUNC</text>
<text x="245" y="475" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="13" font-weight="600" fill="#24272B" text-anchor="start">rate</text>
<text x="355" y="445" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="10" font-weight="700" fill="#858B94" text-anchor="start">FILTERS</text>
<text x="355" y="475" font-family='&quot;Noto Sans Mono CJK KR&quot;, &quot;D2Coding&quot;, monospace' font-size="11" font-weight="500" fill="#24272B" text-anchor="start">
<tspan x="355" dy="0">__name__=&quot;http_requests_total&quot;</tspan>
<tspan x="355" dy="15.9">container=&quot;search-api&quot;</tspan>
</text>
<text x="545" y="445" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="10" font-weight="700" fill="#858B94" text-anchor="start">WINDOW</text>
<text x="545" y="475" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="13" font-weight="600" fill="#24272B" text-anchor="start">5m</text>
</svg>