๐Ÿš€ InfluxDB vs ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค: ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ชจ๋‹ˆํ„ฐ๋ง ๋Šฅ๋ ฅ ๋น„๊ต ๐Ÿš€

์ฝ˜ํ…์ธ  ๋Œ€ํ‘œ ์ด๋ฏธ์ง€ - ๐Ÿš€ InfluxDB vs ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค: ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ชจ๋‹ˆํ„ฐ๋ง ๋Šฅ๋ ฅ ๋น„๊ต ๐Ÿš€

 

 

์•ˆ๋…•ํ•˜์„ธ์š”, ์—ฌ๋Ÿฌ๋ถ„! ์˜ค๋Š˜์€ ์ •๋ง ํ•ซํ•œ ์ฃผ์ œ๋กœ ์ฐพ์•„์™”์–ด์š”. ๋ฐ”๋กœ InfluxDB์™€ ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค์˜ ๋Œ€๊ฒฐ! ๐Ÿ˜Ž ์ด ๋‘ ๋…€์„์€ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ณ„์˜ ์–‘๋Œ€ ์‚ฐ๋งฅ์ด๋ผ๊ณ  ํ•ด๋„ ๊ณผ์–ธ์ด ์•„๋‹Œ๋ฐ์š”. ์šฐ๋ฆฌ๊ฐ€ ์ด ๋‘˜์„ ๋น„๊ตํ•ด๋ณด๋ฉด์„œ ์–ด๋–ค ๊ฒŒ ๋” ์ฉŒ๋Š”์ง€ ์•Œ์•„๋ณด๋„๋ก ํ•ด์š”! ๐Ÿค“

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

์ž, ์ด์ œ ๋ณธ๊ฒฉ์ ์œผ๋กœ InfluxDB์™€ ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค๋ฅผ ๋น„๊ตํ•ด๋ณผ๊นŒ์š”? ๐Ÿค”

1. ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ๋น„๊ต ๐Ÿ“Š

InfluxDB์™€ ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹์ด ์ข€ ๋‹ฌ๋ผ์š”. ์ด ์ฐจ์ด์ ์„ ์•Œ๋ฉด ๊ฐ๊ฐ์˜ ํŠน์ง•์„ ๋” ์ž˜ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ต๋‹ˆ๋‹ค.

InfluxDB์˜ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ

InfluxDB๋Š” ์‹œ๋ฆฌ์ฆˆ(Series)์™€ ์ธก์ •(Measurement)์ด๋ผ๋Š” ๊ฐœ๋…์„ ์‚ฌ์šฉํ•ด์š”. ์ด๊ฒŒ ๋ญ” ์†Œ๋ฆฌ๋ƒ๊ณ ์š”? ์‰ฝ๊ฒŒ ์„ค๋ช…ํ•ด๋“œ๋ฆด๊ฒŒ์š”!

  • ์ธก์ •(Measurement): ์ด๊ฑด ์šฐ๋ฆฌ๊ฐ€ ์ธก์ •ํ•˜๊ณ  ์‹ถ์€ ๋Œ€์ƒ์ด์—์š”. ์˜ˆ๋ฅผ ๋“ค๋ฉด "CPU ์‚ฌ์šฉ๋ฅ ", "๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰" ๊ฐ™์€ ๊ฑฐ์ฃ .
  • ํƒœ๊ทธ(Tag): ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์˜ˆ์š”. "์„œ๋ฒ„ ์ด๋ฆ„", "์ง€์—ญ" ๊ฐ™์€ ์ •๋ณด๊ฐ€ ์—ฌ๊ธฐ์— ํ•ด๋‹นํ•ด์š”.
  • ํ•„๋“œ(Field): ์‹ค์ œ ์ธก์ •๋œ ๊ฐ’์ด์—์š”. "CPU ์‚ฌ์šฉ๋ฅ  80%", "๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ 4GB" ๊ฐ™์€ ๊ตฌ์ฒด์ ์ธ ์ˆ˜์น˜๊ฐ€ ์—ฌ๊ธฐ์— ๋“ค์–ด๊ฐ€์š”.
  • ํƒ€์ž„์Šคํƒฌํ”„(Timestamp): ๋ฐ์ดํ„ฐ๊ฐ€ ์–ธ์ œ ๊ธฐ๋ก๋˜์—ˆ๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด์š”.

์ด ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ง ํšจ์œจ์ ์œผ๋กœ ์ €์žฅํ•˜๊ณ  ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์–ด์š”. ์˜ˆ๋ฅผ ๋“ค์–ด, "์„œ์šธ์— ์žˆ๋Š” ๋ชจ๋“  ์„œ๋ฒ„์˜ ์ง€๋‚œ 1์‹œ๊ฐ„ ๋™์•ˆ์˜ CPU ์‚ฌ์šฉ๋ฅ "์„ ์‰ฝ๊ฒŒ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ต๋‹ˆ๋‹ค.

ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค์˜ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ

ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค๋Š” ์ข€ ๋‹ค๋ฅธ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ด์š”. ์—ฌ๊ธฐ์„œ๋Š” ๋ฉ”ํŠธ๋ฆญ(Metric)๊ณผ ๋ ˆ์ด๋ธ”(Label)์ด๋ผ๋Š” ๊ฐœ๋…์„ ์‚ฌ์šฉํ•˜์ฃ .

  • ๋ฉ”ํŠธ๋ฆญ(Metric): ์ธก์ •ํ•˜๊ณ ์ž ํ•˜๋Š” ๋Œ€์ƒ์ด์—์š”. InfluxDB์˜ ์ธก์ •(Measurement)๊ณผ ๋น„์Šทํ•œ ๊ฐœ๋…์ด์ฃ .
  • ๋ ˆ์ด๋ธ”(Label): ํ‚ค-๊ฐ’ ์Œ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์˜ˆ์š”. InfluxDB์˜ ํƒœ๊ทธ์™€ ๋น„์Šทํ•˜์ง€๋งŒ, ๋” ์œ ์—ฐํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์š”.
  • ์ƒ˜ํ”Œ(Sample): ์‹ค์ œ ์ธก์ •๋œ ๊ฐ’๊ณผ ํƒ€์ž„์Šคํƒฌํ”„์˜ ์กฐํ•ฉ์ด์—์š”.

ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค์˜ ์ด๋Ÿฐ ๊ตฌ์กฐ๋Š” ํŠนํžˆ ๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฐ ๊ฐ•์ ์ด ์žˆ์–ด์š”. ์˜ˆ๋ฅผ ๋“ค์–ด, "HTTP ์š”์ฒญ ์ˆ˜"๋ผ๋Š” ๋ฉ”ํŠธ๋ฆญ์— "method", "status_code", "endpoint" ๋“ฑ์˜ ๋ ˆ์ด๋ธ”์„ ๋ถ™์—ฌ์„œ ์ •๋ง ์„ธ๋ฐ€ํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ๋‹ต๋‹ˆ๋‹ค.

