Kubernetes์˜ Pod ์šฐ์„ ์ˆœ์œ„๊ฐ€ Grafana Labs์˜ ๊ฐ€๋™ ์ค‘์ง€ ์‹œ๊ฐ„์„ ์ดˆ๋ž˜ํ•œ ๋ฐฉ๋ฒ•

๋ฉ”๋ชจ. ๋ฒˆ์—ญ: Grafana ์ œ์ž‘์ž๊ฐ€ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๋Š” ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค์˜ ์ตœ๊ทผ ๋‹ค์šดํƒ€์ž„ ์ด์œ ์— ๋Œ€ํ•œ ๊ธฐ์ˆ ์ ์ธ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ด๋Š” ์ธํ”„๋ผ์˜ ํ’ˆ์งˆ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์„ค๊ณ„๋œ ์ƒˆ๋กญ๊ณ  ๋งค์šฐ ์œ ์šฉํ•ด ๋ณด์ด๋Š” ๊ธฐ๋Šฅ์ด ์ƒ์‚ฐ ํ˜„์‹ค์—์„œ ํ•ด๋‹น ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ์ˆ˜๋งŽ์€ ๋‰˜์•™์Šค๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์œผ๋ฉด ํ•ด๋ฅผ ๋ผ์น  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ „ํ˜•์ ์ธ ์˜ˆ์ž…๋‹ˆ๋‹ค. ์‹ค์ˆ˜๋กœ๋ถ€ํ„ฐ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋Š” ์ด์™€ ๊ฐ™์€ ์ž๋ฃŒ๊ฐ€ ๋‚˜ํƒ€๋‚˜๋ฉด ์ •๋ง ์ข‹์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Grafana Labs ์ œํ’ˆ ๋‹ด๋‹น ๋ถ€์‚ฌ์žฅ์˜ ์ด ํ…์ŠคํŠธ ๋ฒˆ์—ญ์— ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค.

Kubernetes์˜ Pod ์šฐ์„ ์ˆœ์œ„๊ฐ€ Grafana Labs์˜ ๊ฐ€๋™ ์ค‘์ง€ ์‹œ๊ฐ„์„ ์ดˆ๋ž˜ํ•œ ๋ฐฉ๋ฒ•

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

์„ ์‚ฌ ์‹œ๋Œ€

