All Articles

ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค์˜ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„ TSDB

์ œ๋ชฉ์„ ๋ณด์‹œ๊ณ  ํฅ๋ฏธ๊ฐ€ ๊ฐ€์‹œ๋ฉด ์•„๋ž˜ ๊ธ€์„ ์ฝ์œผ์‹œ๋ฉด ๋˜๋Š”๋ฐ, ๋น ๋ฅด๊ฒŒ ๊ฒ‰๋งŒ ํ•ฅ๊ณ  ์‹ถ์€ ๋ถ„๋“ค์ด ๊ณ„์‹ค๊นŒํ•ด์„œ ๊ณต๋ถ€ ๊ฒธ ์ •๋ฆฌํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.


TSDB

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

์›๋ž˜ ํฌ์ŠคํŒ…์€ ์ €์žฅํ•  ๋ฉ”ํŠธ๋ฆญ์˜ ๋ชจ์–‘, ๊ธฐ์กด ๊ตฌ์กฐ์˜ ๋ฌธ์ œ์ ์„ ์„ค๋ช…ํ•˜๋Š๋ผ๊ณ  ์•ž๋ถ€๋ถ„์ด ๊ธด๋ฐ, ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค ํ˜„์žฌ ๋ฒ„์ „ (2์ ๋Œ€)์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ๋‹ค๋ฃฌ ๋ถ€๋ถ„๋งŒ ๋ณด๋ฉด ์€๊ทผํžˆ ๋‚ด์šฉ์ด ๊ฐ„๋‹จํ•˜๋‹ค.

  • ์‹œ๊ฐ„ ๋‹จ์œ„๋กœ ์ฒญํฌ๋ฅผ ๋‚˜๋ˆˆ๋‹ค.
    • 2์‹œ๊ฐ„์„ ํ•œ chunk์˜ ๋‹จ์œ„๋กœ ํ•œ๋‹ค๋ฉด ํ˜„์žฌ~2์‹œ๊ฐ„ ์ „ ๋ฐ์ดํ„ฐ๋Š” ๋ฉ”๋ชจ๋ฆฌ + WAL์—๋‹ค๊ฐ€ ์“ฐ๊ณ , 2์‹œ๊ฐ„์ด ์ง€๋‚œ ๋ฐ์ดํ„ฐ๋Š” ๋””์Šคํฌ์— ์ €์žฅํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.
    • mmap์„ ์‚ฌ์šฉํ•ด์„œ ์–ด๋–ค chunk๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ๋†“์„์ง€, ์–ธ์ œ ๋ฉ”๋ชจ๋ฆฌ์—์„œ evictํ• ์ง€ ๋“ฑ์„ OS์— ์œ„์ž„ํ•œ๋‹ค๊ณ  ํ•œ๋‹ค (์นดํ”„์นด๊ฐ€ ํŽ˜์ด์ง€ ์บ์‹œ๋ฅผ ์—ด์‹ฌํžˆ ์“ฐ๋Š”๊ฑฐ๋ž‘ ๋น„์Šทํ•˜๋‹ค - ์‚ฌ์‹ค ๋‘˜ ๋‹ค ์ˆœ์„œ๋Œ€๋กœ append-only๋‹ˆ๊นŒ ๋น„์Šทํ•  ์ˆ˜ ๋ฐ–์— ์—†๋‹ค)
    • ๋ฆฌํ…์…˜ ์ •์ฑ…์— ๋”ฐ๋ผ ๋”์ด์ƒ ์•ˆ๋ด๋„ ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ง€์›Œ์•ผ ํ•˜๋Š”๋ฐ, ๊ทธ๋ƒฅ ๋”์ด์ƒ ํ•„์š”์—†์–ด์ง„ chunk์— ํ•ด๋‹นํ•˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ง€์šฐ๋ฉด ๋œ๋‹ค
  • compaction: ์กด์žฌํ•˜๋Š” ์ฒญํฌ๋ฅผ ํ•ฉ์น˜๊ธฐ๋„ ํ•œ๋‹ค
    • ์ฒญํฌ์˜ ์ตœ์†Œ ์‚ฌ์ด์ฆˆ๋Š” ์ฒญํฌ๊ฐ€ ๋งŒ๋“ค์–ด์ง€๊ธฐ ์ „ - ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•˜๋Š” ๊ธฐ๊ฐ„ - ์„ ์ ๋‹นํžˆ ์งง๊ฒŒ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ •ํ•ด์ง„๋‹ค
    • ํ•˜์ง€๋งŒ ์ฟผ๋ฆฌํ•˜๋Š” ๊ด€์ ์—์„œ๋Š” ์ฒญํฌ๊ฐ€ ์ข€ ๋” ํฐ ๊ฒƒ์ด ์ข‹๋‹ค.
  • ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ ์‹œ๋ฆฌ์ฆˆ์— ๋ถ™์–ด์žˆ๋Š” label์„ ๋งŽ์ด ์‚ฌ์šฉํ• ํ…๋ฐ ๋ผ๋ฒจ์— ์†ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด์„œ inverted index๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