๐Ÿค” ์ž ๊น! ์ด๋Ÿฐ ์ฐจ์ด๊ฐ€ ์™œ ์ค‘์š”ํ• ๊นŒ์š”?

๋ฐ์ดํ„ฐ ๋ชจ๋ธ์˜ ์ฐจ์ด๋Š” ๊ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์„ฑ๋Šฅ๊ณผ ์‚ฌ์šฉ ๋ฐฉ์‹์— ํฐ ์˜ํ–ฅ์„ ๋ฏธ์ณ์š”. InfluxDB๋Š” ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ง ๋น ๋ฅด๊ฒŒ ์ €์žฅํ•˜๊ณ  ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐ ์ตœ์ ํ™”๋˜์–ด ์žˆ์ฃ . ๋ฐ˜๋ฉด ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค๋Š” ๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฐ ๋” ์œ ์—ฐํ•ด์š”. ์ด๋Ÿฐ ํŠน์„ฑ ๋•Œ๋ฌธ์— InfluxDB๋Š” IoT๋‚˜ ์„ผ์„œ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์— ์ž์ฃผ ์‚ฌ์šฉ๋˜๊ณ , ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๋ชจ๋‹ˆํ„ฐ๋ง ๊ฐ™์€ ๋ณต์žกํ•œ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์— ๋งŽ์ด ์“ฐ์ธ๋‹ต๋‹ˆ๋‹ค.

์ž, ์ด์ œ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์˜ ์ฐจ์ด๋ฅผ ์•Œ์•˜์œผ๋‹ˆ, ์ด ๋‘ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‹ค์ œ๋กœ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์ข€ ๋” ์ž์„ธํžˆ ์•Œ์•„๋ณผ๊นŒ์š”? ๐Ÿง

InfluxDB ์‚ฌ์šฉ ์˜ˆ์‹œ

InfluxDB๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ๋ณดํ†ต ์ด๋Ÿฐ ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ด์š”:


cpu_usage,host=server01,region=us-west value=0.64 1434067467000000000
memory_usage,host=server01,region=us-west value=7.86 1434067467000000000

์ด ์˜ˆ์‹œ์—์„œ "cpu_usage"์™€ "memory_usage"๊ฐ€ ์ธก์ •(Measurement)์ด๊ณ , "host"์™€ "region"์ด ํƒœ๊ทธ, "value"๊ฐ€ ํ•„๋“œ, ๋งจ ๋’ค์˜ ์ˆซ์ž๊ฐ€ ํƒ€์ž„์Šคํƒฌํ”„์˜ˆ์š”.

์ด๋ ‡๊ฒŒ ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋Š” InfluxQL์ด๋ผ๋Š” SQL๊ณผ ๋น„์Šทํ•œ ์ฟผ๋ฆฌ ์–ธ์–ด๋กœ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์–ด์š”. ์˜ˆ๋ฅผ ๋“ค๋ฉด:


SELECT mean("value") FROM "cpu_usage" WHERE "host" = 'server01' AND time >= now() - 1h GROUP BY time(5m)

์ด ์ฟผ๋ฆฌ๋Š” "server01"์˜ ์ง€๋‚œ 1์‹œ๊ฐ„ ๋™์•ˆ์˜ CPU ์‚ฌ์šฉ๋ฅ  ํ‰๊ท ์„ 5๋ถ„ ๊ฐ„๊ฒฉ์œผ๋กœ ๋ณด์—ฌ์ค˜์š”. ์—„์ฒญ ์ง๊ด€์ ์ด์ฃ ? ๐Ÿ˜Ž

ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค ์‚ฌ์šฉ ์˜ˆ์‹œ

ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค๋Š” ์กฐ๊ธˆ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ด์š”:


http_requests_total{method="POST",endpoint="/api/users"} 1027 1435781451781
http_requests_total{method="GET",endpoint="/api/users"} 8743 1435781451781

์—ฌ๊ธฐ์„œ "http_requests_total"์ด ๋ฉ”ํŠธ๋ฆญ ์ด๋ฆ„์ด๊ณ , "method"์™€ "endpoint"๊ฐ€ ๋ ˆ์ด๋ธ”์ด์—์š”. ๋งจ ๋’ค์˜ ์ˆซ์ž๋Š” ๊ฐ๊ฐ ์ธก์ •๊ฐ’๊ณผ ํƒ€์ž„์Šคํƒฌํ”„๋ฅผ ๋‚˜ํƒ€๋‚ด์ฃ .

ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค๋Š” PromQL์ด๋ผ๋Š” ์ž์ฒด ์ฟผ๋ฆฌ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•ด์š”. ์˜ˆ๋ฅผ ๋“ค๋ฉด:


rate(http_requests_total{method="GET"}[5m])

์ด ์ฟผ๋ฆฌ๋Š” GET ๋ฉ”์†Œ๋“œ๋กœ ๋“ค์–ด์˜จ HTTP ์š”์ฒญ์˜ 5๋ถ„ ๋™์•ˆ์˜ ์ดˆ๋‹น ํ‰๊ท  ์š”์ฒญ ์ˆ˜๋ฅผ ๋ณด์—ฌ์ค˜์š”. ๊ฝค ๊ฐ•๋ ฅํ•˜์ฃ ? ๐Ÿš€

๐Ÿ’ก ์žฌ๋Šฅ๋„ท ํŒ!

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

์ž, ์ด์ œ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๊ณผ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•๊นŒ์ง€ ์•Œ์•„๋ดค์–ด์š”. ๊ทผ๋ฐ ์ด ๋‘ ๋…€์„, ์‹ค์ œ๋กœ ์„ฑ๋Šฅ์€ ์–ด๋–จ๊นŒ์š”? ๋‹ค์Œ ์„น์…˜์—์„œ ์ž์„ธํžˆ ์•Œ์•„๋ณด๋„๋ก ํ•ด์š”! ๐Ÿƒโ€โ™‚๏ธ๐Ÿ’จ