Grafana Cloud Hosted Prometheus ์„œ๋น„์Šค๋Š” ๋‹ค์Œ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ํ”ผ์งˆ โ€” ์ˆ˜ํ‰ ํ™•์žฅ์ด ๊ฐ€๋Šฅํ•˜๊ณ  ๊ฐ€์šฉ์„ฑ์ด ๋†’์€ ๋‹ค์ค‘ ํ…Œ๋„ŒํŠธ Prometheus ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ CNCF ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค. Cortex ์•„ํ‚คํ…์ฒ˜๋Š” ๋ณต์ œ, ์ €์žฅ, ์ฟผ๋ฆฌ ๋“ฑ ์ž์ฒด ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฐœ๋ณ„ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์„ธํŠธ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. Cortex๋Š” ํ™œ๋ฐœํžˆ ๊ฐœ๋ฐœ ์ค‘์ด๋ฉฐ ์ง€์†์ ์œผ๋กœ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณ ๊ฐ์ด ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ •๊ธฐ์ ์œผ๋กœ ์ƒˆ๋กœ์šด Cortex ๋ฆด๋ฆฌ์Šค๋ฅผ ํด๋Ÿฌ์Šคํ„ฐ์— ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค. ๋‹คํ–‰์Šค๋Ÿฝ๊ฒŒ๋„ Cortex๋Š” ๊ฐ€๋™ ์ค‘์ง€ ์‹œ๊ฐ„ ์—†์ด ์—…๋ฐ์ดํŠธ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์›ํ™œํ•œ ์—…๋ฐ์ดํŠธ๋ฅผ ์œ„ํ•ด Ingester Cortex ์„œ๋น„์Šค์—๋Š” ์—…๋ฐ์ดํŠธ ํ”„๋กœ์„ธ์Šค ์ค‘์— ์ถ”๊ฐ€ Ingester ๋ณต์ œ๋ณธ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. (๋ฉ”๋ชจ. ๋ฒˆ์—ญ: ์„ญ์ทจ๊ธฐ - Cortex์˜ ๊ธฐ๋ณธ ๊ตฌ์„ฑ ์š”์†Œ์ž…๋‹ˆ๋‹ค. ๊ทธ ์ž„๋ฌด๋Š” ์ƒ˜ํ”Œ์˜ ์ง€์†์ ์ธ ์ŠคํŠธ๋ฆผ์„ ์ˆ˜์ง‘ํ•˜๊ณ  ์ด๋ฅผ Prometheus ์ฒญํฌ๋กœ ๊ทธ๋ฃนํ™”ํ•˜์—ฌ DynamoDB, BigTable ๋˜๋Š” Cassandra์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.) ์ด๋ฅผ ํ†ตํ•ด ๊ธฐ์กด Ingester๊ฐ€ ํ˜„์žฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒˆ Ingester๋กœ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Ingester์—๋Š” ๋ฆฌ์†Œ์Šค๊ฐ€ ๋งŽ์ด ํ•„์š”ํ•˜๋‹ค๋Š” ์ ์€ ์ฃผ๋ชฉํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž‘๋™ํ•˜๋ ค๋ฉด ํฌ๋“œ๋‹น 4๊ฐœ์˜ ์ฝ”์–ด์™€ 15GB์˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ฒฝ์šฐ ๊ธฐ๋ณธ ๋จธ์‹  ์ฒ˜๋ฆฌ ๋Šฅ๋ ฅ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ์˜ 25%. ์ผ๋ฐ˜์ ์œผ๋กœ ํด๋Ÿฌ์Šคํ„ฐ์—๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ 4๊ฐœ ์ฝ”์–ด์™€ 15GB ๋ฉ”๋ชจ๋ฆฌ๋ณด๋‹ค ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๋ฆฌ์†Œ์Šค๊ฐ€ ํ›จ์”ฌ ๋” ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ์—…๊ทธ๋ ˆ์ด๋“œ ์ค‘์— ์ด๋Ÿฌํ•œ ์ถ”๊ฐ€ ์ˆ˜์ง‘๊ธฐ๋ฅผ ์‰ฝ๊ฒŒ ๊ฐ€๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ •์ƒ ์ž‘๋™ ์ค‘์— ์–ด๋–ค ์‹œ์Šคํ…œ๋„ ์‚ฌ์šฉ๋˜์ง€ ์•Š์€ ๋ฆฌ์†Œ์Šค์˜ 25%๋ฅผ ๋ณด์œ ํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ข…์ข… ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ, ์šฐ๋ฆฌ๋Š” ๋…ธ๋ ฅ์กฐ์ฐจ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. CPU์™€ ๋ฉ”๋ชจ๋ฆฌ๋Š” ํ•ญ์ƒ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์— ์œ ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. Kubernetes ํฌ๋“œ ์šฐ์„ ์ˆœ์œ„. Ingester์—๊ฒŒ ๋‹ค๋ฅธ (์ƒํƒœ ๋น„์ €์žฅ) ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ณด๋‹ค ๋” ๋†’์€ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋ถ€์—ฌํ•˜๋Š” ๊ฒƒ์ด ์•„์ด๋””์–ด์ž…๋‹ˆ๋‹ค. ์ถ”๊ฐ€(N+1) Ingester๋ฅผ ์‹คํ–‰ํ•ด์•ผ ํ•  ๊ฒฝ์šฐ ์ผ์‹œ์ ์œผ๋กœ ๋‹ค๋ฅธ ์ž‘์€ ํฌ๋“œ๋ฅผ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํฌ๋“œ๋Š” ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์˜ ๋ฌด๋ฃŒ ๋ฆฌ์†Œ์Šค๋กœ ์ „์†ก๋˜์–ด ์ถ”๊ฐ€ Ingester๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์„ ๋งŒํผ ์ถฉ๋ถ„ํžˆ ํฐ "๊ตฌ๋ฉ"์„ ๋‚จ๊น๋‹ˆ๋‹ค.