์—ฌ๊ธฐ์„œ ๋” ๊นŠ๊ฒŒ ๋“ค์–ด๊ฐ€์‹œ๊ณ  ์‹ถ๋‹ค๋ฉด Prometheus TSDB (Part 1): The Head Block ์‹œ๋ฆฌ์ฆˆ์— ์ •๋ฆฌ๊ฐ€ ๋˜ ์žˆ์œผ๋‹ˆ ๊ฐ€์„œ ๋” ๋ณด์…”๋„ ์ข‹๊ฒ ๋‹ค (์ƒˆ๋กœ์šด ์ปจํŠธ๋ฆฌ๋ทฐํ„ฐ๋“ค์ด ๊ตฌ์กฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ดํ•ดํ•˜๊ณ  ์ž‘์—…์— ๋“ค์–ด๊ฐˆ ๋ชฉ์ ์œผ๋กœ ์ ๊ณ  ๊ณ„์‹ ๋‹ค๊ณ ..)

๋กœ์ปฌ ๋””์Šคํฌ๋งŒ ์จ๋„ ์ €๋ ‡๊ฒŒ ์ข‹์œผ๋ฉด ํƒ€๋…ธ์Šค๊ฐ€ ์™œ ํ•„์š”ํ• ๊นŒ?

์‚ฌ์‹ค ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค ์„œ๋ฒ„ ํ•˜๋‚˜์—์„œ๋„ ์ดˆ๋‹น ๋ฐฑ๋งŒ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ง‘์–ด๋„ฃ์„ ์ˆ˜ ์žˆ๊ณ , ๋ง์ด ๋กœ์ปฌ ๋””์Šคํฌ์ง€ EBS, Ceph์„ ๋งˆ์šดํŠธํ•˜๋ฉด ๋‚ด๋ถ€์ ์œผ๋กœ ๋ณต์ œ๋ฅผ ํ•˜๋‹ˆ๊นŒ ๊ฝค๋‚˜ persistentํ•˜๋‹ค. ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  Thanos๊ฐ€ ์™œ ํ•„์š”ํ•œ๊ฐ€โ€ฆ? ๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋‹ค. Thanos๊ฐ€ ์ฒ˜์Œ ๋‚˜์˜ฌ ๋•Œ ๊ธ€์— ๋ชจํ‹ฐ๋ฒ ์ด์…˜์ด ์ž˜ ์„ค๋ช…๋˜์–ด ์žˆ๋‹ค .

  • 1: ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค ์„œ๋ฒ„ ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ํ•˜๋‚˜์˜ ๋ทฐ๋กœ ๋ณด๊ณ  ์‹ถ๋‹ค

    • ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค ์„œ๋ฒ„ ๋ณ„๋กœ ์ˆ˜์ง‘ํ•˜๋Š” ๋ฉ”ํŠธ๋ฆญ์ด ๋‹ค๋ฅธ๋ฐ ๊ทธ๋ผํŒŒ๋‚˜์—์„œ ๊ทธ๋ž˜ํ”„ ํ•˜๋‚˜์— ๊ทธ๋ฆฌ๊ณ  ์‹ถ์„ ์ˆ˜ ์žˆ๋‹ค.
    • HA๋ฅผ ์œ„ํ•ด ๊ฐ™์€ ์—ญํ• ์„ ํ•˜๋Š” ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค ๋‘ ๊ฐœ๋ฅผ ๋„์šด๋‹ค๊ณ  ํ•  ๋•Œ, ์‚ด์•„์žˆ๋Š” ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค์—๋งŒ ์ฟผ๋ฆฌํ•˜๊ธฐ๊ฐ€ ์ข€ ๊ท€์ฐฎ์„ ์ˆ˜ ์žˆ๋‹ค.
  • 2: ๋กœ์ปฌ๋””์Šคํฌ์˜ limit ์ด์ƒ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์‹ถ๋‹ค

  • 3: ๋‹ค์šด ์ƒ˜ํ”Œ๋ง์ด ํ•„์š”ํ•˜๋‹ค (5๋ถ„/ํ•œ์‹œ๊ฐ„ ๋“ฑ๋“ฑ)