2. ์„ฑ๋Šฅ ๋น„๊ต ๐ŸŽ๏ธ๐Ÿ’จ

์ž, ์ด์ œ ์ง„์งœ ํ•ต์‹ฌ์ด์—์š”! InfluxDB์™€ ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค, ๋ˆ„๊ฐ€ ๋” ๋น ๋ฅด๊ณ  ๊ฐ•๋ ฅํ• ๊นŒ์š”? ๐Ÿค” ์„ฑ๋Šฅ ๋น„๊ต๋ฅผ ์œ„ํ•ด ๋ช‡ ๊ฐ€์ง€ ์ค‘์š”ํ•œ ์ธก๋ฉด์„ ์‚ดํŽด๋ณผ๊ฒŒ์š”.

๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์†๋„

๋ฐ์ดํ„ฐ๋ฅผ ์–ผ๋งˆ๋‚˜ ๋นจ๋ฆฌ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š๋ƒ, ์ด๊ฒŒ ๋ฐ”๋กœ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ƒ๋ช…์ด์ฃ !

  • InfluxDB: InfluxDB๋Š” ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์†๋„๊ฐ€ ์ •๋ง ๋น ๋ฅธ ํŽธ์ด์—์š”. ํŠนํžˆ ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๋ฒˆ์— ์“ฐ๋Š” ์ž‘์—…(bulk write)์—์„œ ๊ฐ•์ ์„ ๋ณด์—ฌ์š”. ์ดˆ๋‹น ์ˆ˜์‹ญ๋งŒ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ ํฌ์ธํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ต๋‹ˆ๋‹ค.
  • ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค: ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค๋„ ๊ฝค ๋น ๋ฅธ ํŽธ์ด์ง€๋งŒ, InfluxDB๋ณด๋‹ค๋Š” ์กฐ๊ธˆ ๋Š๋ ค์š”. ๋Œ€์‹  ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘์˜ ์•ˆ์ •์„ฑ์ด ๋›ฐ์–ด๋‚˜์ฃ . ๋„คํŠธ์›Œํฌ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒจ๋„ ๋ฐ์ดํ„ฐ ์†์‹ค์ด ์ ์–ด์š”.

๐Ÿ ์†๋„ ๋Œ€๊ฒฐ ๊ฒฐ๊ณผ

์ˆœ์ˆ˜ํ•œ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์†๋„๋งŒ ๋†“๊ณ  ๋ณด๋ฉด InfluxDB๊ฐ€ ์•ฝ๊ฐ„ ์•ž์„œ๋Š” ๊ฒƒ ๊ฐ™์•„์š”. ํ•˜์ง€๋งŒ ์‹ค์ œ ํ™˜๊ฒฝ์—์„œ๋Š” ๋„คํŠธ์›Œํฌ ์ง€์—ฐ, ์‹œ์Šคํ…œ ๋ถ€ํ•˜ ๋“ฑ ์—ฌ๋Ÿฌ ์š”์ธ์ด ์žˆ์–ด์„œ ๋‹จ์ˆœ ๋น„๊ต๋Š” ์–ด๋ ต๋‹ต๋‹ˆ๋‹ค.

์ฟผ๋ฆฌ ์„ฑ๋Šฅ

๋ฐ์ดํ„ฐ๋ฅผ ๋นจ๋ฆฌ ์ €์žฅํ•˜๋Š” ๊ฒƒ๋„ ์ค‘์š”ํ•˜์ง€๋งŒ, ํ•„์š”ํ•  ๋•Œ ๋นจ๋ฆฌ ๊บผ๋‚ด ์“ธ ์ˆ˜ ์žˆ์–ด์•ผ ์ง„์ •ํ•œ ์‹ค๋ ฅ์ž์ฃ !

  • InfluxDB: InfluxDB๋Š” ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ ์กฐํšŒ์— ์ตœ์ ํ™”๋˜์–ด ์žˆ์–ด์š”. ํŠนํžˆ ์‹œ๊ฐ„ ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•œ ์ฟผ๋ฆฌ๋‚˜ ์ง‘๊ณ„ ์ฟผ๋ฆฌ(์˜ˆ: ํ‰๊ท , ํ•ฉ๊ณ„ ๊ณ„์‚ฐ)์—์„œ ๋›ฐ์–ด๋‚œ ์„ฑ๋Šฅ์„ ๋ณด์—ฌ์ค˜์š”.
  • ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค: ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค๋Š” ์‹ค์‹œ๊ฐ„ ์ฟผ๋ฆฌ์™€ ์•Œ๋ฆผ ์„ค์ •์— ๊ฐ•์ ์ด ์žˆ์–ด์š”. ๋ณต์žกํ•œ ์กฐ๊ฑด์˜ ์ฟผ๋ฆฌ๋„ ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์ฃ .

๋‘ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋‘ ์ž์ฒด์ ์ธ ์ฟผ๋ฆฌ ์–ธ์–ด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์š”. InfluxDB๋Š” InfluxQL์ด๋ผ๋Š” SQL๊ณผ ๋น„์Šทํ•œ ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•˜๊ณ , ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค๋Š” PromQL์ด๋ผ๋Š” ๋…ํŠนํ•œ ์ฟผ๋ฆฌ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•ด์š”.


# InfluxDB ์ฟผ๋ฆฌ ์˜ˆ์‹œ
SELECT mean("value") FROM "cpu" WHERE "host" = 'server01' AND time >= now() - 1h GROUP BY time(5m)

# ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค ์ฟผ๋ฆฌ ์˜ˆ์‹œ
rate(node_cpu_seconds_total{mode="system"}[5m])

InfluxDB์˜ ์ฟผ๋ฆฌ๋Š” SQL๊ณผ ๋น„์Šทํ•ด์„œ ๋ฐฐ์šฐ๊ธฐ ์‰ฝ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์–ด์š”. ๋ฐ˜๋ฉด ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค์˜ PromQL์€ ์ฒ˜์Œ์—๋Š” ์ข€ ์–ด๋ ต๊ฒŒ ๋Š๊ปด์งˆ ์ˆ˜ ์žˆ์ง€๋งŒ, ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ ๋ถ„์„์— ํŠนํ™”๋œ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ๋“ค์„ ์ œ๊ณตํ•ด์š”.

๐Ÿค“ ์ฟผ๋ฆฌ ์„ฑ๋Šฅ ํŒ

