الملفات
Mohamed Moustafa c653222887 first commit
2026-07-27 23:27:12 +03:00

71 أسطر
4.1 KiB
XML

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 900 380" font-family="Segoe UI, Arial, sans-serif">
<defs>
<linearGradient id="pbg" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" style="stop-color:#0f172a"/>
<stop offset="100%" style="stop-color:#1e293b"/>
</linearGradient>
<filter id="psh" x="-10%" y="-10%" width="120%" height="130%">
<feDropShadow dx="0" dy="3" stdDeviation="5" flood-opacity="0.3"/>
</filter>
</defs>
<rect width="900" height="380" fill="url(#pbg)" rx="12"/>
<!-- Title -->
<text x="450" y="38" text-anchor="middle" fill="#e2e8f0" font-size="18" font-weight="700">Q2: OOMKilled Incident — Postmortem Timeline</text>
<text x="450" y="58" text-anchor="middle" fill="#94a3b8" font-size="11">45-minute outage caused by repeated memory limit breaches</text>
<!-- Timeline line -->
<line x1="60" y1="100" x2="60" y2="340" stroke="#334155" stroke-width="3"/>
<!-- Timeline nodes -->
<!-- 10:00 - Deploy -->
<circle cx="60" cy="110" r="8" fill="#3b82f6"/>
<text x="80" y="108" fill="#3b82f6" font-size="11" font-weight="700">10:00</text>
<text x="80" y="124" fill="#e2e8f0" font-size="10">New version deployed</text>
<text x="80" y="138" fill="#94a3b8" font-size="9">Deploy triggered normally</text>
<!-- 10:05 - Memory spike -->
<circle cx="60" cy="165" r="8" fill="#eab308"/>
<text x="80" y="163" fill="#eab308" font-size="11" font-weight="700">10:05</text>
<text x="80" y="179" fill="#e2e8f0" font-size="10">Memory usage spikes</text>
<text x="80" y="193" fill="#94a3b8" font-size="9">Rapid memory consumption detected</text>
<!-- 10:10 - First OOM -->
<circle cx="60" cy="225" r="8" fill="#ef4444"/>
<text x="80" y="223" fill="#ef4444" font-size="11" font-weight="700">10:10</text>
<text x="80" y="239" fill="#e2e8f0" font-size="10">First OOMKilled event</text>
<text x="80" y="253" fill="#94a3b8" font-size="9">Container killed by Linux OOM Killer</text>
<!-- 10:11 - Restart loop -->
<circle cx="60" cy="280" r="8" fill="#ef4444"/>
<text x="80" y="278" fill="#ef4444" font-size="11" font-weight="700">10:11 - 10:35</text>
<text x="80" y="294" fill="#e2e8f0" font-size="10">Crash loop continues</text>
<text x="80" y="308" fill="#94a3b8" font-size="9">Multiple restart attempts, each hitting memory limit</text>
<!-- 10:35 - Team investigates -->
<circle cx="60" cy="335" r="8" fill="#eab308"/>
<text x="80" y="333" fill="#eab308" font-size="11" font-weight="700">10:35</text>
<text x="80" y="349" fill="#e2e8f0" font-size="10">Team identifies root cause</text>
<text x="80" y="363" fill="#94a3b8" font-size="9">Memory leak found, fix deployed</text>
<!-- Right side: Root Cause Box -->
<rect x="500" y="85" width="380" height="130" rx="10" fill="#1e293b" stroke="#ef4444" stroke-width="1.5" filter="url(#psh)"/>
<text x="520" y="112" fill="#ef4444" font-size="12" font-weight="700">Root Cause</text>
<line x1="520" y1="122" x2="860" y2="122" stroke="#334155" stroke-width="0.5"/>
<text x="520" y="142" fill="#94a3b8" font-size="10">• Application exceeded memory limit</text>
<text x="520" y="160" fill="#94a3b8" font-size="10">• Memory leak in new version</text>
<text x="520" y="178" fill="#94a3b8" font-size="10">• No memory monitoring/alerting</text>
<text x="520" y="196" fill="#94a3b8" font-size="10">• Auto-restart created crash loop</text>
<!-- Right side: Impact Box -->
<rect x="500" y="230" width="380" height="80" rx="10" fill="#1e293b" stroke="#f97316" stroke-width="1.5" filter="url(#psh)"/>
<text x="520" y="257" fill="#f97316" font-size="12" font-weight="700">Impact</text>
<line x1="520" y1="267" x2="860" y2="267" stroke="#334155" stroke-width="0.5"/>
<text x="520" y="287" fill="#94a3b8" font-size="10">45 min downtime • 100% request failure • 12+ restarts</text>
<!-- Right side: Fix Box -->
<rect x="500" y="325" width="380" height="40" rx="10" fill="#1e293b" stroke="#22c55e" stroke-width="1.5" filter="url(#psh)"/>
<text x="690" y="350" text-anchor="middle" fill="#22c55e" font-size="11" font-weight="600">Fixed: Memory leak patched + limits increased</text>
</svg>