Medic for Apache Spark - First Aid for Failing Jobs - Drasko Profirovic, Pinterest
ํ ์ค ํต์ฌ
Pinterest๋ Spark ์คํจ ์์ธ์ ์๋์ผ๋ก ์ง๋จํ๋ Medic๋ฅผ MCP, ํ๊ฐ ํ๋ค์ค, ๋ก๊ทธยท๋ฉํธ๋ฆญ ์ฒ๋ฆฌ ๊ฐ์ , ๋ฉํฐ ์์ด์ ํธ ๊ตฌ์กฐ๋ก ๊ณ ๋ํํด, ์ฌ๋์ด ํ๋ ๋ํดํ ์ฅ์ ๋ถ์์ ์ฌํ ๊ฐ๋ฅํ๊ณ ํ์ฅ ๊ฐ๋ฅํ ์ง๋จ ์์คํ ์ผ๋ก ๋ฐ๊ฟจ๋ค.
์๊ฐ๋ณ ์์ฝ
-
0:01
Spark ์ฅ์ ์ง์์ ๋ถ์ฐ ์์คํ ํน์ฑ์ ์์ธ ํ์ ์ด ์ด๋ ต๊ณ ์ฐ์ ์์ ์ถฉ๋๋ ์ฆ์์, ์ฌ๋์ด ์ฆ๋ตํ๊ธฐ๋ณด๋ค ํ์ฅ ๊ฐ๋ฅํ ์ง๋จ ์์ด์ ํธ๊ฐ ํ์ํ๋ค. ๋ชฉํ๋ "์ job์ด ์คํจํ๋๊ฐ"์ ๋ํด ๊ทผ๊ฑฐ๊ฐ ์๋ ๋ฆฌํฌํธ์ ์ํฉ์ ๋ง๋ ์์ ์์ ์ ๊ณตํ๋ ๊ฒ์ด๋ค.
-
2:00
์ด๊ธฐ์๋ MCP๋ก ๋ฐ์ดํฐ ๋ฆฌ์์ค๋ฅผ ์ฐ๊ฒฐํ๊ณ ๋จ์ผ React ์์ด์ ํธ์ ๋ฌธ์ ํด๊ฒฐ ํ๋กฌํํธ๋ฅผ ๋ชฐ์๋ฃ๋ ๋ฐฉ์์ผ๋ก ์์ํ์ง๋ง, ๋ต๋ณ ํ์ง์ด ๋ค์ญ๋ ์ญํ๊ณ ํ๋กฌํํธ ํ๋์ด ํ๊ณ์ ๋ถ๋ชํ๋ค. ๋์ฉ๋ ๋ก๊ทธ์ ํ๋ก๋์ ์ปจํ ์คํธ๋ context window๋ฅผ ์ฝ๊ฒ ์๋ชจํด ์ถ๋ก ์ด ๋ฉ์ถ๋ ๋ฌธ์ ๊ฐ ๋๋ฌ๋ฌ๋ค.
-
4:01
ํ์ง์ ๋์ด์ฌ๋ฆฌ๊ธฐ ์ํด ๊ด์ธก์ฑ๊ณผ ํ ์คํธ ๊ฐ๋ฅ์ฑ์ ๋จผ์ ๊ฐํํ๋ค. OpenTelemetry๋ฅผ LangFuse์ ๋ณด๋ด ์คํ ๊ณผ์ ์ ์ถ์ ํ๊ณ , production state๋ฅผ record/playback ํ๋ end-to-end test harness์ offline eval๋ก ๋ฆฌํฌํธ ํ์ง์ ์์นํํด ํ๊ท๋ฅผ ๋ง์๋ค.
-
6:02
๋ก๊ทธ๋ ๋จ์ํ regex ํํฐ๋ก๋ ํ์ฅ๋์ง ์์ exception classifier pipeline์ ๋์ ํ๋ค. ์ฑ๊ณตํ job์ ์์ฃผ ๋ฑ์ฅํ๋ ์์ธ๋ฅผ red herring์ผ๋ก ํ์ตํด ๊ฑธ๋ฌ๋ด๊ณ , ์์ K๊ฐ์ ์์ถ ์์ธ์ ํน์ ์์ธ์ ์ ์ฒด ๋ก๊ทธ๋ง MCP ๋๊ตฌ๋ก ์ ๊ณตํจ์ผ๋ก์จ ์ ํธ ๋๋น ์ก์์ ํฌ๊ฒ ๋์๋ค.
-
7:00
๋ฉํธ๋ฆญ์ ์์ ์๊ณ์ด์ ๊ทธ๋๋ก ๋ฃ๋ ๋์ quarantine sub-agent๊ฐ ๊ทธ๋ํ ์ด๋ฏธ์ง๋ก ์์ฝํด context ํจ์จ์ ๋์๋ค. ์ดํ ๋จ์ผ ์์ด์ ํธ๋ฅผ ์ญํ ๋ถ๋ฆฌ๋ multi-agent ๊ตฌ์กฐ๋ก ๋ฐ๊พธ๊ณ , triageยทresearchยทhealerยทsupervisor๊ฐ ๋ถ์ ํ๋ฉด์ ์คํจ ์์ธ ์ถ์ , ๊ทผ๊ฑฐ ์์ง, runbook ๊ธฐ๋ฐ ๋ณต๊ตฌ ์ ์, ์ต์ข ๋ณด๊ณ ์ ์กฐ๋ฆฝ๊น์ง ๋ ์์ ์ ์ผ๋ก ์ํํ๊ฒ ๋๋ค.
์ค๋ฌด ์ธ์ฌ์ดํธ
- ์ฅ์ ์ง๋จ ์์ด์ ํธ์ ์ฑ๋ฅ์ ๋ชจ๋ธ ์์ฒด๋ณด๋ค๋ ๋ก๊ทธยท๋ฉํธ๋ฆญ ์ ์ฒ๋ฆฌ, context budget, ์ถ๋ ฅ ์ ์ฝ, ํ๊ฐ ์ฒด๊ณ์์ ๋ ํฌ๊ฒ ์ข์ฐ๋๋ค.
- ํ๋กฌํํธ ํ๋๋ก ๋ชจ๋ ์ผ์ ์ํค๊ธฐ๋ณด๋ค ์ญํ ๋ณ ์์ด์ ํธ์ ์ ์ฉ ๋๊ตฌ๋ฅผ ๋๋๋ฉด ํ์งยท์ ์ง๋ณด์ยทํ๊ท ํ ์คํธ๊ฐ ๋์์ ์ข์์ง๋ค.
- ํ๋ก๋์ ์๋ํ๋ ๊ฐ์ผ๋ก ๊ฐ์ ํ๊ธฐ๋ณด๋ค record/playback ํ ์คํธ์ offline eval๋ก ํ์ง์ ๊ณ๋ํํด์ผ ์์ ํ๊ฒ ํ์ฅ๋๋ค.