18์›” XNUMX์ผ ๋ชฉ์š”์ผ์— ์šฐ๋ฆฌ๋Š” ํด๋Ÿฌ์Šคํ„ฐ์— XNUMX๊ฐ€์ง€ ์ƒˆ๋กœ์šด ์šฐ์„ ์ˆœ์œ„ ์ˆ˜์ค€์„ ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. ์œ„๋…ํ•œ, ํ‚ค๊ฐ€ ํฐ, ๋งค์ฒด ะธ ๋‚ฎ์€. ์•ฝ XNUMX์ฃผ์ผ ๋™์•ˆ ํด๋ผ์ด์–ธํŠธ ํŠธ๋ž˜ํ”ฝ์ด ์—†๋Š” ๋‚ด๋ถ€ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ํ…Œ์ŠคํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์ •๋œ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ์—†๋Š” Pod๋Š” ์ˆ˜์‹ ๋ฉ๋‹ˆ๋‹ค. ๋งค์ฒด ์šฐ์„ ์ˆœ์œ„, ํด๋ž˜์Šค๋Š” Ingesters์— ๋Œ€ํ•ด ์„ค์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋†’์Œ ์šฐ์„  ์‚ฌํ•ญ. ์œ„๋…ํ•œ ๋ชจ๋‹ˆํ„ฐ๋ง์šฉ์œผ๋กœ ์˜ˆ์•ฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค(Prometheus, Alertmanager, node-exporter, kube-state-metrics ๋“ฑ). ์šฐ๋ฆฌ์˜ ๊ตฌ์„ฑ์ด ์—ด๋ ค ์žˆ์œผ๋ฉฐ PR์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ์—ฌ๊ธฐ์—.

์ถฉ๋Œ

19์›” XNUMX์ผ ๊ธˆ์š”์ผ์— ์—”์ง€๋‹ˆ์–ด ์ค‘ ํ•œ ๋ช…์ด ๋Œ€๊ทœ๋ชจ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์œ„ํ•œ ์ƒˆ๋กœ์šด ์ „์šฉ Cortex ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ตฌ์„ฑ์—๋Š” ์ƒˆ ํฌ๋“œ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ํฌํ•จ๋˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ ๋ชจ๋“  ์ƒˆ ํฌ๋“œ์— ๊ธฐ๋ณธ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ํ• ๋‹น๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋งค์ฒด.

Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์—๋Š” ์ƒˆ Cortex ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์œ„ํ•œ ๋ฆฌ์†Œ์Šค๊ฐ€ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์•˜์œผ๋ฉฐ ๊ธฐ์กด ํ”„๋กœ๋•์…˜ Cortex ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ะฒั‹ัะพะบะพะณะพ ์šฐ์„  ์‚ฌํ•ญ). ๊ธฐ๋ณธ์ ์œผ๋กœ ์ƒˆ ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ˆ˜์ง‘๊ธฐ๋Š” ๋งค์ฒด ์šฐ์„ ์ˆœ์œ„๊ฐ€ ์žˆ๊ณ  ํ”„๋กœ๋•์…˜์˜ ๊ธฐ์กด ํฌ๋“œ๊ฐ€ ์ „ํ˜€ ์šฐ์„ ์ˆœ์œ„ ์—†์ด ์ž‘๋™ํ•œ ๊ฒฝ์šฐ ์ƒˆ ํด๋Ÿฌ์Šคํ„ฐ์˜ Ingester๊ฐ€ ๊ธฐ์กด Cortex ํ”„๋กœ๋•์…˜ ํด๋Ÿฌ์Šคํ„ฐ์˜ Ingester๋ฅผ ๋Œ€์ฒดํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ๋•์…˜ ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ œ๊ฑฐ๋œ Ingester์— ๋Œ€ํ•œ ReplicaSet๋Š” ์ œ๊ฑฐ๋œ Pod๋ฅผ ๊ฐ์ง€ํ•˜๊ณ  ์ง€์ •๋œ ๋ณต์‚ฌ๋ณธ ์ˆ˜๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ƒˆ Pod๋ฅผ ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ํฌ๋“œ๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ• ๋‹น๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋งค์ฒด ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋‚ฎ๊ณ  ํ”„๋กœ๋•์…˜์— ์žˆ๋Š” ๋˜ ๋‹ค๋ฅธ "์˜ค๋ž˜๋œ" Ingester๊ฐ€ ๋ฆฌ์†Œ์Šค๋ฅผ ์žƒ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๋Š” ๋ˆˆ์‚ฌํƒœ ๊ณผ์ •์ด๋กœ ์ธํ•ด Cortex ํ”„๋กœ๋•์…˜ ํด๋Ÿฌ์Šคํ„ฐ์šฉ Ingester์—์„œ ๋ชจ๋“  ํฌ๋“œ๊ฐ€ ๋Œ€์ฒด๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ˆ˜์ง‘๊ธฐ๋Š” ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๋ฉฐ ์ง€๋‚œ 12์‹œ๊ฐ„ ๋™์•ˆ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์žฅ๊ธฐ ์ €์žฅ์†Œ์— ์“ฐ๊ธฐ ์ „์— ๋ณด๋‹ค ํšจ์œจ์ ์œผ๋กœ ์••์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด Cortex๋Š” DHT(๋ถ„์‚ฐ ํ•ด์‹œ ํ…Œ์ด๋ธ”)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ๋ฆฌ์ฆˆ ์ „์ฒด์— ๊ฑธ์ณ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„ํ• ํ•˜๊ณ  Dynamo ์Šคํƒ€์ผ ์ฟผ๋Ÿผ ์ผ๊ด€์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ธ ๊ฐœ์˜ ์ˆ˜์ง‘๊ธฐ์— ๊ฑธ์ณ ๊ฐ ์‹œ๋ฆฌ์ฆˆ๋ฅผ ๋ณต์ œํ•ฉ๋‹ˆ๋‹ค. Cortex๋Š” ๋น„ํ™œ์„ฑํ™”๋œ Ingester์— ๋ฐ์ดํ„ฐ๋ฅผ ์“ฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋งŽ์€ ์ˆ˜์˜ Ingester๊ฐ€ DHT๋ฅผ ๋– ๋‚˜๋ฉด Cortex๋Š” ํ•ญ๋ชฉ์˜ ์ถฉ๋ถ„ํ•œ ๋ณต์ œ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

