์ด ๊ธฐ์ฌ์ ๋ฒ์ญ์ ์ฝ์ค์ ํ์๋ค์ ์ํด ํน๋ณํ ์ค๋น๋์์ต๋๋ค.
๋น์ฌ์ ์ฃผ๋ ฅ ์ ํ์ธ SpatialOS๋ฅผ ์ดํด๋ณด๋ฉด Improbable์๋ ์์ญ ๊ฐ์ Kubernetes ํด๋ฌ์คํฐ๊ฐ ํฌํจ๋ ๋งค์ฐ ๋์ ์ธ ๊ธ๋ก๋ฒ ๊ท๋ชจ์ ํด๋ผ์ฐ๋ ์ธํ๋ผ๊ฐ ํ์ํ๋ค๋ ๊ฒ์ ์ง์ํ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ชจ๋ํฐ๋ง ์์คํ
์ ์ฌ์ฉํ ์ต์ด์ ๊ธฐ์
์ค ํ๋์์ต๋๋ค.
Prometheus์ ๋จ์์ฑ๊ณผ ์ ๋ขฐ์ฑ์ ์ฃผ์ ์ฅ์ ์ค ํ๋์
๋๋ค. ๊ทธ๋ฌ๋ ์ผ์ ๊ท๋ชจ๋ฅผ ๋์ด์์ ๋ช ๊ฐ์ง ๋ฌธ์ ์ ์ด ๋ฐ์ํ์ต๋๋ค. ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ฐ๋ฆฌ๋ ๊ฐ๋ฐํ์ต๋๋ค.
ํ๋ ธ์ค์ ํจ๊ปํ๋ ์ฐ๋ฆฌ์ ๋ชฉํ
ํน์ ๊ท๋ชจ์์๋ ๋ฐ๋๋ผ ํ๋ก๋ฉํ ์ฐ์ค์ ๋ฅ๋ ฅ์ ๋์ด์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ํํ๋ฐ์ดํธ ๊ท๋ชจ์ ๊ธฐ๋ก ๋ฐ์ดํฐ๋ฅผ ์์ ์ ์ด๊ณ ๊ฒฝ์ ์ ์ผ๋ก ์ ์ฅํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น? ์๋ต ์๊ฐ์ ์ ํ์ํค์ง ์๊ณ ์ด๋ฅผ ์ํํ ์ ์์ต๋๊น? ๋จ์ผ API ์์ฒญ์ผ๋ก ๋ค์ํ Prometheus ์๋ฒ์ ์๋ ๋ชจ๋ ์งํ์ ์ก์ธ์คํ ์ ์์ต๋๊น? Prometheus HA๋ฅผ ์ฌ์ฉํ์ฌ ์์ง๋ ๋ณต์ ๋ฐ์ดํฐ๋ฅผ ๊ฒฐํฉํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ฐ๋ฆฌ๋ Thanos๋ฅผ ๋ง๋ค์์ต๋๋ค. ๋ค์ ์น์ ์์๋ ์ด๋ฌํ ๋ฌธ์ ์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ๊ณผ ๋ชฉํ๋ฅผ ์ค๋ช ํฉ๋๋ค.
์ฌ๋ฌ Prometheus ์ธ์คํด์ค์์ ๋ฐ์ดํฐ ์ฟผ๋ฆฌ(์ ์ญ ์ฟผ๋ฆฌ)
Prometheus๋ ์ค๋ฉ์ ๋ํ ๊ธฐ๋ฅ์ ์ ๊ทผ ๋ฐฉ์์ ์ ๊ณตํฉ๋๋ค. ๋จ์ผ Prometheus ์๋ฒ๋ผ๋ ๊ฑฐ์ ๋ชจ๋ ์ฌ์ฉ ์ฌ๋ก์์ ์ํ ์ค๋ฉ์ ๋ณต์ก์ฑ์ผ๋ก๋ถํฐ ์ฌ์ฉ์๋ฅผ ํด๋ฐฉ์ํฌ ๋งํผ ์ถฉ๋ถํ ํ์ฅ์ฑ์ ์ ๊ณตํฉ๋๋ค.
์ด๋ ํ๋ฅญํ ๋ฐฐํฌ ๋ชจ๋ธ์ด์ง๋ง ๋จ์ผ API ๋๋ UI(์ ์ญ ๋ณด๊ธฐ)๋ฅผ ํตํด ๋ค์ํ Prometheus ์๋ฒ์ ๋ฐ์ดํฐ์ ์ก์ธ์คํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ๋ฌผ๋ก ํ๋์ Grafana ํจ๋์ ์ฌ๋ฌ ์ฟผ๋ฆฌ๋ฅผ ํ์ํ๋ ๊ฒ์ด ๊ฐ๋ฅํ์ง๋ง ๊ฐ ์ฟผ๋ฆฌ๋ ํ๋์ Prometheus ์๋ฒ์์๋ง ์คํํ ์ ์์ต๋๋ค. ๋ฐ๋ฉด, Thanos๋ฅผ ์ฌ์ฉํ๋ฉด ๋จ์ผ ์๋ํฌ์ธํธ์์ ๋ชจ๋ ์ก์ธ์คํ ์ ์์ผ๋ฏ๋ก ์ฌ๋ฌ Prometheus ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์ฟผ๋ฆฌํ๊ณ ์ง๊ณํ ์ ์์ต๋๋ค.
์ด์ ์๋ Improbable์์ ์ ์ญ ๋ณด๊ธฐ๋ฅผ ์ป๊ธฐ ์ํด Prometheus ์ธ์คํด์ค๋ฅผ ๋ค๋จ๊ณ๋ก ๊ตฌ์ฑํ์ต๋๋ค.
์ด ์ ๊ทผ ๋ฐฉ์์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒ์ผ๋ก ํ๋ช
๋์์ต๋๋ค. ์ด๋ก ์ธํด ๊ตฌ์ฑ์ด ๋ ๋ณต์กํด์ง๊ณ , ์ ์ฌ์ ์ธ ์คํจ ์ง์ ์ด ์ถ๊ฐ๋์์ผ๋ฉฐ, ์ฐํฉ ์๋ํฌ์ธํธ๊ฐ ํ์ํ ๋ฐ์ดํฐ๋ง ์์ ํ๋๋ก ๋ณด์ฅํ๋ ๋ณต์กํ ๊ท์น์ด ์ ์ฉ๋์์ต๋๋ค. ๋ํ ๋จ์ผ API ์์ฒญ์์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ์ข
๋ฅ์ ์ฐํฉ์์๋ ์ง์ ํ ๊ธ๋ก๋ฒ ๋ณด๊ธฐ๋ฅผ ์ป์ ์ ์์ต๋๋ค.
์ด์ ๋ฐ์ ํ๊ฒ ๊ด๋ จ๋ ๊ฒ์ ๊ณ ๊ฐ์ฉ์ฑ(HA) Prometheus ์๋ฒ์์ ์์ง๋ ๋ฐ์ดํฐ์ ๋ํ ํตํฉ ๋ณด๊ธฐ์ ๋๋ค. Prometheus์ HA ๋ชจ๋ธ์ ๋ ๋ฆฝ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ ๋ฒ ์์งํ๋ฏ๋ก ์ด๋ณด๋ค ๋ ๊ฐ๋จํ ์ ์์ ๋งํผ ๊ฐ๋จํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ ์คํธ๋ฆผ์ ๊ฒฐํฉ ๋ฐ ์ค๋ณต ์ ๊ฑฐ ๋ณด๊ธฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ํจ์ฌ ๋ ํธ๋ฆฌํฉ๋๋ค.
๋ฌผ๋ก ๊ฐ์ฉ์ฑ์ด ๋์ Prometheus ์๋ฒ๊ฐ ํ์ํฉ๋๋ค. Improbable์์๋ ๋ถ ๋จ์์ ๋ฐ์ดํฐ ๋ชจ๋ํฐ๋ง์ ๋งค์ฐ ์ค์ํ๊ฒ ์๊ฐํ์ง๋ง ํด๋ฌ์คํฐ๋น ํ๋์ Prometheus ์ธ์คํด์ค๋ฅผ ๋ณด์ ํ๋ ๊ฒ์ ๋จ์ผ ์คํจ ์ง์ ์ ๋๋ค. ๊ตฌ์ฑ ์ค๋ฅ๋ ํ๋์จ์ด ์ค๋ฅ๋ก ์ธํด ์ ์ฌ์ ์ผ๋ก ์ค์ํ ๋ฐ์ดํฐ๊ฐ ์์ค๋ ์ ์์ต๋๋ค. ์ฌ์์์ด ์คํฌ๋ํ ๊ฐ๊ฒฉ๋ณด๋ค ์๋นํ ๊ธธ์ด์ง ์ ์์ผ๋ฏ๋ก ๊ฐ๋จํ ๋ฐฐํฌ๋ผ๋ ๋ฉํธ๋ฆญ ์์ง์ ์ฝ๊ฐ์ ์ค๋จ์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
๊ณผ๊ฑฐ ๋ฐ์ดํฐ์ ์์ ์ ์ธ ์ ์ฅ
์ ๋ ดํ๊ณ ๋น ๋ฅด๋ฉฐ ์ฅ๊ธฐ์ ์ธ ๋ฉํธ๋ฆญ ์คํ ๋ฆฌ์ง๋ ์ฐ๋ฆฌ์ ๊ฟ์ ๋๋ค(๋๋ถ๋ถ์ Prometheus ์ฌ์ฉ์๊ฐ ๊ณต์ ํจ). Improbable์์๋ ๋ฉํธ๋ฆญ ๋ณด์กด ๊ธฐ๊ฐ์ 1.8์ผ๋ก ๊ตฌ์ฑํด์ผ ํ์ต๋๋ค(Prometheus XNUMX์ ๊ฒฝ์ฐ). ์ด๋ ์ฐ๋ฆฌ๊ฐ ์ผ๋ง๋ ๋ฉ๋ฆฌ ๊ณผ๊ฑฐ๋ฅผ ๋ณผ ์ ์๋์ง์ ๋ช ๋ฐฑํ ํ๊ณ๋ฅผ ์ถ๊ฐํฉ๋๋ค.
Prometheus 2.0์์๋ ์๊ณ์ด ์๊ฐ ๋ ์ด์ ์๋ฒ์ ์ ์ฒด ์ฑ๋ฅ์ ์ํฅ์ ๋ฏธ์น์ง ์์ผ๋ฏ๋ก ์ด์ ๊ด๋ จํ์ฌ ๊ฐ์ ๋์์ต๋๋ค(์ฐธ์กฐ:
๋ํ Improbable์์๋ ์ ๋ขฐ์ฑ, ๋จ์์ฑ ๋ฐ ๋น์ฉ์ ์ค์ ์ ๋ก๋๋ค. ๋์ฉ๋ ๋ก์ปฌ ๋์คํฌ๋ ์๋ ๋ฐ ๋ฐฑ์ ์ด ๋ ์ด๋ ต์ต๋๋ค. ๋น์ฉ์ด ๋ ๋ง์ด ๋ค๊ณ ๋ ๋ง์ ๋ฐฑ์ ๋๊ตฌ๊ฐ ํ์ํ๋ฏ๋ก ๋ถํ์ํ ๋ณต์ก์ฑ์ด ๋ฐ์ํฉ๋๋ค.
๋ค์ด์ํ๋ง
๊ณผ๊ฑฐ ๋ฐ์ดํฐ ์์ ์ ์์ํ ํ์ ์ฐ๋ฆฌ๋ ๋ช ์ฃผ, ๋ช ๋ฌ, ๋ช ๋ ์ ๋ฐ์ดํฐ๋ก ์์ ํ ๋ ์ฟผ๋ฆฌ๋ฅผ ์ ์ ๋ ๋๋ฆฌ๊ฒ ๋ง๋๋ big-O์ ๊ทผ๋ณธ์ ์ธ ์ด๋ ค์์ด ์๋ค๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค.
์ด ๋ฌธ์ ์ ๋ํ ํ์ค์ ์ธ ํด๊ฒฐ์ฑ
์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ค๋๋ ๋ฐ์ดํฐ๋ฅผ ๋ค์ด์ํ๋งํ๋ ๊ฒ์ ์ฅ๊ธฐ ์คํ ๋ฆฌ์ง ์๋ฃจ์ ์ ๋ถ๊ฐํผํ ์๊ตฌ ์ฌํญ์ด๋ฉฐ ๋ฐ๋๋ผ ํ๋ก๋ฉํ ์ฐ์ค์ ๋ฒ์๋ฅผ ๋ฒ์ด๋ฉ๋๋ค.
์ถ๊ฐ ๋ชฉํ
Thanos ํ๋ก์ ํธ์ ์๋ ๋ชฉํ ์ค ํ๋๋ ๊ธฐ์กด Prometheus ์ค์น์ ์ํํ๊ฒ ํตํฉํ๋ ๊ฒ์ด์์ต๋๋ค. ๋ ๋ฒ์งธ ๋ชฉํ๋ ์ง์ ์ฅ๋ฒฝ์ ์ต์ํํ๋ฉด์ ์ด์์ ์ฉ์ดํ๊ฒ ํ๋ ๊ฒ์ด์์ต๋๋ค. ๋ชจ๋ ์ข ์์ฑ์ ์๊ท๋ชจ ์ฌ์ฉ์์ ๋๊ท๋ชจ ์ฌ์ฉ์ ๋ชจ๋์๊ฒ ์ฝ๊ฒ ์ถฉ์กฑ๋์ด์ผ ํ๋ฉฐ ์ด๋ ๊ธฐ๋ณธ ๋น์ฉ๋ ๋ฎ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
ํ๋ ธ์ค ์ํคํ ์ฒ
์ด์ ์น์ ์์ ์ฐ๋ฆฌ์ ๋ชฉํ๋ฅผ ๋์ดํ ํ ์ด๋ฅผ ํตํด ์์ ํ๊ณ Thanos๊ฐ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํ๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๊ธ๋ก๋ฒ ๋ทฐ
๊ธฐ์กด Prometheus ์ธ์คํด์ค์ ๋ํ ์ ์ญ ๋ณด๊ธฐ๋ฅผ ์ป์ผ๋ ค๋ฉด ๋จ์ผ ์์ฒญ ์ง์
์ ์ ๋ชจ๋ ์๋ฒ์ ์ฐ๊ฒฐํด์ผ ํฉ๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก Thanos ๊ตฌ์ฑ ์์๊ฐ ์ํํ๋ ์์
์
๋๋ค.
๋ค๋ฅธ ์ธก๋ฉด์๋ ํ์ค Prometheus HTTP API๋ฅผ ํตํด PromQL ์ฟผ๋ฆฌ์ ์๋ตํ๋ ๊ฒ ์ด์์ ๊ธฐ๋ฅ์ ์ํํ๋ ํ์ฅํ ์ํ ๋น์ ์ฅ Querier ๊ตฌ์ฑ ์์๊ฐ ์์ต๋๋ค. ์ฟผ๋ฆฌ์ด(Querier), ์ฌ์ด๋์นด(Sidecar) ๋ฐ ๊ธฐํ Thanos ๊ตฌ์ฑ ์์๋ ๋ค์์ ํตํด ํต์ ํฉ๋๋ค.
- Querier๋ ์์ฒญ์ ๋ฐ์ผ๋ฉด ํด๋น Store API ์๋ฒ, ์ฆ ์ฌ์ด๋์นด์ ์ฐ๊ฒฐํ๊ณ ํด๋น Prometheus ์๋ฒ๋ก๋ถํฐ ์๊ณ์ด ๋ฐ์ดํฐ๋ฅผ ์์ ํฉ๋๋ค.
- ๊ทธ๋ฐ ๋ค์ ์๋ต์ ๊ฒฐํฉํ๊ณ ์ด์ ๋ํด PromQL ์ฟผ๋ฆฌ๋ฅผ ์คํํฉ๋๋ค. ์ฟผ๋ฆฌ์ด๋ Prometheus HA ์๋ฒ์ ๋ถ๋ฆฌ๋ ๋ฐ์ดํฐ์ ์ค๋ณต ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ๋ณํฉํ ์ ์์ต๋๋ค.
์ด๋ ๊ฒฉ๋ฆฌ๋ Prometheus ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ๋จ์ผ ๋ณด๊ธฐ๋ก ๊ฒฐํฉํ๋ ํผ์ฆ์ ์ฃผ์ ์กฐ๊ฐ์ ํด๊ฒฐํฉ๋๋ค. ์ค์ ๋ก Thanos๋ ์ด ๊ธฐ๋ฅ์๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ธฐ์กด Prometheus ์๋ฒ๋ฅผ ๋ณ๊ฒฝํ ํ์๊ฐ ์์ต๋๋ค!
์ ํต๊ธฐํ์ ๋ฌด์ ํ!
๊ทธ๋ฌ๋ ์กฐ๋ง๊ฐ ์ฐ๋ฆฌ๋ ์ผ๋ฐ์ ์ธ Prometheus ๋ณด์กด ์๊ฐ์ ์ด๊ณผํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ค๊ณ ํ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๋ ๊ธฐ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํด ๊ฐ์ฒด ์คํ ๋ฆฌ์ง๋ฅผ ์ ํํ์ต๋๋ค. ์จํ๋ ๋ฏธ์ค ๋ฐ์ดํฐ ์ผํฐ๋ ๋ฌผ๋ก ๋ชจ๋ ํด๋ผ์ฐ๋์์ ๊ด๋ฒ์ํ๊ฒ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ๋งค์ฐ ๋น์ฉ ํจ์จ์ ์ ๋๋ค. ๋ํ ์ ์๋ ค์ง S3 API๋ฅผ ํตํด ๊ฑฐ์ ๋ชจ๋ ๊ฐ์ฒด ์คํ ๋ฆฌ์ง๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Prometheus๋ ๋๋ต XNUMX์๊ฐ๋ง๋ค RAM์์ ๋์คํฌ๋ก ๋ฐ์ดํฐ๋ฅผ ์๋๋ค. ์ ์ฅ๋ ๋ฐ์ดํฐ ๋ธ๋ก์ ๊ณ ์ ๋ ๊ธฐ๊ฐ ๋์์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๋ฉฐ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ์ด๋ Thanos Sidecar๊ฐ Prometheus ๋ฐ์ดํฐ ๋๋ ํฐ๋ฆฌ๋ฅผ ๊ฐ๋จํ ์ดํด๋ณด๊ณ ์ ๋ธ๋ก์ ์ฌ์ฉํ ์ ์๊ฒ ๋๋ฉด ์ด๋ฅผ ๊ฐ์ฒด ์คํ ๋ฆฌ์ง ๋ฒํท์ ๋ก๋ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋งค์ฐ ํธ๋ฆฌํฉ๋๋ค.
๋์คํฌ์ ์ด ํ ์ฆ์ ๊ฐ์ฒด ์คํ ๋ฆฌ์ง์ ๋ก๋ํ๋ฉด ์คํฌ๋ ์ดํผ(Prometheus ๋ฐ Thanos Sidecar)์ ๋จ์์ฑ์ ์ ์งํ ์๋ ์์ต๋๋ค. ์ง์, ๋น์ฉ ๋ฐ ์์คํ
์ค๊ณ๋ฅผ ๋จ์ํํฉ๋๋ค.
๋ณด์๋ค์ํผ ๋ฐ์ดํฐ ๋ฐฑ์ ์ ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค. ํ์ง๋ง ๊ฐ์ฒด ์คํ ๋ฆฌ์ง์ ๋ฐ์ดํฐ๋ฅผ ์ฟผ๋ฆฌํ๋ ๊ฒ์ ์ด๋ป์ต๋๊น?
Thanos Store ๊ตฌ์ฑ ์์๋ ๊ฐ์ฒด ์คํ ๋ฆฌ์ง์์ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๋ ํ๋ก์ ์ญํ ์ ํฉ๋๋ค. Thanos Sidecar์ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ฐ์ญ ํด๋ฌ์คํฐ์ ์ฐธ์ฌํ๊ณ Store API๋ฅผ ๊ตฌํํฉ๋๋ค. ์ด๋ฐ ๋ฐฉ์์ผ๋ก ๊ธฐ์กด ์ฟผ๋ฆฌ๊ธฐ๋ ์ด๋ฅผ ์ฌ์ด๋์นด์ฒ๋ผ ์๊ณ์ด ๋ฐ์ดํฐ์ ๋ ๋ค๋ฅธ ์์ค๋ก ์ฒ๋ฆฌํ ์ ์์ผ๋ฉฐ ํน๋ณํ ๊ตฌ์ฑ์ด ํ์ํ์ง ์์ต๋๋ค.
์๊ณ์ด ๋ฐ์ดํฐ ๋ธ๋ก์ ์ฌ๋ฌ ๊ฐ์ ํฐ ํ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ์์ฒญ ์ ๋ก๋ํ๋ ๊ฒ์ ๋งค์ฐ ๋นํจ์จ์ ์ด๋ฉฐ ๋ก์ปฌ๋ก ์บ์ฑํ๋ ค๋ฉด ์์ฒญ๋ ์์ ๋ฉ๋ชจ๋ฆฌ์ ๋์คํฌ ๊ณต๊ฐ์ด ํ์ํฉ๋๋ค.
๋์ Store Gateway๋ Prometheus ์คํ ๋ฆฌ์ง ํ์์ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์๊ณ ์์ต๋๋ค. ์ค๋งํธ ์ฟผ๋ฆฌ ์ค์ผ์ค๋ฌ์ ๋ธ๋ก์ ํ์ํ ์ธ๋ฑ์ค ๋ถ๋ถ๋ง ์บ์ฑ ๋๋ถ์ ๋ณต์กํ ์ฟผ๋ฆฌ๋ฅผ ๊ฐ์ฒด ์ ์ฅ์ ํ์ผ์ ๋ํ HTTP ์์ฒญ ์๋ฅผ ์ต์ํ์ผ๋ก ์ค์ผ ์ ์์ต๋๋ค. ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ์์ฒญ ์๋ฅผ XNUMX~XNUMX๋ฐฐ๋ก ์ค์ด๊ณ ์ผ๋ฐ์ ์ผ๋ก ๋ก์ปฌ SSD์ ๋ฐ์ดํฐ ์์ฒญ๊ณผ ๊ตฌ๋ณํ๊ธฐ ์ด๋ ค์ด ์๋ต ์๊ฐ์ ๋ฌ์ฑํ ์ ์์ต๋๋ค.
์ ๋ค์ด์ด๊ทธ๋จ์์ ๋ณผ ์ ์๋ฏ์ด Thanos Querier๋ Prometheus ์คํ ๋ฆฌ์ง ํ์์ ํ์ฉํ๊ณ ๊ด๋ จ ๋ฐ์ดํฐ๋ฅผ ๋๋ํ ๋ฐฐ์นํ์ฌ ๊ฐ์ฒด ์คํ ๋ฆฌ์ง ๋ฐ์ดํฐ์ ์ฟผ๋ฆฌ๋น ๋น์ฉ์ ํฌ๊ฒ ์ค์
๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด ์ฌ๋ฌ ๋จ์ผ ์์ฒญ์ ์ต์ํ์ ๋๋ ์์
์ผ๋ก ๊ฒฐํฉํ ์ ์์ต๋๋ค.
์์ถ ๋ฐ ๋ค์ด์ํ๋ง
์๋ก์ด ์๊ณ์ด ๋ฐ์ดํฐ ๋ธ๋ก์ด ๊ฐ์ฒด ์คํ ๋ฆฌ์ง์ ์ฑ๊ณต์ ์ผ๋ก ๋ก๋๋๋ฉด ์ด๋ฅผ "๊ณผ๊ฑฐ" ๋ฐ์ดํฐ๋ก ์ฒ๋ฆฌํ์ฌ ์คํ ์ด ๊ฒ์ดํธ์จ์ด๋ฅผ ํตํด ์ฆ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ผ์ ์๊ฐ์ด ์ง๋๋ฉด ํ ์์ค(์ฌ์ด๋์นด๊ฐ ํฌํจ๋ Prometheus)์ ๋ธ๋ก์ด ๋์ ๋์ด ๋ ์ด์ ์ ์ฒด ์ธ๋ฑ์ฑ ์ ์ฌ๋ ฅ์ ์ฌ์ฉํ์ง ์์ต๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ฐ๋ฆฌ๋ Compactor๋ผ๋ ๋ ๋ค๋ฅธ ๊ตฌ์ฑ ์์๋ฅผ ๋์ ํ์ต๋๋ค. ๋จ์ํ Prometheus์ ๋ก์ปฌ ์์ถ ์์ง์ ๊ฐ์ฒด ์คํ ๋ฆฌ์ง์ ๊ธฐ๋ก ๋ฐ์ดํฐ์ ์ ์ฉํ๊ณ ๊ฐ๋จํ ์ฃผ๊ธฐ์ ์ธ ๋ฐฐ์น ์์ ์ผ๋ก ์คํํ ์ ์์ต๋๋ค.
ํจ์จ์ ์ธ ์์ถ ๋๋ถ์ ์ฅ๊ธฐ๊ฐ์ ๊ฑธ์ณ ์คํ ๋ฆฌ์ง๋ฅผ ์ฟผ๋ฆฌํด๋ ๋ฐ์ดํฐ ํฌ๊ธฐ ์ธก๋ฉด์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์์ญ์ต ๊ฐ์ ๊ฐ์ ํ๊ณ ์ด๋ฅผ ์ฟผ๋ฆฌ ํ๋ก์ธ์๋ฅผ ํตํด ์คํํ๋ ๋ฐ ๋๋ ์ ์ฌ์ ๋น์ฉ์ผ๋ก ์ธํด ํ์ฐ์ ์ผ๋ก ์ฟผ๋ฆฌ ์คํ ์๊ฐ์ด ๊ธ๊ฒฉํ ์ฆ๊ฐํ๊ฒ ๋ฉ๋๋ค. ๋ฐ๋ฉด์ ํ๋ฉด์๋ ํฝ์
๋น ์๋ฐฑ ๊ฐ์ ๋ฐ์ดํฐ ํฌ์ธํธ๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ ์ฒด ํด์๋๋ก ๋ฐ์ดํฐ๋ฅผ ์๊ฐํํ๋ ๊ฒ์กฐ์ฐจ ๋ถ๊ฐ๋ฅํด์ง๋๋ค. ๋ฐ๋ผ์ ๋ค์ด์ํ๋ง์ ๊ฐ๋ฅํ ๋ฟ๋ง ์๋๋ผ ๋์ ๋๋ ์ ํ๋ ์์ค๋ก ์ด์ด์ง์ง๋ ์์ต๋๋ค.
๋ฐ์ดํฐ๋ฅผ ๋ค์ด์ํ๋งํ๊ธฐ ์ํด Compactor๋ XNUMX๋ถ๊ณผ XNUMX์๊ฐ์ ํด์๋๋ก ๋ฐ์ดํฐ๋ฅผ ์ง์์ ์ผ๋ก ์ง๊ณํฉ๋๋ค. TSDB XOR ์์ถ์ ์ฌ์ฉํ์ฌ ์ธ์ฝ๋ฉ๋ ๊ฐ ์์ ์ฒญํฌ์ ๋ํด ํ ๋ธ๋ก์ ์ต์, ์ต๋ ๋๋ ํฉ๊ณ์ ๊ฐ์ ๋ค์ํ ์ ํ์ ์ง๊ณ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋ฉ๋๋ค. ์ด๋ฅผ ํตํด Querier๋ ํน์ PromQL ์ฟผ๋ฆฌ์ ์ ํฉํ ์ง๊ณ๋ฅผ ์๋์ผ๋ก ์ ํํ ์ ์์ต๋๋ค.
์ฌ์ฉ์๊ฐ ์ถ์๋ ์ ๋ฐ๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ํน๋ณํ ๊ตฌ์ฑ์ด ํ์ํ์ง ์์ต๋๋ค. Querier๋ ์ฌ์ฉ์๊ฐ ํ๋ ๋ฐ ์ถ์ํจ์ ๋ฐ๋ผ ๋ค์ํ ํด์๋์ ์์ ๋ฐ์ดํฐ ๊ฐ์ ์๋์ผ๋ก ์ ํ๋ฉ๋๋ค. ์ํ๋ ๊ฒฝ์ฐ ์ฌ์ฉ์๋ ์์ฒญ์ "step" ๋งค๊ฐ๋ณ์๋ฅผ ํตํด ์ด๋ฅผ ์ง์ ์ ์ดํ ์ ์์ต๋๋ค.
XNUMXGB๋ฅผ ์ ์ฅํ๋ ๋น์ฉ์ด ๋ฎ๊ธฐ ๋๋ฌธ์ Thanos๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์์ ๋ฐ์ดํฐ, XNUMX๋ถ ๋ฐ XNUMX์๊ฐ ํด์๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํฉ๋๋ค. ์๋ณธ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ ํ์๋ ์์ต๋๋ค.
๋ น์ ๊ท์น
Thanos์ ๊ฒฝ์ฐ์๋ ๋ นํ ๊ท์น์ ๋ชจ๋ํฐ๋ง ์คํ์ ํ์ ๋ถ๋ถ์ ๋๋ค. ๋ณต์ก์ฑ, ๋๊ธฐ ์๊ฐ, ์ฟผ๋ฆฌ ๋น์ฉ์ด ์ค์ด๋ญ๋๋ค. ๋ํ ์ฌ์ฉ์๊ฐ ์ธก์ ํญ๋ชฉ๋ณ๋ก ์ง๊ณ๋ ๋ฐ์ดํฐ๋ฅผ ์ป๋ ๋ฐ ํธ๋ฆฌํฉ๋๋ค. Thanos๋ ๋ฐ๋๋ผ Prometheus ์ธ์คํด์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฏ๋ก ๊ธฐ์กด Prometheus ์๋ฒ์ ๊ธฐ๋ก ๊ท์น ๋ฐ ๊ฒฝ๊ณ ๊ท์น์ ์ ์ฅํ๋ ๊ฒ์ด ์๋ฒฝํ๊ฒ ํ์ฉ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ค ๊ฒฝ์ฐ์๋ ์ด๊ฒ๋ง์ผ๋ก๋ ์ถฉ๋ถํ์ง ์์ ์ ์์ต๋๋ค.
- ์ ์ญ ๊ฒฝ๊ณ ๋ฐ ๊ท์น(์: ์๋น์ค๊ฐ XNUMX๊ฐ ํด๋ฌ์คํฐ ์ค XNUMX๊ฐ ์ด์์์ ์๋ํ์ง ์์ ๋์ ๊ฒฝ๊ณ )
- ๋ก์ปฌ ์ ์ฅ์ ์ธ๋ถ์ ๋ฐ์ดํฐ์ ๋ํ ๊ท์น์ ๋๋ค.
- ๋ชจ๋ ๊ท์น๊ณผ ๊ฒฝ๊ณ ๋ฅผ ํ ๊ณณ์ ์ ์ฅํ๋ ค๋ ์๊ตฌ.
์ด๋ฌํ ๋ชจ๋ ๊ฒฝ์ฐ์ ๋ํด Thanos์๋ Thanos ์ฟผ๋ฆฌ๋ฅผ ํตํด ๊ท์น๊ณผ ๊ฒฝ๊ณ ๋ฅผ ๊ณ์ฐํ๋ Ruler๋ผ๋ ๋ณ๋์ ๊ตฌ์ฑ ์์๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ์ ์๋ ค์ง StoreAPI๋ฅผ ์ ๊ณตํจ์ผ๋ก์จ ์ฟผ๋ฆฌ ๋
ธ๋๋ ์๋ก ๊ณ์ฐ๋ ์งํ์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ๋์ค์ ๊ฐ์ฒด ์คํ ๋ฆฌ์ง์๋ ์ ์ฅ๋๋ฉฐ Store Gateway๋ฅผ ํตํด ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํ๋ ธ์ค์ ํ
Thanos๋ ๊ทํ์ ํ์์ ๋ง๊ฒ ๋ง์ถคํํ ์ ์์ ๋งํผ ์ ์ฐํฉ๋๋ค. ์ด๋ ์ผ๋ฐ Prometheus์์ ๋ง์ด๊ทธ๋ ์ด์ ํ ๋ ํนํ ์ ์ฉํฉ๋๋ค. ๊ฐ๋จํ ์๋ฅผ ํตํด Thanos ๊ตฌ์ฑ ์์์ ๋ํด ๋ฐฐ์ด ๋ด์ฉ์ ๋น ๋ฅด๊ฒ ์์ฝํด ๋ณด๊ฒ ์ต๋๋ค. ๋ฐ๋๋ผ ํ๋ก๋ฉํ ์ฐ์ค๋ฅผ "๋ฌด์ ํ ์งํ ์ ์ฅ"์ ์ธ๊ณ๋ก ๊ฐ์ ธ๊ฐ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- Prometheus ์๋ฒ์ Thanos ์ฌ์ด๋์นด๋ฅผ ์ถ๊ฐํ์ธ์(์: Kubernetes ํฌ๋์ ์ฌ์ด๋์นด ์ปจํ ์ด๋).
- ๋ฐ์ดํฐ๋ฅผ ๋ณผ ์ ์๋๋ก ์ฌ๋ฌ Thanos Querier ๋ณต์ ๋ณธ์ ๋ฐฐํฌํฉ๋๋ค. ์ด ๋จ๊ณ์์๋ Scraper์ Querier ์ฌ์ด์ ๊ฐ์ญ์ ์ค์ ํ๋ ๊ฒ์ด ์ฝ์ต๋๋ค. ๊ตฌ์ฑ ์์์ ์ํธ ์์ฉ์ ํ์ธํ๋ ค๋ฉด 'thanos_cluster_members' ์ธก์ ํญ๋ชฉ์ ์ฌ์ฉํ์ธ์.
์ด ๋ ๋จ๊ณ๋ง์ผ๋ก๋ ์ ์ฌ์ ์ธ Prometheus HA ๋ณต์ ๋ณธ์์ ๊ธ๋ก๋ฒ ๋ทฐ์ ์ํํ ๋ฐ์ดํฐ ์ค๋ณต ์ ๊ฑฐ๋ฅผ ์ ๊ณตํ๊ธฐ์ ์ถฉ๋ถํฉ๋๋ค! ๋์๋ณด๋๋ฅผ Querier HTTP ์๋ํฌ์ธํธ์ ์ฐ๊ฒฐํ๊ฑฐ๋ Thanos UI๋ฅผ ์ง์ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค.
๊ทธ๋ฌ๋ ์งํ ๋ฐฑ์ ๋ฐ ์ฅ๊ธฐ ์ ์ฅ์ด ํ์ํ ๊ฒฝ์ฐ ๋ค์ ์ธ ๋จ๊ณ๋ฅผ ๋ ์๋ฃํด์ผ ํฉ๋๋ค.
- AWS S3 ๋๋ GCS ๋ฒํท์ ์์ฑํฉ๋๋ค. ์ด๋ฌํ ๋ฒํท์ ๋ฐ์ดํฐ๋ฅผ ๋ณต์ฌํ๋๋ก ์ฌ์ด๋์นด๋ฅผ ๊ตฌ์ฑํฉ๋๋ค. ์ด์ ๋ก์ปฌ ๋ฐ์ดํฐ ์ ์ฅ ๊ณต๊ฐ์ ์ต์ํํ ์ ์์ต๋๋ค.
- Store Gateway๋ฅผ ๋ฐฐํฌํ๊ณ ์ด๋ฅผ ๊ธฐ์กด ๊ฐ์ญ ํด๋ฌ์คํฐ์ ์ฐ๊ฒฐํฉ๋๋ค. ์ด์ ๋ฐฑ์ ๋ ๋ฐ์ดํฐ๋ฅผ ์ฟผ๋ฆฌํ ์ ์์ต๋๋ค!
- ์์ถ ๋ฐ ๋ค์ด์ํ๋ง์ ์ฌ์ฉํ์ฌ ์ฅ๊ธฐ๊ฐ์ ๊ฑธ์ณ ์ฟผ๋ฆฌ ํจ์จ์ฑ์ ํฅ์ํ๋ ค๋ฉด Compactor๋ฅผ ๋ฐฐํฌํ์ธ์.
๋ ์๊ณ ์ถ๋ค๋ฉด ์ฃผ์ ํ์ง ๋ง๊ณ ์ฐ๋ฆฌ์
๋จ XNUMX๋จ๊ณ๋ง์ผ๋ก ์ฐ๋ฆฌ๋ Prometheus๋ฅผ ์ ์ญ ๋ณด๊ธฐ, ๋ฌด์ ํ ์ ์ฅ ์๊ฐ ๋ฐ ์ ์ฌ์ ์ธ ๊ณ ๊ฐ์ฉ์ฑ ์งํ๋ฅผ ๊ฐ์ถ ์์ ์ ์ธ ๋ชจ๋ํฐ๋ง ์์คํ ์ผ๋ก ์ ํํ์ต๋๋ค.
ํ ๋ฆฌํ์คํธ: ๋น์ ์ด ํ์ํฉ๋๋ค!
์ฐ๋ฆฌ๋ GitHub Pull Request์ Issues๋ฅผ ์ธ์ ๋ ํ์ํฉ๋๋ค. ๊ทธ๋์ Github Issues๋ Slack์ ํตํด ์ธ์ ๋ ์ง ๋ฌธ์ํด ์ฃผ์ธ์.
์ถ์ฒ : habr.com