ํƒ€๋…ธ์Šค - ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค

์ด ๊ธฐ์‚ฌ์˜ ๋ฒˆ์—ญ์€ ์ฝ”์Šค์˜ ํ•™์ƒ๋“ค์„ ์œ„ํ•ด ํŠน๋ณ„ํžˆ ์ค€๋น„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. "DevOps ์‚ฌ๋ก€ ๋ฐ ๋„๊ตฌ".

ํŒŒ๋น„์•ˆ ๋ ˆ์ด๋‚˜์ธ  ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์ž์ด์ž Go ๊ด‘ํŒฌ์ด์ž ๋ฌธ์ œ ํ•ด๊ฒฐ์‚ฌ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Š” ๋˜ํ•œ Prometheus ๊ด€๋ฆฌ์ž์ด์ž Kubernetes SIG ๊ณ„์ธก์˜ ๊ณต๋™ ์ฐฝ๋ฆฝ์ž์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ๊ณผ๊ฑฐ์—๋Š” SoundCloud์˜ ํ”„๋กœ๋•์…˜ ์—”์ง€๋‹ˆ์–ด์˜€์œผ๋ฉฐ CoreOS์˜ ๋ชจ๋‹ˆํ„ฐ๋ง ํŒ€์„ ์ด๋Œ์—ˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ Google์—์„œ ์ผํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ”๋ฅดํ… ํ”Œ๋กฏ์นด - Improbable์˜ ์ธํ”„๋ผ ์—”์ง€๋‹ˆ์–ด. ๊ทธ๋Š” ์ƒˆ๋กœ์šด ๊ธฐ์ˆ ๊ณผ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์˜ ๋ฌธ์ œ์— ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Š” Intel์—์„œ ๋‚ฎ์€ ์ˆ˜์ค€์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝํ—˜, Mesos์—์„œ ๊ธฐ์—ฌ์ž ๊ฒฝํ—˜, Improbable์—์„œ ์„ธ๊ณ„์  ์ˆ˜์ค€์˜ SRE ์ œ์ž‘ ๊ฒฝํ—˜์„ ๋ณด์œ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์˜ ์„ธ๊ณ„๋ฅผ ๊ฐœ์„ ํ•˜๋Š” ๋ฐ ์ „๋…ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ์˜ ์„ธ ๊ฐ€์ง€ ์‚ฌ๋ž‘์€ Golang, ์˜คํ”ˆ ์†Œ์Šค, ๋ฐฐ๊ตฌ์ž…๋‹ˆ๋‹ค.

๋‹น์‚ฌ์˜ ์ฃผ๋ ฅ ์ œํ’ˆ์ธ SpatialOS๋ฅผ ์‚ดํŽด๋ณด๋ฉด Improbable์—๋Š” ์ˆ˜์‹ญ ๊ฐœ์˜ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ํฌํ•จ๋œ ๋งค์šฐ ๋™์ ์ธ ๊ธ€๋กœ๋ฒŒ ๊ทœ๋ชจ์˜ ํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์ง์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•œ ์ตœ์ดˆ์˜ ๊ธฐ์—… ์ค‘ ํ•˜๋‚˜์˜€์Šต๋‹ˆ๋‹ค. ํ”„๋กœ ๋ฉ”ํ…Œ์šฐ์Šค. Prometheus๋Š” ์ˆ˜๋ฐฑ๋งŒ ๊ฐœ์˜ ์ง€ํ‘œ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ถ”์ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ•๋ ฅํ•œ ์ฟผ๋ฆฌ ์–ธ์–ด์™€ ํ•จ๊ป˜ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

Prometheus์˜ ๋‹จ์ˆœ์„ฑ๊ณผ ์‹ ๋ขฐ์„ฑ์€ ์ฃผ์š” ์žฅ์  ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ผ์ • ๊ทœ๋ชจ๋ฅผ ๋„˜์–ด์„œ์ž ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ์ ์ด ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ๊ฐœ๋ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. Thanos ๊ธฐ์กด Prometheus ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋ฌด์ œํ•œ์˜ ๊ธฐ๋ก ๋ฐ์ดํ„ฐ ์ €์žฅ ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ ๋‹จ์ผ ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ์œผ๋กœ ์›ํ™œํ•˜๊ฒŒ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด Improbable์ด ๋งŒ๋“  ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค. ํƒ€๋…ธ์Šค๋Š” Github์—์„œ ์ด์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค ์—ฌ๊ธฐ์—.