๋‘ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋‘ ์ธ๋ฑ์‹ฑ์„ ์ž˜ ํ™œ์šฉํ•˜๋ฉด ์ฟผ๋ฆฌ ์„ฑ๋Šฅ์„ ํฌ๊ฒŒ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์–ด์š”. InfluxDB์—์„œ๋Š” ํƒœ๊ทธ๋ฅผ ์ž˜ ์„ค๊ณ„ํ•˜๊ณ , ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค์—์„œ๋Š” ๋ ˆ์ด๋ธ”์„ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒŒ ์ค‘์š”ํ•ด์š”!

ํ™•์žฅ์„ฑ

๋ฐ์ดํ„ฐ๊ฐ€ ์ ์  ๋งŽ์•„์งˆ ๋•Œ, ์‹œ์Šคํ…œ์„ ์–ผ๋งˆ๋‚˜ ์‰ฝ๊ฒŒ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋Š๋ƒ๋„ ์ค‘์š”ํ•œ ํฌ์ธํŠธ์˜ˆ์š”.

  • InfluxDB: ์˜คํ”ˆ ์†Œ์Šค ๋ฒ„์ „์˜ InfluxDB๋Š” ๋‹จ์ผ ๋…ธ๋“œ๋กœ ๋™์ž‘ํ•ด์š”. ํด๋Ÿฌ์Šคํ„ฐ๋ง์ด ํ•„์š”ํ•˜๋‹ค๋ฉด ์ƒ์šฉ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ด์š”. ํ•˜์ง€๋งŒ ๋‹จ์ผ ๋…ธ๋“œ์—์„œ๋„ ๋†€๋ผ์šด ์„ฑ๋Šฅ์„ ๋ณด์—ฌ์ฃผ์ฃ .
  • ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค: ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‹จ์ผ ๋…ธ๋“œ ์‹œ์Šคํ…œ์ด์—์š”. ํ•˜์ง€๋งŒ Thanos๋‚˜ Cortex ๊ฐ™์€ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ๋ฅผ ํ†ตํ•ด ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์œผ๋กœ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์–ด์š”.

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

๐Ÿ’ก ์žฌ๋Šฅ๋„ท ํ™œ์šฉ ํŒ!

์—ฌ๋Ÿฌ๋ถ„, ์ด๋Ÿฐ ๋ณต์žกํ•œ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๊ณ  ์šด์˜ํ•˜๋Š” ๊ฑด ์ •๋ง ์ „๋ฌธ์ ์ธ ๊ธฐ์ˆ ์ด ํ•„์š”ํ•ด์š”. ์žฌ๋Šฅ๋„ท์—์„œ๋Š” ์ด๋Ÿฐ ๊ณ ๊ธ‰ ๊ธฐ์ˆ ์„ ๊ฐ€์ง„ ์ „๋ฌธ๊ฐ€๋“ค์˜ ๋„์›€์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, InfluxDB ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์ถ•์ด๋‚˜ ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค Thanos ์„ค์ • ๊ฐ™์€ ๊ณ ๊ธ‰ ์ž‘์—…์„ ์˜๋ขฐํ•  ์ˆ˜ ์žˆ์–ด์š”. ์ „๋ฌธ๊ฐ€์˜ ๋„์›€์„ ๋ฐ›์œผ๋ฉด ์‹œํ–‰์ฐฉ์˜ค๋ฅผ ์ค„์ด๊ณ  ๋น ๋ฅด๊ฒŒ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋‹ต๋‹ˆ๋‹ค!

๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ๋Ÿ‰

์„ฑ๋Šฅ ์ข‹์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋„ ๋ฆฌ์†Œ์Šค๋ฅผ ๋„ˆ๋ฌด ๋งŽ์ด ์žก์•„๋จน์œผ๋ฉด ๊ณค๋ž€ํ•˜๊ฒ ์ฃ ? ๐Ÿ˜…

  • InfluxDB: InfluxDB๋Š” ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด ์ƒ๋Œ€์ ์œผ๋กœ ๋†’์€ ํŽธ์ด์—์š”. ๋Œ€์‹  ๋””์Šคํฌ ๊ณต๊ฐ„์€ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•ด์š”. ๋ฐ์ดํ„ฐ ์••์ถ• ๊ธฐ๋Šฅ์ด ๋›ฐ์–ด๋‚˜๊ฑฐ๋“ ์š”.
  • ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค: ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค๋Š” ์ƒ๋Œ€์ ์œผ๋กœ ๊ฐ€๋ฒผ์šด ํŽธ์ด์—์š”. ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰๋„ ์ ๊ณ , CPU ์‚ฌ์šฉ๋Ÿ‰๋„ ๊ทธ๋ฆฌ ๋†’์ง€ ์•Š์•„์š”. ํ•˜์ง€๋งŒ ์žฅ๊ธฐ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ด€ํ•˜๋ ค๋ฉด ๋””์Šคํฌ ๊ณต๊ฐ„์ด ๋งŽ์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์–ด์š”.

๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ๋Ÿ‰์€ ์‹ค์ œ ํ™˜๊ฒฝ๊ณผ ์„ค์ •์— ๋”ฐ๋ผ ๋งŽ์ด ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์–ด์š”. ์˜ˆ๋ฅผ ๋“ค์–ด, InfluxDB์—์„œ ๋ฐ์ดํ„ฐ ๋ณด์กด ์ •์ฑ…์„ ์ž˜ ์„ค์ •ํ•˜๋ฉด ๋””์Šคํฌ ์‚ฌ์šฉ๋Ÿ‰์„ ํฌ๊ฒŒ ์ค„์ผ ์ˆ˜ ์žˆ๊ณ , ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค์—์„œ ์ƒ˜ํ”Œ๋ง ์ฃผ๊ธฐ๋ฅผ ์กฐ์ ˆํ•˜๋ฉด CPU ์‚ฌ์šฉ๋Ÿ‰์„ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ๋‹ต๋‹ˆ๋‹ค.

InfluxDB vs ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ ๋น„๊ต InfluxDB ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ๋Ÿ‰ (์ƒ๋Œ€์  ๋น„๊ต)