ํƒ์ง€ ๋ฐ ์น˜๋ฃŒ

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

XNUMX๋ถ„ ํ›„์— ๊ธฐ์กด Ingester๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ๊ธฐ๋กํ•˜๊ณ  ์ƒˆ Ingester๊ฐ€ ์‹œ์ž‘๋˜์—ˆ์œผ๋ฉฐ Cortex ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋‹ค์‹œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

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

์—ฌํŒŒ

์ด ๋‹ค์šดํƒ€์ž„์€ 26๋ถ„์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ์†์‹ค๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ˆ˜์ง‘๊ธฐ๊ฐ€ ๋ชจ๋“  ๋ฉ”๋ชจ๋ฆฌ ๋‚ด ๋ฐ์ดํ„ฐ๋ฅผ ์žฅ๊ธฐ ์Šคํ† ๋ฆฌ์ง€์— ์„ฑ๊ณต์ ์œผ๋กœ ๋กœ๋“œํ–ˆ์Šต๋‹ˆ๋‹ค. ์ข…๋ฃŒ ์ค‘์— ๋ฒ„ํผ๋ง๋œ ํด๋ผ์ด์–ธํŠธ Prometheus ์„œ๋ฒ„๊ฐ€ ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. (๋–จ์–ด์ ธ์„œ) ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋…น์Œ ์ƒˆ๋กœ์šด API ์›๊ฒฉ_์“ฐ๊ธฐ WAL ๊ธฐ๋ฐ˜(์ž‘์„ฑ์ž: ์นผ๋Ÿผ ์Šคํ‹ฐ์•ˆ Grafana Labs์—์„œ) ์ถฉ๋Œ ํ›„ ์‹คํŒจํ•œ ์“ฐ๊ธฐ๋ฅผ ๋ฐ˜๋ณตํ–ˆ์Šต๋‹ˆ๋‹ค.