Improbable์˜ ์ตœ์‹  ์†Œ์‹์„ ๋ฐ›์•„๋ณด์„ธ์š”.

ํƒ€๋…ธ์Šค์™€ ํ•จ๊ป˜ํ•˜๋Š” ์šฐ๋ฆฌ์˜ ๋ชฉํ‘œ

ํŠน์ • ๊ทœ๋ชจ์—์„œ๋Š” ๋ฐ”๋‹๋ผ ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค์˜ ๋Šฅ๋ ฅ์„ ๋„˜์–ด์„œ๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ํŽ˜ํƒ€๋ฐ”์ดํŠธ ๊ทœ๋ชจ์˜ ๊ธฐ๋ก ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ •์ ์ด๊ณ  ๊ฒฝ์ œ์ ์œผ๋กœ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์‘๋‹ต ์‹œ๊ฐ„์„ ์ €ํ•˜์‹œํ‚ค์ง€ ์•Š๊ณ  ์ด๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‹จ์ผ API ์š”์ฒญ์œผ๋กœ ๋‹ค์–‘ํ•œ Prometheus ์„œ๋ฒ„์— ์žˆ๋Š” ๋ชจ๋“  ์ง€ํ‘œ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? Prometheus HA๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜์ง‘๋œ ๋ณต์ œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒฐํ•ฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” Thanos๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ์„น์…˜์—์„œ๋Š” ์ด๋Ÿฌํ•œ ๋ฌธ์ œ์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ๋ชฉํ‘œ๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ Prometheus ์ธ์Šคํ„ด์Šค์—์„œ ๋ฐ์ดํ„ฐ ์ฟผ๋ฆฌ(์ „์—ญ ์ฟผ๋ฆฌ)

Prometheus๋Š” ์ƒค๋”ฉ์— ๋Œ€ํ•œ ๊ธฐ๋Šฅ์  ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ผ Prometheus ์„œ๋ฒ„๋ผ๋„ ๊ฑฐ์˜ ๋ชจ๋“  ์‚ฌ์šฉ ์‚ฌ๋ก€์—์„œ ์ˆ˜ํ‰ ์ƒค๋”ฉ์˜ ๋ณต์žก์„ฑ์œผ๋กœ๋ถ€ํ„ฐ ์‚ฌ์šฉ์ž๋ฅผ ํ•ด๋ฐฉ์‹œํ‚ฌ ๋งŒํผ ์ถฉ๋ถ„ํ•œ ํ™•์žฅ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ด๋Š” ํ›Œ๋ฅญํ•œ ๋ฐฐํฌ ๋ชจ๋ธ์ด์ง€๋งŒ ๋‹จ์ผ API ๋˜๋Š” UI(์ „์—ญ ๋ณด๊ธฐ)๋ฅผ ํ†ตํ•ด ๋‹ค์–‘ํ•œ Prometheus ์„œ๋ฒ„์˜ ๋ฐ์ดํ„ฐ์— ์•ก์„ธ์Šคํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ํ•˜๋‚˜์˜ Grafana ํŒจ๋„์— ์—ฌ๋Ÿฌ ์ฟผ๋ฆฌ๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ๊ฐ ์ฟผ๋ฆฌ๋Š” ํ•˜๋‚˜์˜ Prometheus ์„œ๋ฒ„์—์„œ๋งŒ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด, Thanos๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‹จ์ผ ์—”๋“œํฌ์ธํŠธ์—์„œ ๋ชจ๋‘ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์—ฌ๋Ÿฌ Prometheus ์„œ๋ฒ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฟผ๋ฆฌํ•˜๊ณ  ์ง‘๊ณ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ „์—๋Š” Improbable์—์„œ ์ „์—ญ ๋ณด๊ธฐ๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด Prometheus ์ธ์Šคํ„ด์Šค๋ฅผ ๋‹ค๋‹จ๊ณ„๋กœ ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ณ„์ธต์  ์—ฐํ•ฉ. ์ด๋Š” ๊ฐ ๋ฆฌํ”„ ์„œ๋ฒ„์—์„œ ์ผ๋ถ€ ๋ฉ”ํŠธ๋ฆญ์„ ์ˆ˜์ง‘ํ•˜๋Š” ํ•˜๋‚˜์˜ Prometheus ๋ฉ”ํƒ€ ์„œ๋ฒ„๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ–ˆ์Šต๋‹ˆ๋‹ค.

