Scenario Library KO - k-p2p-lab/kpl-v3 GitHub Wiki
Wiki home โบ ํ๊ตญ์ด ๋ฌธ์ ยท ์์ด ์๋ฌธ
๋ฌธ์ ์๋ด ยท ์์ค ์ ์ฅ์
๋์๋ณด๋๋ ์ฌ์ฌ์ฉํ ๊ฒ์ฆ๋ YAML ์๋๋ฆฌ์ค๋ฅผ Controller์ ์ ์ฅํฉ๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์คํ ๊ฒฐ๊ณผ๋ ์๋ก ๋ ๋ฆฝ์ ์ ๋๋ค. ์๋๋ฆฌ์ค ์ ์ฅ๋ง์ผ๋ก ์คํ๋์ง ์๊ณ ํธ์งํ YAML์ ์คํํด๋ ์๋ ์ ์ฅ๋์ง ์์ผ๋ฉฐ, ์ด๋ ํ์ชฝ์ ์ญ์ ํด๋ ๋ค๋ฅธ ์ชฝ์ ์ญ์ ๋์ง ์์ต๋๋ค.
- Run experiment์ ์ฝ๋๋ค. ํ์ฌ Controller์์ Saved scenarios ๋ชฉ๋ก์ ๋ถ๋ฌ์ต๋๋ค.
- + New๋ฅผ ๋๋ฅด๊ณ ์์๋ณด๊ธฐ ์ฌ์ด Saved scenario name์ ์ ๋ ฅํ ๋ค YAML์ ํธ์งํฉ๋๋ค.
- Save scenario๋ฅผ ๋๋ฆ ๋๋ค. ์ ํญ๋ชฉ์ด ์ ํ๋ ์ ์ฅ ์๋๋ฆฌ์ค๊ฐ ๋ฉ๋๋ค.
- ๋ชฉ๋ก์์ ์๋๋ฆฌ์ค ์ด๋ฆ(Load โ)์ ๋๋ฅด๋ฉด ํด๋น ์ด๋ฆ๊ณผ YAML๋ก ํธ์ง๊ธฐ ๋ด์ฉ์ ๊ต์ฒดํฉ๋๋ค. ์ ํํ ํญ๋ชฉ์ Editing ํ์์ ํจ๊ป ๊ฐ์กฐ๋ฉ๋๋ค.
- ์ด๋ฆ ๋๋ YAML์ ํธ์งํ๊ณ Save changes๋ฅผ ๋๋ฅด๋ฉด ์ ํํ ํญ๋ชฉ์ ๊ฐฑ์ ํฉ๋๋ค. ์๋ณธ์ ์ ์งํ ์ฑ ์ ํญ๋ชฉ์ ๋ง๋ค๋ ค๋ฉด Save as new๋ฅผ ๋๋ฆ ๋๋ค.
- ํด์งํต ์์ด์ฝ๊ณผ Confirm delete๋ฅผ ์ฐจ๋ก๋ก ๋๋ฌ ํญ๋ชฉ์ ์ญ์ ํฉ๋๋ค. Cancel์ ๋๋ฅด๋ฉด ์ญ์ ๋ฅผ ์ทจ์ํฉ๋๋ค. ์๋ก๊ณ ์นจ ์์ด์ฝ์ Controller์์ ๋ชฉ๋ก์ ๋ค์ ์ฝ์ต๋๋ค.
๋๋ฐ์ด์ค์ ํ์ผ์ ์ถ๊ฐํ๋ ค๋ฉด Scenario editor ํค๋์ Choose files๋ฅผ ๋๋ฆ
๋๋ค. ๋ชจ๋ฐ์ผ์์๋ ๋จผ์ + New ๋๋ Editor๋ฅผ ์ฝ๋๋ค. UTF-8 .yaml ๋๋ .yml ํ์ผ์ ์ ํํ๋ฉฐ, ํ์ผ๋ง๋ค 1 MiB ์ดํ์ด๊ณ ํ ๋ฒ์ ์ต๋ 100๊ฐยท์ด 16 MiB๊น์ง ์ง์ํฉ๋๋ค. ์ ์ฅ ์ด๋ฆ์ ๋ง์ง๋ง ํ์ฅ์๋ฅผ ๋บ ํ์ผ๋ช
์
๋๋ค. ์๋ฅผ ๋ค์ด mesh.er.yaml์ mesh.er๊ฐ ๋ฉ๋๋ค. YAML ์ต์์ name์ ๋ฐ๊พธ์ง ์์ต๋๋ค.
- ํ ํ์ผ: ๋ด์ฉ์ด ์ ๋ฏธ์ ์ฅ ์ด์์ผ๋ก ๋ค์ด๊ฐ๋๋ค. ์ด๋ฆ๊ณผ YAML์ ๊ฒํ ํ๊ณ Validate๋ก ํ์ธํ ๋ค Save scenario๋ก ์ ์ฅํฉ๋๋ค.
- ์ฌ๋ฌ ํ์ผ: ํ์ฌ ํธ์ง ์ด์์ ๋ณด์กดํ ์ฑ ํ์ผ๋ณ ์ ์ฅ ์ด๋ฆ๊ณผ ์ํ๋ฅผ ๊ฒํ ๋ชฉ๋ก์ ํ์ํฉ๋๋ค. ์ ์ธํ ํ์ผ์ ์ฒดํฌ๋ฅผ ํด์ ํ๊ณ Import selected๋ฅผ ๋๋ฅด๋ฉด ์ ํํ ํ์ผ์ ์ฐจ๋ก๋ก ๊ฒ์ฆยท์ ์ฅํฉ๋๋ค. ๋น ํ์ผ, ์ฝ๊ธฐ ์คํจ, ์๋ชป๋ UTF-8, ํฌ๊ธฐ ์ด๊ณผ, ์ ํ ๋ชฉ๋ก ์์ ์ ์ฅ ์ด๋ฆ ์ค๋ณต์ ํ์ผ๋ณ๋ก ํ์ํฉ๋๋ค. Cancel ๋๋ Done์ ๋๋ฅด๋ฉด ๋ณด์กดํ ์ด์์ผ๋ก ๋์๊ฐ๋๋ค.
ํ์ผ ์ ํ๋ง์ผ๋ก ์ ์ฅํ๊ฑฐ๋ ์คํํ์ง ์์ต๋๋ค. ๊ฐ์ ธ์ค๋ ์ค Stop after current๋ฅผ ๋๋ฅด๋ฉด ํ์ฌ ์์ฒญ์ ๋ง์น ๋ค ๋ฉ์ถ๊ณ ๋๋จธ์ง ํ์ผ์ ๊ฒํ ๋ชฉ๋ก์ ๋จ๊น๋๋ค. ์ ์ฅ ์ค ํธ์ง๊ธฐ๋ฅผ ๋ซ์๋ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๋ฉ์ถ๋ฉฐ ๋ค์ ์ด๋ฉด ๊ฒํ ๋ชฉ๋ก๊ณผ ์ ์ฅ์ด ํ์ธ๋ ์ํ๋ฅผ ์ ์งํฉ๋๋ค. ์ต์ด ๋๋ฐ์ด์ค ์ฝ๊ธฐ ์ค ๋ซ์ผ๋ฉด ์ด์์ ๋ฐ๊พธ์ง ์๊ณ ์ฝ๊ธฐ๋ฅผ ์ทจ์ํฉ๋๋ค. ์ด๋ฏธ ์ ์ฅํ ํ์ผ์ ์ฌ์๋์์ ์ ์ธํฉ๋๋ค. ๊ทธ๋ฃน ํ ๋น๋ง ์คํจํ ๊ฒฝ์ฐ Import selected๋ ์๋๋ฆฌ์ค๋ฅผ ๋ค์ ์์ฑํ์ง ์๊ณ ํ ๋น๋ง ์ฌ์๋ํฉ๋๋ค. Status unknown์ ์๋ฒ๊ฐ ์ด๋ฏธ ์ ์ฅํ์ ์ ์๋ค๋ ๋ป์ผ๋ก, ์ฒ๋ฆฌ๋ฅผ ๋ฉ์ถ๋ฉฐ ํด๋น ๊ฒํ ๋ชฉ๋ก์์๋ ๊ทธ ํ์ผ์ ์ฌ์๋ํ ์ ์์ต๋๋ค. ๊ฒํ ๋ฅผ ๋ซ๊ณ ์ ์ฅ ๋ชฉ๋ก์ ์๋ก๊ณ ์นจํ์ฌ ์ ์ฅ ์ฌ๋ถ๋ฅผ ํ์ธํ ๋ค ํ์ํ ํ์ผ๋ง ๋ค์ ์ ํํ์ญ์์ค.
PC์์๋ ๋ชฉ๋ก๊ณผ ํธ์ง๊ธฐ๋ฅผ ๋๋ํ ํ์ํฉ๋๋ค. ๋ชจ๋ฐ์ผ์์๋ Saved scenarios์ Editor๋ฅผ ์ ํํ๋ฉฐ, ํญ๋ชฉ์ ๋ถ๋ฌ์ค๋ฉด ํค๋ณด๋๋ฅผ ์๋์ผ๋ก ์ด์ง ์๊ณ ํธ์ง ํ๋ฉด์ผ๋ก ์ด๋ํฉ๋๋ค. ์คํ ๋ฒํผ์ ์ด๋ ํ๋ฉด์์๋ ํ๋จ์ ์ ์ง๋ฉ๋๋ค. ์ด๋ฆ์ด๋ ID๋ก ๊ฒ์ํ๋ฉด ํ์ฌ ํธ์ง ๋ด์ฉ๊ณผ ์ต๊ทผ ์์ ์์๋ฅผ ์ ์งํ๋ฉด์ ๋ชฉ๋ก์ ํํฐ๋งํ๊ณ ์ผ์นํ๋ ํญ๋ชฉ ์๋ฅผ ํ์ํฉ๋๋ค. ๊ฒ์์ ์ง์ฐ๋ฉด ์ ์ฒด ๋ชฉ๋ก์ ๋ค์ ๋ณผ ์ ์์ต๋๋ค.
New๋ ํธ์ง๊ธฐ๋ฅผ ๊ธฐ๋ณธ ์์ ๋ก ์ด๊ธฐํํ๊ณ ์ ํํ ์ ์ฅ ํญ๋ชฉ์ ํด์ ํฉ๋๋ค. ๋ค๋ฅธ ํญ๋ชฉ์ ๋ถ๋ฌ์ค๊ฑฐ๋ ํ ํ์ผ์ ์ ํํ๊ฑฐ๋ ์ ํญ๋ชฉ์ ์์ํ๋ฉด ์ ์ฅํ์ง ์์ ํธ์ง ๋ด์ฉ์ ๋ณต๊ตฌ ์ฌ๋ณธ ์์ด ๊ต์ฒด๋ฉ๋๋ค. ์ฌ๋ฌ ํ์ผ ๊ฒํ ๋ ์ด์์ ๋ณด์กดํ๊ณ ํธ์ง๊ธฐ ์ ๋ชฉ ์์ญ๊ณผ ์คํ ์ค์ ์ ์จ๊ฒจ ํ์ผ ๋ชฉ๋ก ๊ณต๊ฐ์ ํ๋ณดํฉ๋๋ค. Cancel ๋๋ Done์ ๋๋ฅด๋ฉด ๋ค์ ํ์ํฉ๋๋ค. Run์ ์ ์ฅ ์ฌ๋ถ์ ๊ด๊ณ์์ด ํธ์ง๊ธฐ์ ์๋ YAML์ ์คํํ๋ฉฐ 1~100ํ ๋ฐ๋ณตํ ์ ์์ต๋๋ค.
์ด๋ฆ์ ์๋ค ๊ณต๋ฐฑ์ ์ ๊ฑฐํ ๋ค ๊ฒ์ฌํ๋ฉฐ ํ์์ด๊ณ , Unicode 128์ ์ดํ์ด๋ฉฐ ์ ์ด ๋ฌธ์๋ฅผ ํฌํจํ ์ ์์ต๋๋ค. YAML๋ ํ์์ด๋ฉฐ 1 MiB ์ดํ์ด๊ณ ์ ์ฅ ์ ์ ์ผ๋ฐ ์๋๋ฆฌ์ค ๊ฒ์ฆ์ ํต๊ณผํด์ผ ํฉ๋๋ค. ์ด๋ฆ์ ์ค๋ณต๋ ์ ์์ผ๋ฉฐ ๊ฐ ํญ๋ชฉ์๋ ๋ณ๋์ ์์ฑ ID๊ฐ ๋ถ์ฌ๋ฉ๋๋ค. ๋ชฉ๋ก์ ์ต๊ทผ ์์ ์์ผ๋ก ์ ๋ ฌํฉ๋๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ด๋ฆ๊ณผ YAML ์ต์์ name์ ๋
๋ฆฝ์ ์
๋๋ค. ์ ์๋ ์ ์ฅํ ํธ์ง๊ธฐ ์
๋ ฅ์ ๊ตฌ๋ถํ๊ณ ํ์๋ ์คํ run์ ์ด๋ฆ์ผ๋ก ์ฌ์ฉํฉ๋๋ค. ์ ์ฅ์ ์๋๋ฆฌ์ค schema๋ฅผ ๊ฒ์ฆํ๋ฉฐ Agent ์ฉ๋ ์์ฝ์ด๋ Docker, ์ปค๋ ์ง์, ์ฐ๊ฒฐ์ฑ ๊ฒ์ฌ๋ ์ํํ์ง ์์ต๋๋ค.
Saved scenarios์์ Select๋ฅผ ๋๋ฅด๊ณ ํญ๋ชฉ์ ์ ํํ ๋ค Download ZIP์ ๋๋ฆ
๋๋ค. Select visible์ ํ์ฌ ๊ทธ๋ฃนยท๊ฒ์ ์กฐ๊ฑด์ ๋ง๋ ํญ๋ชฉ์ ์ ํํฉ๋๋ค. ZIP์๋ ์ ์ฅ๋ YAML์ ๊ทธ๋๋ก ๋ด์ <์ ์ฅ ์๋๋ฆฌ์ค ์ด๋ฆ>.yaml์ด ํญ๋ชฉ๋ณ๋ก ๋ค์ด๊ฐ๋๋ค. ์ ์ฅํ์ง ์์ ํธ์ง ๋ด์ฉ์ ์ ์ธํฉ๋๋ค. ํ์ผ๋ช
์ Unicode๋ฅผ ์ ์งํ๊ณ ์ฌ์ฉํ ์ ์๋ ๋ฌธ์๋ฅผ ์นํํ๋ฉฐ, ๊ธด ์ด๋ฆ์ ์ค์ด๊ณ ์ค๋ณต ์ด๋ฆ์ ์ซ์ ์ ๋ฏธ์ฌ๋ฅผ ๋ถ์
๋๋ค. ์์ถ์ ํผ YAML ํ์ผ์ Choose files๋ก ๋ค์ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. ๊ทธ๋ฃน ์์์ YAML ๋ด๋ณด๋ด๊ธฐ์ ํฌํจํ์ง ์์ต๋๋ค.
์ค๋น ๊ณผ์ ๊ณผ ๋ค์ด๋ก๋ ํ๋๋ ์ผ๊ด ๋ค์ด๋ก๋ API๋ฅผ ์ฐธ๊ณ ํ์ญ์์ค.
Saved scenarios์ Saved results๋ ๊ฐ์ ๊ทธ๋ฃน์ ์ฌ์ฉํฉ๋๋ค. ํ์ฌ ํ์ด์ง์์ Group ํํฐ๋ ๊ณต์ ํ๋ฏ๋ก ํ์ชฝ์์ ๊ทธ๋ฃน์ ์ ํํ๋ฉด ๋ค๋ฅธ ์ชฝ์๋ ์ ์ฉํฉ๋๋ค. All groups๋ ๋ชจ๋ ๊ทธ๋ฃน์, Ungrouped๋ ๊ทธ๋ฃน์ ์ํ์ง ์์ ํญ๋ชฉ์ ํ์ํฉ๋๋ค. ๊ฒ์๊ณผ ๊ฒฐ๊ณผ ์ํ ํํฐ๋ ํ์ ๋ฒ์๋ฅผ ์ถ๊ฐ๋ก ์ขํ๋๋ค.
- Groups์์ ์ด๋ฆ์ ์ ๋ ฅํ๊ณ Create๋ก ๊ทธ๋ฃน์ ๋ง๋ญ๋๋ค. ๊ทธ๋ฃน์ Edit์์ ์ด๋ฆ์ ๋ฐ๊พธ๊ฑฐ๋ Delete group์ ๋๋ฅด๊ณ ํ์ธํ์ฌ ์ญ์ ํฉ๋๋ค.
- ์ด๋ ๋ชฉ๋ก์์๋ Select๋ฅผ ๋๋ฅด๋ฉด ์ ํ ์ฒดํฌ๋ฐ์ค๊ฐ ๋ํ๋ฉ๋๋ค. ๊ฐ๋ณ ํญ๋ชฉ์ ์ ํํ๊ฑฐ๋ Select visible์ ์ฌ์ฉํฉ๋๋ค. ์ ์ฒด ์ ํ ๋ฒ์๋ ํ์ฌ ๊ทธ๋ฃนยท๊ฒ์ยท๊ฒฐ๊ณผ ์ํ ํํฐ๋ฅผ ๋ฐ๋ฆ ๋๋ค.
- ๋์ ๊ทธ๋ฃน์ ๊ณ ๋ฅด๊ณ Move๋ก ์ด๋ํฉ๋๋ค. Ungrouped๋ฅผ ๊ณ ๋ฅด๋ฉด ๊ทธ๋ฃน ์์์ ํด์ ํฉ๋๋ค. Clear๋ ์ ํ์ ์ง์ฐ๊ณ Done์ ์ ํ ๋ชจ๋๋ฅผ ์ข ๋ฃํฉ๋๋ค.
๊ฐ ์ ์ฅ ์๋๋ฆฌ์ค์ ๊ฒฐ๊ณผ ๋ฌถ์์ ์ต๋ ํ ๊ทธ๋ฃน์ ์ํฉ๋๋ค. ๋ฐ๋ณต ์คํ์ ์ด์ ์๋ยท์ฌ์๋ยท๋์ค์ ์ถ๊ฐํ ํ์ฐจ๋ฅผ ํฌํจํ ๋ฐฐ์น ์ ์ฒด๊ฐ ํ๋์ ๊ฒฐ๊ณผ ๋ฌถ์์ด๋ฉฐ, ๋จ๋ run๋ ํ๋์ ๊ฒฐ๊ณผ ๋ฌถ์์ ๋๋ค. ๋ฐฐ์น๋ฅผ ์ด๋ํ๋ฉด ํด๋น run๋ค์ด ํจ๊ป ์ด๋ํฉ๋๋ค. Delete group์ ๊ทธ๋ฃน์ ์ง์ฐ๊ณ ์ ์ฅ ์๋๋ฆฌ์ค์ ๊ฒฐ๊ณผ๋ฅผ Ungrouped์ ๋จ๊น๋๋ค. ๊ฒฐ๊ณผ ์์ ์ Delete batch๋ ํ์ธ ํ ํด๋น ๋ฐฐ์น์ ์ ์ฅ ๊ฒฐ๊ณผ๋ฅผ ์ญ์ ํฉ๋๋ค.
Save as new๋ฅผ ํฌํจํ ์ ์๋๋ฆฌ์ค ์ ์ฅ์ ์ ์ฅ์ ์์ํ ๋ ์ ํํ ๊ทธ๋ฃน์ ์ฌ์ฉํฉ๋๋ค. ์ฌ๋ฌ ํ์ผ ๊ฐ์ ธ์ค๊ธฐ๋ ๊ฒํ ๋ฅผ ์ด ๋ ๊ทธ๋ฃน์ ๊ณ ์ ํ๊ณ ๋ชฉ๋ก ์์ ํ์ํ๋ฏ๋ก ์ดํ ํํฐ๋ฅผ ๋ฐ๊ฟ๋ ๊ฐ์ ธ์ฌ ๋์ ๊ทธ๋ฃน์ ๋ฐ๋์ง ์์ต๋๋ค. All groups์ Ungrouped์์๋ ๊ทธ๋ฃน ์๋ ์๋๋ฆฌ์ค๋ฅผ ๋ง๋ญ๋๋ค. ๊ธฐ์กด ์๋๋ฆฌ์ค์ Save changes๋ ์์์ ์ ์งํฉ๋๋ค.
์ ์ฅ ์๋๋ฆฌ์ค๋ฅผ ์ ํํด ์คํํ๋ฉด ์ ๊ฒฐ๊ณผ๋ ์๋ฒ์์ ํ์ธํ ํด๋น ์๋๋ฆฌ์ค์ ํ์ฌ ๊ทธ๋ฃน์ ์๋์ผ๋ก ๋ค์ด๊ฐ๋๋ค. ํธ์ง๊ธฐ์ ์ ์ฅํ์ง ์์ ๋ณ๊ฒฝ์ด ์์ด๋ ๊ฐ์ต๋๋ค. Run์ ํธ์ง๊ธฐ์ YAML์ ์คํํ๊ณ , ์ ํํ ์ ์ฅ ํญ๋ชฉ์ ๊ทธ๋ฃน์ ์ฐพ๋ ๋ฐ ์ฌ์ฉํฉ๋๋ค. ํ ๋ฒ๋ง ์คํํ๋ ๊ฒฝ์ฐ์ ์ ์ฒด ๋ฐ๋ณต ํ์ฐจ ๋ชจ๋ ์ ์คํ ์ ์ ์ ๊ทธ๋ฃน์ ์์ํฉ๋๋ค. ๊ทธ๋ฃน ์๋ ์ ์ฅ ์๋๋ฆฌ์ค๋ ์ ๋ฏธ์ ์ฅ ์ ๋ ฅ์ ๊ฒฐ๊ณผ๋ ํ์ฌ ํํฐ์ ๊ด๊ณ์์ด Ungrouped๊ฐ ๋ฉ๋๋ค. ์ ์ ํ Dashboard๊ฐ ๊ทธ๋ฃน ์์์ ์๋ก๊ณ ์นจํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ํด๋น ๊ทธ๋ฃน์ ํ์ํฉ๋๋ค.
์ดํ ์๋ณธ ์๋๋ฆฌ์ค๋ฅผ ์ด๋ํ๊ฑฐ๋ ์ญ์ ํด๋ ๊ธฐ์กด ๊ฒฐ๊ณผ์ ๊ทธ๋ฃน์ ๋ฐ๋์ง ์์ต๋๋ค. Select โ Move๋ก ์ฎ๊ธด ๊ฒฐ๊ณผ๋ ์ฌ์๋ยท์ด์ดํ๊ธฐยท์ถ๊ฐ ์คํ์์๋ ์ ํํ ๊ทธ๋ฃน์ ์ ์งํฉ๋๋ค. ์ด ์์ ๋ค์ ๊ธฐ์กด ๊ฒฐ๊ณผ ๋ฌถ์์ ์์์ ๊ทธ๋๋ก ์ฌ์ฉํฉ๋๋ค. ๊ทธ๋ฃน ์กฐํ๋ ์ ์ฅ์ ์คํจํ๋ฉด ์ ์คํ์ ์์ํ์ง ์์ต๋๋ค. ํ์๋ ์ค๋ฅ๋ฅผ ํด๊ฒฐํ ๋ค ๋ค์ ์ ์ถํ์ญ์์ค.
๊ทธ๋ฃน๊ณผ ์์์ ๋ค๋ฅธ ์ฌ์ฉ์์ ๊ณต์ ํ๋ฉฐ ๋ก์ปฌ <data-dir>/library-groups.json์ ์ ์ฅ๋์ด Controller ์ฌ์์ ํ์๋ ์ ์ง๋ฉ๋๋ค. ์ด ํ์ผ์ Controller ๋ฐฑ์
์ ํฌํจํ์ญ์์ค. ๋ค๋ฅธ ๋ธ๋ผ์ฐ์ ์ ๋ณ๊ฒฝ์ ๋ชฉ๋ก ์๋ก๊ณ ์นจ ๋๋ Groups โ Refresh๋ก ๋ถ๋ฌ์ต๋๋ค. ๋์ ์์ ์ถฉ๋ ์ ํ์ฌ ๊ทธ๋ฃน์ ๋ค์ ์ฝ๊ณ ๊ฒํ ํ ๋ค ์ฌ์๋ํ๋ฉฐ, ์ ์ฅ ์ฌ๋ถ๊ฐ ๋ถํ์คํ ๊ฒฝ์ฐ ๋จผ์ ์๋ก๊ณ ์นจํด์ผ ํฉ๋๋ค. ๊ทธ๋ฃน ์ด๋ฆยทํ๋ยทAPI ๊ท์ฝ์ ๊ณตํต ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ทธ๋ฃน API์ ์ ์๋์ด ์์ต๋๋ค.
YAML scenario ์์ Validate๋ฅผ ๋๋ฅด๋ฉด ์ ์ฅยท์คํ๊ณผ ๊ฐ์ ํ์๋ก ํ์ฌ ๋ด์ฉ์ ๊ฒ์ฆํฉ๋๋ค. ์์ฑ ์นธ ์๋ ํจ๋์ ์ฑ๊ณต ์ ์๋๋ฆฌ์ค ์ด๋ฆ๊ณผ phase ๊ฐ์๋ฅผ, ์คํจ ์ ์ค๋ฅ ์์ธ์ ํ์ํฉ๋๋ค. YAML ํ์๊ฐ ์ ๊ณตํ๋ฉด ์ค ๋ฒํธ๋ ํ์ํ๋ฉฐ ์ค์ ์ค๋ฅ์๋ ๊ด๋ จ ํ๋๋ phase๊ฐ ํฌํจ๋ฉ๋๋ค. ๊ธด ์ค๋ฅ๋ ์คํฌ๋กคํ๊ฑฐ๋ ๋ณต์ฌํ ์ ์์ต๋๋ค.
๊ฒ์ฆ์ ๋ก๊ทธ์ธ ์ธ์ ์ ์ฌ์ฉํ๋ฉฐ ์ ์ฅ์ฉ ์ด๋ฆ์ด ํ์ ์๊ณ ์ ์ฅยท์คํ๋ ํ์ง ์์ต๋๋ค. YAML์ ํ ๋ฌธ์์ฌ์ผ ํ๊ณ 1 MiB ์ดํ์ฌ์ผ ํฉ๋๋ค. YAML ์์ , New, ํ ํ์ผ ์ ํ, ๋ค๋ฅธ ์๋๋ฆฌ์ค ๋ถ๋ฌ์ค๊ธฐ๋ ์ด์ ๊ฒฐ๊ณผ๋ฅผ ์ง์ฐ๋ฉฐ ์์ ์ ๋ ฅ์ ๋ํ ๋ฆ์ ์๋ต์ ๋ฌด์ํฉ๋๋ค. ์ฌ๋ฌ ํ์ผ ๊ฒํ ๋ ๊ธฐ์กด ์ด์๊ณผ ๊ฒ์ฆ ์ํ๋ฅผ ๋ณด์กดํฉ๋๋ค. ์์ฒญยท๋คํธ์ํฌ ์คํจ์ ์๋ชป๋ YAML์ ๊ตฌ๋ถํด์ ํ์ํฉ๋๋ค. ๊ฒ์ฆ ์ฑ๊ณต์ด Agent ์ฉ๋, Docker ์ง์์ด๋ ์คํ ์ ์ฐ๊ฒฐ์ฑ๊น์ง ํ์ธํ ๊ฒ์ ์๋๋๋ค.
์ค์๊ฐ ์งํ ์์ธก๊ณผ ๋ถํ์ค์ฑ์ ์คํ ์์ ์ข ๋ฃ ์๊ฐ์ ์ฐธ๊ณ ํ์ญ์์ค.
์์ฒญ ๋ณธ๋ฌธ, ์๋ต, ์ ํ๊ณผ curl ์์ ๋ ์๋๋ฆฌ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ API์ ์์ต๋๋ค.
๊ฐ ํญ๋ชฉ์ <data-dir>/scenarios ์๋์ ๊ฐ๋ณ JSON ํ์ผ์ ์ ์ฅ๋ฉ๋๋ค. Swarm์ Controller ์๊ตฌ ๋ฐ์ดํฐ ๋ณผ๋ฅจ์ /var/lib/kpl/data์ ๋ง์ดํธํ๋ฏ๋ก ์ผ๋ฐ์ ์ธ ์๋น์ค ์ฌ์์๊ณผ scripts/swarm.sh remove ํ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ณด์กดํฉ๋๋ค. ์๋๋ฆฌ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์คํ ๊ฒฐ๊ณผ๋ฅผ ํจ๊ป ๋ณด์กดํ๋ ค๋ฉด Controller ๋ฐ์ดํฐ ๋๋ ํฐ๋ฆฌ ์ ์ฒด๋ฅผ ๋ฐฑ์
ํ์ญ์์ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํด๋น Controller์๋ง ์์ผ๋ฉฐ control node ์ฌ์ด์ ๋ณต์ ๋์ง ์์ต๋๋ค.
Controller๋ ์์ ํ์ผ๊ณผ ์์์ ํ์ผ์์คํ ์ฐ์ฐ์ผ๋ก ๊ฐ ํญ๋ชฉ์ ๊ธฐ๋กํฉ๋๋ค. ๋ชฉ๋ก ๋๋ ํญ๋ชฉ์ ์ฝ์ ๋ ํ์์ด ์๋ชป๋๊ฑฐ๋ ์์ํ์ง ์์ ๋ด์ฉ์ด ์์ผ๋ฉด ๋ถ๋ถ์ ์ผ๋ก ์ ๋ขฐํ ์๋๋ฆฌ์ค๋ฅผ ๋ฐํํ์ง ์๊ณ ์ค๋ฅ๋ก ์ฒ๋ฆฌํฉ๋๋ค.
์ ์ฅ, payload ํ๋์ ๊ฒ์ฆ์ internal/controller/scenarios.go, ํธ์ง๊ธฐ ์ฌ์ฉ ํ๋ฆ์ internal/webui/static/app.js์ ๊ตฌํ๋์ด ์์ต๋๋ค.