์ด ๊ทธ๋ž˜ํ”„๋ฅผ ๋ณด๋ฉด InfluxDB๊ฐ€ ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค๋ณด๋‹ค ๋ฆฌ์†Œ์Šค๋ฅผ ์ข€ ๋” ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ์–ด์š”. ํ•˜์ง€๋งŒ ์ด๊ฑด ์–ด๋””๊นŒ์ง€๋‚˜ ์ผ๋ฐ˜์ ์ธ ๊ฒฝ์šฐ๊ณ , ์‹ค์ œ๋กœ๋Š” ์„ค์ •๊ณผ ์‚ฌ์šฉ ํŒจํ„ด์— ๋”ฐ๋ผ ๋งŽ์ด ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ๋ณด์กด ๋ฐ ๋‹ค์šด์ƒ˜ํ”Œ๋ง

์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋Š” ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด์„œ ์—„์ฒญ๋‚˜๊ฒŒ ์Œ“์ด์ž–์•„์š”. ์ด๊ฑธ ์–ด๋–ป๊ฒŒ ๊ด€๋ฆฌํ•˜๋Š๋ƒ๋„ ์ค‘์š”ํ•œ ํฌ์ธํŠธ์˜ˆ์š”.

  • InfluxDB: InfluxDB๋Š” ๊ฐ•๋ ฅํ•œ ๋ฐ์ดํ„ฐ ๋ณด์กด ์ •์ฑ…๊ณผ ๋‹ค์šด์ƒ˜ํ”Œ๋ง ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ด์š”. ์˜ค๋ž˜๋œ ๋ฐ์ดํ„ฐ๋Š” ์ž๋™์œผ๋กœ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜, ์ •๋ฐ€๋„๋ฅผ ๋‚ฎ์ถฐ์„œ ๋ณด๊ด€ํ•  ์ˆ˜ ์žˆ์–ด์š”.
  • ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค: ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ด์š”. ์žฅ๊ธฐ ๋ณด๊ด€์ด ํ•„์š”ํ•˜๋‹ค๋ฉด ์™ธ๋ถ€ ์Šคํ† ๋ฆฌ์ง€ ์‹œ์Šคํ…œ๊ณผ ์—ฐ๋™ํ•ด์•ผ ํ•ด์š”.

InfluxDB์˜ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์€ ์ •๋ง ๊ฐ•๋ ฅํ•ด์š”. ์˜ˆ๋ฅผ ๋“ค์–ด, "1๋ถ„ ๋‹จ์œ„๋กœ ์ˆ˜์ง‘ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ 2์ฃผ๊ฐ„ ๋ณด๊ด€ํ•˜๊ณ , ๊ทธ ์ดํ›„์—๋Š” 1์‹œ๊ฐ„ ๋‹จ์œ„๋กœ ์••์ถ•ํ•ด์„œ 1๋…„๊ฐ„ ๋ณด๊ด€"ํ•˜๋Š” ์‹์˜ ๋ณต์žกํ•œ ์ •์ฑ…๋„ ์‰ฝ๊ฒŒ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์–ด์š”.


# InfluxDB ๋ฐ์ดํ„ฐ ๋ณด์กด ์ •์ฑ… ์˜ˆ์‹œ
CREATE RETENTION POLICY "two_weeks" ON "mydb" DURATION 2w REPLICATION 1
CREATE RETENTION POLICY "one_year" ON "mydb" DURATION 52w REPLICATION 1

# ๋‹ค์šด์ƒ˜ํ”Œ๋ง ์—ฐ์† ์ฟผ๋ฆฌ ์˜ˆ์‹œ
CREATE CONTINUOUS QUERY "cq_30m" ON "mydb"
BEGIN
  SELECT mean("value") INTO "one_year"."downsampled_measurement" FROM "measurement" GROUP BY time(30m)
END

ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค๋Š” ์ด๋Ÿฐ ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์€ ์—†์ง€๋งŒ, ๋Œ€์‹  ์œ ์—ฐํ•œ ํ™•์žฅ์„ฑ์„ ์ œ๊ณตํ•ด์š”. Thanos๋‚˜ Cortex ๊ฐ™์€ ํ”„๋กœ์ ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์žฅ๊ธฐ ๋ฐ์ดํ„ฐ ๋ณด๊ด€๊ณผ ๊ธ€๋กœ๋ฒŒ ์ฟผ๋ฆฌ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ต๋‹ˆ๋‹ค.

๐Ÿง  ์„ฑ๋Šฅ ์ตœ์ ํ™” ํŒ

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

์ž, ์—ฌ๊ธฐ๊นŒ์ง€ InfluxDB์™€ ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค์˜ ์„ฑ๋Šฅ์„ ๋‹ค์–‘ํ•œ ์ธก๋ฉด์—์„œ ๋น„๊ตํ•ด๋ดค์–ด์š”. ์–ด๋–ค๊ฐ€์š”? ๋‘ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋‘ ๊ฐ์ž์˜ ์žฅ๋‹จ์ ์ด ๋šœ๋ ทํ•˜์ฃ ? ๐Ÿค”

๋‹ค์Œ ์„น์…˜์—์„œ๋Š” ์ด ๋‘ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ธฐ๋Šฅ๊ณผ ์‚ฌ์šฉ ํŽธ์˜์„ฑ์„ ๋น„๊ตํ•ด๋ณผ ๊ฑฐ์˜ˆ์š”. ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•  ๋•Œ ์–ด๋–ค ์ฐจ์ด๊ฐ€ ์žˆ๋Š”์ง€, ์–ด๋–ค ์ƒํ™ฉ์—์„œ ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๋” ์ ํ•ฉํ•œ์ง€ ์•Œ์•„๋ณด๋„๋ก ํ•ด์š”! ๐Ÿš€

3. ๊ธฐ๋Šฅ ๋ฐ ์‚ฌ์šฉ ํŽธ์˜์„ฑ ๋น„๊ต ๐Ÿ› ๏ธ

์ž, ์ด์ œ InfluxDB์™€ ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค์˜ ์‹ค์ œ ์‚ฌ์šฉ ๊ฒฝํ—˜์— ๋Œ€ํ•ด ์–˜๊ธฐํ•ด๋ณผ๊นŒ์š”? ๐Ÿค“ ์„ฑ๋Šฅ๋„ ์ค‘์š”ํ•˜์ง€๋งŒ, ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•  ๋•Œ ์–ผ๋งˆ๋‚˜ ํŽธ๋ฆฌํ•˜๊ณ  ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š”์ง€๋„ ์ค‘์š”ํ•˜์ž–์•„์š”!

๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๋ฐฉ์‹