์†”๋ฃจ์…˜

  1. ์— ๋Œ€ํ•ด์„œ, ๊ฐ ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค ์ธ์Šคํ„ด์Šค ์˜†์—๋‹ค๊ฐ€ SideCar๋ฅผ ๋ถ™์ธ ๋‹ค์Œ์— Store API๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค. ์š”์ฒญ์ด ํ•˜๋‚˜ ๋“ค์–ด์˜ค๋ฉด Querier๋Š” ์ž๊ธฐ๊ฐ€ ์•Œ๊ณ ์žˆ๋Š” ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค๋“ค์—๋‹ค๊ฐ€ ์š”์ฒญ์„ ๋‹ค fan outํ•œ ๋‹ค์Œ์— ํ•ฉ์นœ๋‹ค.

  2. ์— ๋Œ€ํ•ด์„œ, SideCar๋Š” Querier์™€ ํ†ต์‹ ํ•˜๋Š” ๊ฒƒ ์™ธ์— ๊ฐ ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค๊ฐ€ ๋งŒ๋“  chunk๋ฅผ object storage์— ๋ฐฑ์—…ํ•ด์ค€๋‹ค. ์ด๊ฑธ ์–ด๋–ป๊ฒŒ ์ฟผ๋ฆฌ์— ์จ๋จน๋‚˜..? Store๋ผ ์ปดํฌ๋„ŒํŠธ๋Š” ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค ์ธ์Šคํ„ด์Šค์˜ SideCar์ฒ˜๋Ÿผ Store API ๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ๋•Œ๋ฌธ์— Querier ์ž…์žฅ์—์„œ๋Š” ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค์— ์ฟผ๋ฆฌํ•˜๋‚˜ Object storage์— ์ฟผ๋ฆฌํ•˜๋‚˜ ๋˜‘๊ฐ™๋‹ค.

  3. ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค๋Š” compaction์„ ์•Œ์•„์„œ ๋Œ๋ฆฌ๋Š”๋ฐ object storage์— ์žˆ๋Š” ๊ฑด ๊ทธ๋ ‡์ง€๊ฐ€ ๋ชปํ•˜๋‹ˆ Compactor ๋ผ๋Š” ์ปดํฌ๋„ŒํŠธ๊ฐ€ ํ•„์š”ํ•˜๋‹ค. Querier๋Š” resolution์— ๋”ฐ๋ผ์„œ ์•Œ์•„์„œ compact๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ธฐ๋„ ํ•˜๊ณ , ์›๋ž˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ธฐ๋„ ํ•œ๋‹ค.

Published Jan 31, 2021

If I keep marking the dots, someday they will ๐Ÿ”—๐Ÿ”—