ํƒ€๋…ธ์Šค - ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค

์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ํŒ๋ช…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ๊ตฌ์„ฑ์ด ๋” ๋ณต์žกํ•ด์ง€๊ณ , ์ž ์žฌ์ ์ธ ์‹คํŒจ ์ง€์ ์ด ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ, ์—ฐํ•ฉ ์—”๋“œํฌ์ธํŠธ๊ฐ€ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ์ˆ˜์‹ ํ•˜๋„๋ก ๋ณด์žฅํ•˜๋Š” ๋ณต์žกํ•œ ๊ทœ์น™์ด ์ ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋‹จ์ผ API ์š”์ฒญ์—์„œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ์—ฐํ•ฉ์—์„œ๋Š” ์ง„์ •ํ•œ ๊ธ€๋กœ๋ฒŒ ๋ณด๊ธฐ๋ฅผ ์–ป์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ด์™€ ๋ฐ€์ ‘ํ•˜๊ฒŒ ๊ด€๋ จ๋œ ๊ฒƒ์€ ๊ณ ๊ฐ€์šฉ์„ฑ(HA) Prometheus ์„œ๋ฒ„์—์„œ ์ˆ˜์ง‘๋œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ํ†ตํ•ฉ ๋ณด๊ธฐ์ž…๋‹ˆ๋‹ค. Prometheus์˜ HA ๋ชจ๋ธ์€ ๋…๋ฆฝ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋‘ ๋ฒˆ ์ˆ˜์ง‘ํ•˜๋ฏ€๋กœ ์ด๋ณด๋‹ค ๋” ๊ฐ„๋‹จํ•  ์ˆ˜ ์—†์„ ๋งŒํผ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‘ ์ŠคํŠธ๋ฆผ์˜ ๊ฒฐํ•ฉ ๋ฐ ์ค‘๋ณต ์ œ๊ฑฐ ๋ณด๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ๋” ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๋ฌผ๋ก  ๊ฐ€์šฉ์„ฑ์ด ๋†’์€ Prometheus ์„œ๋ฒ„๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. Improbable์—์„œ๋Š” ๋ถ„ ๋‹จ์œ„์˜ ๋ฐ์ดํ„ฐ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ๋งค์šฐ ์ค‘์š”ํ•˜๊ฒŒ ์ƒ๊ฐํ•˜์ง€๋งŒ ํด๋Ÿฌ์Šคํ„ฐ๋‹น ํ•˜๋‚˜์˜ Prometheus ์ธ์Šคํ„ด์Šค๋ฅผ ๋ณด์œ ํ•˜๋Š” ๊ฒƒ์€ ๋‹จ์ผ ์‹คํŒจ ์ง€์ ์ž…๋‹ˆ๋‹ค. ๊ตฌ์„ฑ ์˜ค๋ฅ˜๋‚˜ ํ•˜๋“œ์›จ์–ด ์˜ค๋ฅ˜๋กœ ์ธํ•ด ์ž ์žฌ์ ์œผ๋กœ ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์†์‹ค๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์žฌ์‹œ์ž‘์ด ์Šคํฌ๋ž˜ํ•‘ ๊ฐ„๊ฒฉ๋ณด๋‹ค ์ƒ๋‹นํžˆ ๊ธธ์–ด์งˆ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ฐ„๋‹จํ•œ ๋ฐฐํฌ๋ผ๋„ ๋ฉ”ํŠธ๋ฆญ ์ˆ˜์ง‘์— ์•ฝ๊ฐ„์˜ ์ค‘๋‹จ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์˜ ์•ˆ์ •์ ์ธ ์ €์žฅ