๋‘ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š” ๋ฐฉ์‹๋ถ€ํ„ฐ ์ข€ ๋‹ฌ๋ผ์š”.

  • InfluxDB: InfluxDB๋Š” Push ๋ฐฉ์‹์„ ์ฃผ๋กœ ์‚ฌ์šฉํ•ด์š”. ์ฆ‰, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‚˜ ์—์ด์ „ํŠธ๊ฐ€ ์ง์ ‘ ๋ฐ์ดํ„ฐ๋ฅผ InfluxDB๋กœ ๋ณด๋‚ด๋Š” ๋ฐฉ์‹์ด์ฃ .
  • ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค: ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค๋Š” Pull ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ด์š”. ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค๊ฐ€ ์ฃผ๊ธฐ์ ์œผ๋กœ ํƒ€๊ฒŸ ์‹œ์Šคํ…œ์—์„œ ๋ฉ”ํŠธ๋ฆญ์„ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ์‹์ด์—์š”.

InfluxDB์˜ Push ๋ฐฉ์‹์€ ์‹ค์‹œ๊ฐ„์„ฑ์ด ๋†’๊ณ , ๋ฐฉํ™”๋ฒฝ ์„ค์ •์ด ๊ฐ„๋‹จํ•ด์š”. ๋ฐ˜๋ฉด ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค์˜ Pull ๋ฐฉ์‹์€ ์ค‘์•™ ์ง‘์ค‘์‹ ์„ค์ •์ด ๊ฐ€๋Šฅํ•˜๊ณ , ํƒ€๊ฒŸ ์‹œ์Šคํ…œ์˜ ์ƒํƒœ๋ฅผ ๋” ์‰ฝ๊ฒŒ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์–ด์š”.

๐Ÿค” ์–ด๋–ค ๋ฐฉ์‹์ด ๋” ์ข‹์„๊นŒ?

Push vs Pull, ์ •๋‹ต์€ ์—†์–ด์š”! ์ƒํ™ฉ์— ๋”ฐ๋ผ ์žฅ๋‹จ์ ์ด ๋‹ฌ๋ผ์ง€์ฃ . ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ณด์•ˆ์ด ์ค‘์š”ํ•œ ํ™˜๊ฒฝ์—์„œ๋Š” Push ๋ฐฉ์‹ ์ด ๋” ์ ํ•ฉํ•  ์ˆ˜ ์žˆ๊ณ , ๋Œ€๊ทœ๋ชจ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•  ๋•Œ๋Š” Pull ๋ฐฉ์‹์ด ๊ด€๋ฆฌํ•˜๊ธฐ ๋” ์‰ฌ์šธ ์ˆ˜ ์žˆ์–ด์š”.

๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”

์ˆ˜์ง‘ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์˜ˆ์˜๊ฒŒ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ๋„ ์ค‘์š”ํ•˜์ฃ ! ๐Ÿ‘€

  • InfluxDB: InfluxDB๋Š” Chronograf๋ผ๋Š” ์ž์ฒด ๋Œ€์‹œ๋ณด๋“œ ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•ด์š”. ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๊ณ  ์˜ˆ์œ ๊ทธ๋ž˜ํ”„๋ฅผ ๋น ๋ฅด๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์–ด์š”.
  • ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค: ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค๋Š” ๊ธฐ๋ณธ์ ์ธ ๊ทธ๋ž˜ํ”„ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์ง€๋งŒ, ๋ณดํ†ต Grafana์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ด์š”. Grafana๋Š” ์ •๋ง ๊ฐ•๋ ฅํ•˜๊ณ  ์œ ์—ฐํ•œ ๋Œ€์‹œ๋ณด๋“œ ๋„๊ตฌ์˜ˆ์š”.

์‚ฌ์‹ค ๋‘ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋‘ Grafana์™€ ์ž˜ ์—ฐ๋™๋ผ์š”. Grafana๋Š” ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”์˜ ํ‘œ์ค€์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์„ ์ •๋„๋กœ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๋„๊ตฌ๋‹ˆ๊นŒ์š”.


# Grafana์—์„œ InfluxDB ๋ฐ์ดํ„ฐ ์ฟผ๋ฆฌ ์˜ˆ์‹œ
SELECT mean("usage_idle") FROM "cpu" WHERE $timeFilter GROUP BY time($__interval), "host"

# Grafana์—์„œ ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค ๋ฐ์ดํ„ฐ ์ฟผ๋ฆฌ ์˜ˆ์‹œ
rate(node_cpu_seconds_total{mode="idle"}[5m])

๐Ÿ’ก ์žฌ๋Šฅ๋„ท ํ™œ์šฉ ํŒ!

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

์•Œ๋ฆผ ๊ธฐ๋Šฅ

๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ์„ ๋•Œ ๋น ๋ฅด๊ฒŒ ์•Œ๋ ค์ฃผ๋Š” ๊ธฐ๋Šฅ, ์—†์–ด์„œ๋Š” ์•ˆ ๋˜๊ฒ ์ฃ ? ๐Ÿšจ

  • InfluxDB: InfluxDB๋Š” Kapacitor๋ผ๋Š” ๋ณ„๋„์˜ ๋„๊ตฌ๋ฅผ ํ†ตํ•ด ๋ณต์žกํ•œ ์•Œ๋ฆผ ๊ทœ์น™์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์–ด์š”. ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ์™€ ๋ฐฐ์น˜ ์ฒ˜๋ฆฌ๋ฅผ ๋ชจ๋‘ ์ง€์›ํ•ด์„œ ์œ ์—ฐํ•ด์š”.
  • ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค: ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค๋Š” ๋‚ด์žฅ ์•Œ๋ฆผ ๊ด€๋ฆฌ์ž๋ฅผ ์ œ๊ณตํ•ด์š”. PromQL์„ ์‚ฌ์šฉํ•ด ์•Œ๋ฆผ ๊ทœ์น™์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ๊ณ , ๋‹ค์–‘ํ•œ ์•Œ๋ฆผ ์ฑ„๋„(Slack, Email ๋“ฑ)์„ ์ง€์›ํ•ด์š”.

๋‘ ์‹œ์Šคํ…œ ๋ชจ๋‘ ๊ฐ•๋ ฅํ•œ ์•Œ๋ฆผ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์ง€๋งŒ, ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค์˜ ์•Œ๋ฆผ ์‹œ์Šคํ…œ์ด ์ข€ ๋” ์ง๊ด€์ ์ด๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฌ์šด ํŽธ์ด์—์š”.


# ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค ์•Œ๋ฆผ ๊ทœ์น™ ์˜ˆ์‹œ
alert: HighCPUUsage
expr: 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80
for: 5m
labels:
  severity: warning
annotations:
  summary: High CPU usage detected on {{ $labels.instance }}
  description: CPU usage is above 80% for more than 5 minutes.

์ฟผ๋ฆฌ ์–ธ์–ด ๋ฐ ๋ฐ์ดํ„ฐ ๋ถ„์„

๋ฐ์ดํ„ฐ๋ฅผ ์ž์œ ์ž์žฌ๋กœ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ์ง„์ •ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋งˆ์Šคํ„ฐ! ๐Ÿง™โ€โ™‚๏ธ

  • InfluxDB: InfluxDB๋Š” InfluxQL์ด๋ผ๋Š” SQL๊ณผ ๋น„์Šทํ•œ ์ฟผ๋ฆฌ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•ด์š”. SQL์— ์ต์ˆ™ํ•œ ์‚ฌ๋žŒ๋“ค์ด ์‰ฝ๊ฒŒ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์–ด์š”. ์ตœ๊ทผ์—๋Š” Flux๋ผ๋Š” ์ƒˆ๋กœ์šด ์Šคํฌ๋ฆฝํŒ… ์–ธ์–ด๋„ ๋„์ž…ํ–ˆ์–ด์š”.
  • ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค: ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค๋Š” PromQL์ด๋ผ๋Š” ๋…ํŠนํ•œ ์ฟผ๋ฆฌ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•ด์š”. ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ ๋ถ„์„์— ํŠนํ™”๋œ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์ง€๋งŒ, ํ•™์Šต ๊ณก์„ ์ด ์ข€ ๊ฐ€ํŒŒ๋ฅธ ํŽธ์ด์—์š”.

InfluxQL์€ SQL๊ณผ ๋น„์Šทํ•ด์„œ ๋ฐฐ์šฐ๊ธฐ ์‰ฝ์ง€๋งŒ, PromQL์€ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ ๋ถ„์„์— ๋” ํŠนํ™”๋œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ด์š”. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ ˆ์ด๋ธ”์„ ์ด์šฉํ•œ ๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ ์ฟผ๋ฆฌ๋‚˜ ์‹œ๊ฐ„ ๋ฒ”์œ„์— ๋”ฐ๋ฅธ ๊ณ„์‚ฐ์ด PromQL์—์„œ๋Š” ๋” ์ง๊ด€์ ์ด์—์š”.


# InfluxQL ์˜ˆ์‹œ
SELECT mean("value") FROM "cpu_usage" WHERE "host" = 'server01' AND time >= now() - 1h GROUP BY time(5m)

# PromQL ์˜ˆ์‹œ
rate(node_cpu_seconds_total{mode!="idle",instance="server01"}[1h]) * 100

๐Ÿง  ์ฟผ๋ฆฌ ์ตœ์ ํ™” ํŒ

๋‘ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋‘ ๋ณต์žกํ•œ ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ์ฃผ์˜๊ฐ€ ํ•„์š”ํ•ด์š”. ํŠนํžˆ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ๋Š” ์ฟผ๋ฆฌ ์ตœ์ ํ™”๊ฐ€ ์ค‘์š”ํ•ด์š”. InfluxDB์—์„œ๋Š” ํƒœ๊ทธ๋ฅผ ์ž˜ ํ™œ์šฉํ•˜๊ณ , ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค์—์„œ๋Š” ๋ ˆ์ด๋ธ” ์„ ํƒ์„ ์‹ ์ค‘ํžˆ ํ•ด์•ผ ํ•ด์š”. ๋˜ํ•œ, ์‹œ๊ฐ„ ๋ฒ”์œ„๋ฅผ ์ ์ ˆํžˆ ์ œํ•œํ•˜๋Š” ๊ฒƒ๋„ ์„ฑ๋Šฅ ํ–ฅ์ƒ์— ๋„์›€์ด ๋ผ์š”!

ํ™•์žฅ์„ฑ ๋ฐ ๊ณ ๊ฐ€์šฉ์„ฑ

์‹œ์Šคํ…œ์ด ์ปค์ ธ๋„, ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒจ๋„ ๋„๋–ก์—†์–ด์•ผ ํ•˜์ฃ ! ๐Ÿ’ช

  • InfluxDB: ์˜คํ”ˆ ์†Œ์Šค ๋ฒ„์ „์˜ InfluxDB๋Š” ๋‹จ์ผ ๋…ธ๋“œ๋กœ ๋™์ž‘ํ•ด์š”. ํด๋Ÿฌ์Šคํ„ฐ๋ง์ด ํ•„์š”ํ•˜๋‹ค๋ฉด ์ƒ์šฉ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ด์š”. ๊ณ ๊ฐ€์šฉ์„ฑ ๊ตฌ์„ฑ๋„ ์ƒ์šฉ ๋ฒ„์ „์—์„œ ์ œ๊ณตํ•ด์š”.
  • ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค: ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‹จ์ผ ๋…ธ๋“œ ์‹œ์Šคํ…œ์ด์ง€๋งŒ, Thanos๋‚˜ Cortex ๊ฐ™์€ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ๋ฅผ ํ†ตํ•ด ํ™•์žฅํ•  ์ˆ˜ ์žˆ์–ด์š”. ์ด๋ฅผ ํ†ตํ•ด ์žฅ๊ธฐ ๋ฐ์ดํ„ฐ ์ €์žฅ, ๊ธ€๋กœ๋ฒŒ ์ฟผ๋ฆฌ, ๊ณ ๊ฐ€์šฉ์„ฑ ๋“ฑ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์–ด์š”.

๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•ด์•ผ ํ•œ๋‹ค๋ฉด, InfluxDB๋Š” ๋น„์šฉ์ด ๋“ค์ง€๋งŒ ์•ˆ์ •์ ์ธ ์ƒ์šฉ ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•˜๊ณ , ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค๋Š” ์˜คํ”ˆ์†Œ์Šค ์ƒํƒœ๊ณ„๋ฅผ ํ™œ์šฉํ•œ ์œ ์—ฐํ•œ ํ™•์žฅ์ด ๊ฐ€๋Šฅํ•ด์š”.

์ปค๋ฎค๋‹ˆํ‹ฐ ๋ฐ ์ƒํƒœ๊ณ„