Kubernetes์˜ Pod ์šฐ์„ ์ˆœ์œ„๊ฐ€ Grafana Labs์˜ ๊ฐ€๋™ ์ค‘์ง€ ์‹œ๊ฐ„์„ ์ดˆ๋ž˜ํ•œ ๋ฐฉ๋ฒ•
ํ”„๋กœ๋•์…˜ ํด๋Ÿฌ์Šคํ„ฐ ์“ฐ๊ธฐ ์ž‘์—…

์กฐ์‚ฌ ๊ฒฐ๊ณผ

์ด๋ฒˆ ์‚ฌ๊ฑด์„ ํ†ตํ•ด ๊ตํ›ˆ์„ ์–ป๊ณ  ์žฌ๋ฐœ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์กฐ์น˜๋ฅผ ์ทจํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

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

๊ตฌ์„ฑ์ด ํด๋Ÿฌ์Šคํ„ฐ ์ „์ฒด์— ๊ฑธ์ณ ์žˆ๋Š” ์ถ”๊ฐ€ ๊ฐœ์ฒด์˜ ๋ฐฐํฌ์— ๋Œ€ํ•œ ์ œ์–ด ์ˆ˜์ค€์„ ์ถ”๊ฐ€ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด์ œ๋ถ€ํ„ฐ ์ด๋Ÿฌํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ํ‰๊ฐ€๋ฉ๋‹ˆ๋‹ค.ะพ๋” ๋งŽ์€ ์‚ฌ๋žŒ. ๋˜ํ•œ ์ถฉ๋Œ์„ ์ผ์œผํ‚จ ์ˆ˜์ • ์‚ฌํ•ญ์€ ๋ณ„๋„์˜ ํ”„๋กœ์ ํŠธ ๋ฌธ์„œ์— ๋น„ํ•ด ๋„ˆ๋ฌด ์‚ฌ์†Œํ•œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋˜์–ด GitHub ๋ฌธ์ œ์—์„œ๋งŒ ๋…ผ์˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ๋ถ€ํ„ฐ ๊ตฌ์„ฑ์— ๋Œ€ํ•œ ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์—๋Š” ์ ์ ˆํ•œ ํ”„๋กœ์ ํŠธ ๋ฌธ์„œ๊ฐ€ ์ˆ˜๋ฐ˜๋ฉ๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ, ์šฐ๋ฆฌ๊ฐ€ ๋ชฉ๊ฒฉํ•œ ๊ณผ๋ถ€ํ•˜ OOM์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ธ์ฆ ์—ญ๋ฐฉํ–ฅ ํ”„๋ก์‹œ์˜ ํฌ๊ธฐ ์กฐ์ •์„ ์ž๋™ํ™”ํ•˜๊ณ , ํด๋ฐฑ ๋ฐ ํ™•์žฅ๊ณผ ๊ด€๋ จ๋œ Prometheus ๊ธฐ๋ณธ ์„ค์ •์„ ๊ฒ€ํ† ํ•˜์—ฌ ํ–ฅํ›„ ์œ ์‚ฌํ•œ ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ์‹คํŒจ๋Š” ๋˜ํ•œ ๋ช‡ ๊ฐ€์ง€ ๊ธ์ •์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ฐ›์€ Cortex๋Š” ์ถ”๊ฐ€ ๊ฐœ์ž… ์—†์ด ์ž๋™์œผ๋กœ ๋ณต๊ตฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋˜ํ•œ ํ•จ๊ป˜ ์ผํ•˜๋ฉด์„œ ๊ท€์ค‘ํ•œ ๊ฒฝํ—˜์„ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ผํŒŒ๋‚˜ ๋กœํ‚ค - ์ƒˆ๋กœ์šด ๋กœ๊ทธ ์ง‘๊ณ„ ์‹œ์Šคํ…œ - ๋ชจ๋“  Ingester๊ฐ€ ์žฅ์•  ๋ฐœ์ƒ ๋„์ค‘ ๋ฐ ์žฅ์•  ์ดํ›„์— ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

๋ฒˆ์—ญ๊ฐ€์˜ ์ถ”์‹ 

๋ธ”๋กœ๊ทธ์—์„œ๋„ ์ฝ์–ด๋ณด์„ธ์š”.

์ถœ์ฒ˜ : habr.com

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