์ €๋ ดํ•˜๊ณ  ๋น ๋ฅด๋ฉฐ ์žฅ๊ธฐ์ ์ธ ๋ฉ”ํŠธ๋ฆญ ์Šคํ† ๋ฆฌ์ง€๋Š” ์šฐ๋ฆฌ์˜ ๊ฟˆ์ž…๋‹ˆ๋‹ค(๋Œ€๋ถ€๋ถ„์˜ Prometheus ์‚ฌ์šฉ์ž๊ฐ€ ๊ณต์œ ํ•จ). Improbable์—์„œ๋Š” ๋ฉ”ํŠธ๋ฆญ ๋ณด์กด ๊ธฐ๊ฐ„์„ 1.8์ผ๋กœ ๊ตฌ์„ฑํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค(Prometheus XNUMX์˜ ๊ฒฝ์šฐ). ์ด๋Š” ์šฐ๋ฆฌ๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋ฉ€๋ฆฌ ๊ณผ๊ฑฐ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋Š”์ง€์— ๋ช…๋ฐฑํ•œ ํ•œ๊ณ„๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

Prometheus 2.0์—์„œ๋Š” ์‹œ๊ณ„์—ด ์ˆ˜๊ฐ€ ๋” ์ด์ƒ ์„œ๋ฒ„์˜ ์ „์ฒด ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ด์™€ ๊ด€๋ จํ•˜์—ฌ ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค(์ฐธ์กฐ: Prometheus 2์— ๋Œ€ํ•œ KubeCon ๊ธฐ์กฐ์—ฐ์„ค). ๊ทธ๋Ÿฌ๋‚˜ Prometheus๋Š” ๋กœ์ปฌ ๋””์Šคํฌ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๊ณ ํšจ์œจ ๋ฐ์ดํ„ฐ ์••์ถ•์œผ๋กœ ๋กœ์ปฌ SSD ์‚ฌ์šฉ๋Ÿ‰์„ ํฌ๊ฒŒ ์ค„์ผ ์ˆ˜ ์žˆ์ง€๋งŒ ๊ถ๊ทน์ ์œผ๋กœ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋ก ๋ฐ์ดํ„ฐ์˜ ์–‘์—๋Š” ์—ฌ์ „ํžˆ ์ œํ•œ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ Improbable์—์„œ๋Š” ์‹ ๋ขฐ์„ฑ, ๋‹จ์ˆœ์„ฑ ๋ฐ ๋น„์šฉ์— ์ค‘์ ์„ ๋‘ก๋‹ˆ๋‹ค. ๋Œ€์šฉ๋Ÿ‰ ๋กœ์ปฌ ๋””์Šคํฌ๋Š” ์ž‘๋™ ๋ฐ ๋ฐฑ์—…์ด ๋” ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ๋น„์šฉ์ด ๋” ๋งŽ์ด ๋“ค๊ณ  ๋” ๋งŽ์€ ๋ฐฑ์—… ๋„๊ตฌ๊ฐ€ ํ•„์š”ํ•˜๋ฏ€๋กœ ๋ถˆํ•„์š”ํ•œ ๋ณต์žก์„ฑ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์šด์ƒ˜ํ”Œ๋ง

๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ ์ž‘์—…์„ ์‹œ์ž‘ํ•œ ํ›„์— ์šฐ๋ฆฌ๋Š” ๋ช‡ ์ฃผ, ๋ช‡ ๋‹ฌ, ๋ช‡ ๋…„์˜ ๋ฐ์ดํ„ฐ๋กœ ์ž‘์—…ํ•  ๋•Œ ์ฟผ๋ฆฌ๋ฅผ ์ ์  ๋” ๋Š๋ฆฌ๊ฒŒ ๋งŒ๋“œ๋Š” big-O์— ๊ทผ๋ณธ์ ์ธ ์–ด๋ ค์›€์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ‘œ์ค€์ ์ธ ํ•ด๊ฒฐ์ฑ…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‹ค์šด์ƒ˜ํ”Œ๋ง (๋‹ค์šด์ƒ˜ํ”Œ๋ง) - ์‹ ํ˜ธ ์ƒ˜ํ”Œ๋ง ์ฃผํŒŒ์ˆ˜๋ฅผ ์ค„์ž…๋‹ˆ๋‹ค. ๋‹ค์šด์ƒ˜ํ”Œ๋ง์„ ์‚ฌ์šฉํ•˜๋ฉด ๋” ํฐ ์‹œ๊ฐ„ ๋ฒ”์œ„๋กœ '์ถ•์†Œ'ํ•˜๊ณ  ๋™์ผํ•œ ์ˆ˜์˜ ์ƒ˜ํ”Œ์„ ์œ ์ง€ํ•˜๋ฉด์„œ ์ฟผ๋ฆฌ ์‘๋‹ต์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ค๋ž˜๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์šด์ƒ˜ํ”Œ๋งํ•˜๋Š” ๊ฒƒ์€ ์žฅ๊ธฐ ์Šคํ† ๋ฆฌ์ง€ ์†”๋ฃจ์…˜์˜ ๋ถˆ๊ฐ€ํ”ผํ•œ ์š”๊ตฌ ์‚ฌํ•ญ์ด๋ฉฐ ๋ฐ”๋‹๋ผ ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค์˜ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚ฉ๋‹ˆ๋‹ค.

์ถ”๊ฐ€ ๋ชฉํ‘œ

Thanos ํ”„๋กœ์ ํŠธ์˜ ์›๋ž˜ ๋ชฉํ‘œ ์ค‘ ํ•˜๋‚˜๋Š” ๊ธฐ์กด Prometheus ์„ค์น˜์™€ ์›ํ™œํ•˜๊ฒŒ ํ†ตํ•ฉํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ ๋ชฉํ‘œ๋Š” ์ง„์ž… ์žฅ๋ฒฝ์„ ์ตœ์†Œํ™”ํ•˜๋ฉด์„œ ์šด์˜์„ ์šฉ์ดํ•˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์ข…์†์„ฑ์€ ์†Œ๊ทœ๋ชจ ์‚ฌ์šฉ์ž์™€ ๋Œ€๊ทœ๋ชจ ์‚ฌ์šฉ์ž ๋ชจ๋‘์—๊ฒŒ ์‰ฝ๊ฒŒ ์ถฉ์กฑ๋˜์–ด์•ผ ํ•˜๋ฉฐ ์ด๋Š” ๊ธฐ๋ณธ ๋น„์šฉ๋„ ๋‚ฎ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

ํƒ€๋…ธ์Šค ์•„ํ‚คํ…์ฒ˜

์ด์ „ ์„น์…˜์—์„œ ์šฐ๋ฆฌ์˜ ๋ชฉํ‘œ๋ฅผ ๋‚˜์—ดํ•œ ํ›„ ์ด๋ฅผ ํ†ตํ•ด ์ž‘์—…ํ•˜๊ณ  Thanos๊ฐ€ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•˜๋Š”์ง€ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ธ€๋กœ๋ฒŒ ๋ทฐ

๊ธฐ์กด Prometheus ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•œ ์ „์—ญ ๋ณด๊ธฐ๋ฅผ ์–ป์œผ๋ ค๋ฉด ๋‹จ์ผ ์š”์ฒญ ์ง„์ž…์ ์„ ๋ชจ๋“  ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋ฐ”๋กœ Thanos ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…์ž…๋‹ˆ๋‹ค. ์‚ฌ์ด๋“œ์นด. ์ด๋Š” ๊ฐ Prometheus ์„œ๋ฒ„ ์˜†์— ๋ฐฐํฌ๋˜๊ณ  ํ”„๋ก์‹œ ์—ญํ• ์„ ํ•˜์—ฌ gRPC Store API๋ฅผ ํ†ตํ•ด ๋กœ์ปฌ Prometheus ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•˜๋ฏ€๋กœ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋ฅผ ํƒœ๊ทธ ๋ฐ ์‹œ๊ฐ„ ๋ฒ”์œ„๋ณ„๋กœ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์ธก๋ฉด์—๋Š” ํ‘œ์ค€ Prometheus HTTP API๋ฅผ ํ†ตํ•ด PromQL ์ฟผ๋ฆฌ์— ์‘๋‹ตํ•˜๋Š” ๊ฒƒ ์ด์ƒ์˜ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํ™•์žฅํ˜• ์ƒํƒœ ๋น„์ €์žฅ Querier ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฟผ๋ฆฌ์–ด(Querier), ์‚ฌ์ด๋“œ์นด(Sidecar) ๋ฐ ๊ธฐํƒ€ Thanos ๊ตฌ์„ฑ ์š”์†Œ๋Š” ๋‹ค์Œ์„ ํ†ตํ•ด ํ†ต์‹ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์‹ญ ํ”„๋กœํ† ์ฝœ.