์ข‹์€ ๋„๊ตฌ๋Š” ์ข‹์€ ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ๋’ท๋ฐ›์นจ๋˜์–ด์•ผ ํ•ด์š”! ๐Ÿ‘ฅ

  • InfluxDB: InfluxDB๋Š” ํ™œ๋ฐœํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์š”. ํŠนํžˆ IoT๋‚˜ ์„ผ์„œ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋ถ„์•ผ์—์„œ ๊ฐ•์„ธ๋ฅผ ๋ณด์—ฌ์š”. TICK ์Šคํƒ(Telegraf, InfluxDB, Chronograf, Kapacitor)์ด๋ผ๋Š” ์™„์ „ํ•œ ๋ชจ๋‹ˆํ„ฐ๋ง ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•ด์š”.
  • ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค: ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค๋Š” CNCF(Cloud Native Computing Foundation) ํ”„๋กœ์ ํŠธ๋กœ, ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ํ™˜๊ฒฝ์—์„œ ํŠนํžˆ ์ธ๊ธฐ๊ฐ€ ๋งŽ์•„์š”. ๋‹ค์–‘ํ•œ ์ต์Šคํฌํ„ฐ์™€ ํ†ตํ•ฉ ๋„๊ตฌ๋“ค์ด ์žˆ์–ด ํ™•์žฅ์„ฑ์ด ๋›ฐ์–ด๋‚˜์š”.

๋‘ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋‘ ํ™œ๋ฐœํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์š”. ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ์„ ๋•Œ ๋„์›€์„ ๋ฐ›๊ธฐ ์‰ฝ๊ณ , ๊ณ„์†ํ•ด์„œ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ๊ณผ ๊ฐœ์„ ์‚ฌํ•ญ์ด ๋‚˜์˜ค๊ณ  ์žˆ์–ด์š”.

๐Ÿ’ก ์žฌ๋Šฅ๋„ท ํ™œ์šฉ ํŒ!

์ด๋Ÿฐ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ์— ๊ธฐ์—ฌํ•˜๋Š” ๊ฒƒ๋„ ์ข‹์€ ๊ฒฝํ—˜์ด ๋  ์ˆ˜ ์žˆ์–ด์š”. ์žฌ๋Šฅ๋„ท์—์„œ InfluxDB๋‚˜ ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค ๊ด€๋ จ ํ”„๋กœ์ ํŠธ๋ฅผ ์ฐพ์•„๋ณด์„ธ์š”. ์˜คํ”ˆ์†Œ์Šค ๊ธฐ์—ฌ๋Š” ๊ธฐ์ˆ ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ณ  ์ปค๋ฆฌ์–ด์—๋„ ๋„์›€์ด ๋  ๊ฑฐ์˜ˆ์š”!

์‚ฌ์šฉ ์‚ฌ๋ก€ ๋ฐ ์ ํ•ฉํ•œ ํ™˜๊ฒฝ

์–ด๋–ค ์ƒํ™ฉ์—์„œ ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๋” ์ ํ•ฉํ• ๊นŒ์š”? ๐Ÿค”

  • InfluxDB:
    • IoT ๋ฐ ์„ผ์„œ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ
    • ์‹ค์‹œ๊ฐ„ ๋ถ„์„์ด ํ•„์š”ํ•œ ํ™˜๊ฒฝ
    • ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ์“ฐ๊ณ  ์ฝ์–ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ
    • ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ ๋ณด์กด ์ •์ฑ…์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ
  • ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค:
    • ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๋ฐ ์ปจํ…Œ์ด๋„ˆ ํ™˜๊ฒฝ ๋ชจ๋‹ˆํ„ฐ๋ง
    • Kubernetes ํด๋Ÿฌ์Šคํ„ฐ ๋ชจ๋‹ˆํ„ฐ๋ง
    • ๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ
    • Pull ๊ธฐ๋ฐ˜์˜ ์•„ํ‚คํ…์ฒ˜๊ฐ€ ์ ํ•ฉํ•œ ํ™˜๊ฒฝ

๋ฌผ๋ก  ์ด๋Š” ์ผ๋ฐ˜์ ์ธ ๊ฒฝํ–ฅ์ผ ๋ฟ์ด์—์š”. ์‹ค์ œ๋กœ๋Š” ๋‘ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋‘ ๋‹ค์–‘ํ•œ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์–ด์š”.

๊ฒฐ๋ก 

์ž, ์—ฌ๊ธฐ๊นŒ์ง€ InfluxDB์™€ ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค์˜ ๊ธฐ๋Šฅ๊ณผ ์‚ฌ์šฉ ํŽธ์˜์„ฑ์„ ๋น„๊ตํ•ด๋ดค์–ด์š”. ์–ด๋–ค๊ฐ€์š”? ๐Ÿ˜Š

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

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

์ค‘์š”ํ•œ ๊ฑด, ์ด ๋„๊ตฌ๋“ค์„ ์ž˜ ์ดํ•ดํ•˜๊ณ  ์ ์žฌ์ ์†Œ์— ํ™œ์šฉํ•˜๋Š” ๊ฑฐ์˜ˆ์š”. ๊ทธ๋Ÿฌ๋ฉด ์—ฌ๋Ÿฌ๋ถ„์˜ ์‹œ์Šคํ…œ์€ ๋”์šฑ ๊ฐ•๋ ฅํ•ด์ง€๊ณ , ๋ฌธ์ œ๋ฅผ ๋น ๋ฅด๊ฒŒ ๋ฐœ๊ฒฌํ•˜๊ณ  ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์„ ๊ฑฐ์˜ˆ์š”! ๐Ÿš€

์ž, ์ด์ œ ์—ฌ๋Ÿฌ๋ถ„์€ InfluxDB์™€ ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค์— ๋Œ€ํ•ด ๊ฝค ๋งŽ์ด ์•Œ๊ฒŒ ๋˜์—ˆ์–ด์š”. ์ด ์ง€์‹์„ ๋ฐ”ํƒ•์œผ๋กœ ์—ฌ๋Ÿฌ๋ถ„์˜ ํ”„๋กœ์ ํŠธ์— ๊ฐ€์žฅ ์ ํ•ฉํ•œ ๋„๊ตฌ๋ฅผ ์„ ํƒํ•˜๊ณ , ๋ฉ‹์ง„ ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•ด๋ณด์„ธ์š”! ํ™”์ดํŒ…! ๐Ÿ’ช๐Ÿ˜„