ํƒ€๋…ธ์Šค - ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค

  1. Querier๋Š” ์š”์ฒญ์„ ๋ฐ›์œผ๋ฉด ํ•ด๋‹น Store API ์„œ๋ฒ„, ์ฆ‰ ์‚ฌ์ด๋“œ์นด์— ์—ฐ๊ฒฐํ•˜๊ณ  ํ•ด๋‹น Prometheus ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ํ•ฉ๋‹ˆ๋‹ค.
  2. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์‘๋‹ต์„ ๊ฒฐํ•ฉํ•˜๊ณ  ์ด์— ๋Œ€ํ•ด 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 ๊ตฌ์„ฑ ์š”์†Œ์— ๋Œ€ํ•ด ๋ฐฐ์šด ๋‚ด์šฉ์„ ๋น ๋ฅด๊ฒŒ ์š”์•ฝํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋‹๋ผ ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค๋ฅผ "๋ฌด์ œํ•œ ์ง€ํ‘œ ์ €์žฅ"์˜ ์„ธ๊ณ„๋กœ ๊ฐ€์ ธ๊ฐ€๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํƒ€๋…ธ์Šค - ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค

  1. Prometheus ์„œ๋ฒ„์— Thanos ์‚ฌ์ด๋“œ์นด๋ฅผ ์ถ”๊ฐ€ํ•˜์„ธ์š”(์˜ˆ: Kubernetes ํฌ๋“œ์˜ ์‚ฌ์ด๋“œ์นด ์ปจํ…Œ์ด๋„ˆ).
  2. ๋ฐ์ดํ„ฐ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ์—ฌ๋Ÿฌ Thanos Querier ๋ณต์ œ๋ณธ์„ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค. ์ด ๋‹จ๊ณ„์—์„œ๋Š” Scraper์™€ Querier ์‚ฌ์ด์— ๊ฐ€์‹ญ์„ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์‰ฝ์Šต๋‹ˆ๋‹ค. ๊ตฌ์„ฑ ์š”์†Œ์˜ ์ƒํ˜ธ ์ž‘์šฉ์„ ํ™•์ธํ•˜๋ ค๋ฉด 'thanos_cluster_members' ์ธก์ •ํ•ญ๋ชฉ์„ ์‚ฌ์šฉํ•˜์„ธ์š”.

์ด ๋‘ ๋‹จ๊ณ„๋งŒ์œผ๋กœ๋„ ์ž ์žฌ์ ์ธ Prometheus HA ๋ณต์ œ๋ณธ์—์„œ ๊ธ€๋กœ๋ฒŒ ๋ทฐ์™€ ์›ํ™œํ•œ ๋ฐ์ดํ„ฐ ์ค‘๋ณต ์ œ๊ฑฐ๋ฅผ ์ œ๊ณตํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค! ๋Œ€์‹œ๋ณด๋“œ๋ฅผ Querier HTTP ์—”๋“œํฌ์ธํŠธ์— ์—ฐ๊ฒฐํ•˜๊ฑฐ๋‚˜ Thanos UI๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ง€ํ‘œ ๋ฐฑ์—… ๋ฐ ์žฅ๊ธฐ ์ €์žฅ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋‹ค์Œ ์„ธ ๋‹จ๊ณ„๋ฅผ ๋” ์™„๋ฃŒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  1. AWS S3 ๋˜๋Š” GCS ๋ฒ„ํ‚ท์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฒ„ํ‚ท์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์‚ฌํ•˜๋„๋ก ์‚ฌ์ด๋“œ์นด๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ ๋กœ์ปฌ ๋ฐ์ดํ„ฐ ์ €์žฅ ๊ณต๊ฐ„์„ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. Store Gateway๋ฅผ ๋ฐฐํฌํ•˜๊ณ  ์ด๋ฅผ ๊ธฐ์กด ๊ฐ€์‹ญ ํด๋Ÿฌ์Šคํ„ฐ์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ ๋ฐฑ์—…๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฟผ๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!
  3. ์••์ถ• ๋ฐ ๋‹ค์šด์ƒ˜ํ”Œ๋ง์„ ์‚ฌ์šฉํ•˜์—ฌ ์žฅ๊ธฐ๊ฐ„์— ๊ฑธ์ณ ์ฟผ๋ฆฌ ํšจ์œจ์„ฑ์„ ํ–ฅ์ƒํ•˜๋ ค๋ฉด Compactor๋ฅผ ๋ฐฐํฌํ•˜์„ธ์š”.

๋” ์•Œ๊ณ  ์‹ถ๋‹ค๋ฉด ์ฃผ์ €ํ•˜์ง€ ๋ง๊ณ  ์šฐ๋ฆฌ์˜ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋งค๋‹ˆํŽ˜์ŠคํŠธ ์˜ˆ์‹œ ะธ ์‹œ์ž‘ํ•˜๊ธฐ!

๋‹จ XNUMX๋‹จ๊ณ„๋งŒ์œผ๋กœ ์šฐ๋ฆฌ๋Š” Prometheus๋ฅผ ์ „์—ญ ๋ณด๊ธฐ, ๋ฌด์ œํ•œ ์ €์žฅ ์‹œ๊ฐ„ ๋ฐ ์ž ์žฌ์ ์ธ ๊ณ ๊ฐ€์šฉ์„ฑ ์ง€ํ‘œ๋ฅผ ๊ฐ–์ถ˜ ์•ˆ์ •์ ์ธ ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ์œผ๋กœ ์ „ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ’€ ๋ฆฌํ€˜์ŠคํŠธ: ๋‹น์‹ ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค!

Thanos ๋Š” ์ฒ˜์Œ๋ถ€ํ„ฐ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์˜€์Šต๋‹ˆ๋‹ค. Prometheus์™€์˜ ์›ํ™œํ•œ ํ†ตํ•ฉ ๋ฐ Thanos์˜ ์ผ๋ถ€๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์€ ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ์„ ์†์‰ฝ๊ฒŒ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋Š” ํƒ์›”ํ•œ ์„ ํƒ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” GitHub Pull Request์™€ Issues๋ฅผ ์–ธ์ œ๋‚˜ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋™์•ˆ Github Issues๋‚˜ Slack์„ ํ†ตํ•ด ์–ธ์ œ๋“ ์ง€ ๋ฌธ์˜ํ•ด ์ฃผ์„ธ์š”. Improbable-eng #ํƒ€๋…ธ์Šค์งˆ๋ฌธ์ด๋‚˜ ํ”ผ๋“œ๋ฐฑ์ด ์žˆ๊ฑฐ๋‚˜ ์‚ฌ์šฉ ๊ฒฝํ—˜์„ ๊ณต์œ ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด! Improbable์˜ ์—…๋ฌด๊ฐ€ ๋งˆ์Œ์— ๋“œ์‹ ๋‹ค๋ฉด, ์ฃผ์ €ํ•˜์ง€ ๋งˆ์‹œ๊ณ  ์—ฐ๋ฝ์ฃผ์„ธ์š”. ์šฐ๋ฆฌ์—๊ฒ ํ•ญ์ƒ ๋นˆ์ž๋ฆฌ๊ฐ€ ์žˆ์–ด์š”!

๊ณผ์ •์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด์„ธ์š”.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€