"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

Roman Khavronenko "ExtendedPromQL"์˜ ๋ณด๊ณ ์„œ ์‚ฌ๋ณธ์„ ์ฝ์„ ๊ฒƒ์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

๋‚˜์— ๋Œ€ํ•ด ๊ฐ„๋‹จํžˆ. ์ œ ์ด๋ฆ„์€ ๋กœ๋งˆ์ž…๋‹ˆ๋‹ค. ์ €๋Š” CloudFlare์—์„œ ์ผํ•˜๊ณ  ๋Ÿฐ๋˜์— ์‚ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ €๋Š” VictoriaMetrics ๊ด€๋ฆฌ์ž์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๋‚˜๋Š” ์ €์ž์ž…๋‹ˆ๋‹ค ํด๋ฆญํ•˜์šฐ์Šค ํ”Œ๋Ÿฌ๊ทธ์ธ Grafana ๋ฐ ClickHouse ํ”„๋ก์‹œ ClickHouse์˜ ์ž‘์€ ํ”„๋ก์‹œ์ž…๋‹ˆ๋‹ค.

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

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

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

์ฒ˜์Œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ฉ์‹œ๋‹ค. PromQL์ด๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? PromQL์€ Prometheus ์ฟผ๋ฆฌ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ, ์‹œ๊ณ„์—ด์„ ์–ป๊ธฐ ์œ„ํ•ด Prometheus์—์„œ ์ฟผ๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋ž€? ๋ง ๊ทธ๋Œ€๋กœ ์„ธ ๊ฐœ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

์ด๋“ค์€ :

  • ์šฐ๋ฆฌ๋Š” ๋ฌด์—‡์„ ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์šฐ๋ฆฌ๊ฐ€ ๊ทธ๊ฒƒ์„ ๋ณผ ๋•Œ.
  • ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์€ ์–ด๋–ค ๊ฐ€์น˜๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๊นŒ?

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

์ด ์ฐจํŠธ๋ฅผ ๋ณด๋ฉด(์ด ์ฐจํŠธ๋Š” ๋‚ด ๊ฑธ์Œ ์ˆ˜์˜ ํ†ต๊ณ„๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๋‚ด ์ „ํ™”๊ธฐ์—์„œ ๊ฐ€์ ธ์˜ด) ์—ฌ๊ธฐ์—์„œ ์ด๋Ÿฌํ•œ ์งˆ๋ฌธ์— ๋น ๋ฅด๊ฒŒ ๋‹ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๋‹จ๊ณ„๋ฅผ ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์˜๋ฏธ๋ฅผ ๋ณด๊ณ  ์šฐ๋ฆฌ๊ฐ€ ๊ทธ๊ฒƒ์„ ๋ณผ ๋•Œ ์‹œ๊ฐ„์„ ๋ด…๋‹ˆ๋‹ค. ์ฆ‰, ์ด ๋‹ค์ด์–ด๊ทธ๋žจ์„ ๋ณด๋ฉด ์ผ์š”์ผ์— ์•ฝ 15๋ณด๋ฅผ ๊ฑธ์—ˆ๋‹ค๊ณ  ์‰ฝ๊ฒŒ ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ์ž…๋‹ˆ๋‹ค.

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

์ด์ œ ํ…Œ์ด๋ธ” ํ˜•์‹์˜ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋กœ "์ค‘๋‹จ"(๋ณ€ํ™˜)ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ์šฐ๋ฆฌ๊ฐ€ ๋ณด๊ณ  ์žˆ๋Š” ๊ฒƒ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ์•ฝ๊ฐ„์˜ ์ถ”๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ํ†ต๊ณผ ํ•œ ๊ฒƒ์€ ๋‚ด๊ฐ€ ์•„๋‹ˆ๋ผ Jay์™€ Silent Bob๊ณผ ๊ฐ™์€ ๋‘ ์‚ฌ๋žŒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์šฐ๋ฆฌ๊ฐ€ ๋ณด๊ณ  ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฌด์—‡์„ ๋ณด์—ฌ์ฃผ๊ณ  ์–ธ์ œ ๊ทธ ๊ฐ€์น˜๋ฅผ ๋ณด์—ฌ์ค„์ง€.

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก
์ด์ œ ์ด ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ClickHouse ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์—ฌ๊ธฐ์„œ ์šฐ๋ฆฌ๋Š” "๋‹จ๊ณ„"๋ผ๋Š” ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”, ์ฆ‰ ์šฐ๋ฆฌ๊ฐ€ ๋ณด๊ณ  ์žˆ๋Š” ๊ฒƒ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๊ทธ๊ฒƒ์„ ๋ณผ ๋•Œ ์—ฌ๊ธฐ ์‹œ๊ฐ„์ด ์žˆ์Šต๋‹ˆ๋‹ค; ํ‘œ์‹œ๋˜๋Š” ๋‚ด์šฉ๊ณผ Jay์™€ Silent Bob์ด ๋ˆ„๊ตฌ์ธ์ง€ ์ €์žฅํ•  ์ผ๋ถ€ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ์ž…๋‹ˆ๋‹ค.

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

๊ทธ๋ฆฌ๊ณ  ๋ชจ๋“  ๊ฒƒ์„ ์‹œ๊ฐํ™”ํ•˜๊ธฐ ์œ„ํ•ด Grafana๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฒซ์งธ, ์•„๋ฆ„๋‹ต๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

๋˜ํ•œ ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋‘ ๊ฐ€์ง€ ์ด์œ ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ๋Š” ๋‚ด๊ฐ€ ์ผ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Grafana์— ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•ด ClickHouse์—์„œ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•˜๋Š” ๊ฒƒ์ด ์–ผ๋งˆ๋‚˜ ์–ด๋ ค์šด์ง€ ์ •ํ™•ํžˆ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

๊ทธ๋ž˜ํ”„ ํŒจ๋„์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ Grafana์—์„œ ๊ฐ€์žฅ ์ธ๊ธฐ ์žˆ๋Š” ํŒจ๋„์ด๋ฉฐ ๊ฐ’ ๋Œ€ ์‹œ๊ฐ„์„ ํ‘œ์‹œํ•˜๋ฏ€๋กœ ๋‘ ๊ฐœ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋งŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก
๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Grafana์—์„œ ๋‹จ๊ณ„ ํ†ต๊ณ„๋ฅผ ํ‘œ์‹œํ•˜๊ณ  ์ด ๋ฐ์ดํ„ฐ๋ฅผ ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  ํ…Œ์ด๋ธ”์˜ ClickHouse์— ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ๊ทธ๋Ÿฐ ๊ฐ„๋‹จํ•œ ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋‹จ๊ณ„์—์„œ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๊ฐ’์„ ์„ ํƒํ•˜๊ณ  ์ด๋Ÿฌํ•œ ๊ฐ’์˜ ์‹œ๊ฐ„, ์ฆ‰ ์šฐ๋ฆฌ๊ฐ€ ์ด์•ผ๊ธฐํ•œ ๊ฒƒ๊ณผ ๋™์ผํ•œ ์„ธ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

๊ฒฐ๊ณผ์ ์œผ๋กœ ์ด ๊ทธ๋ž˜ํ”„๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฐ€ ์™œ ๊ทธ๋ ‡๊ฒŒ ์ด์ƒํ•œ์ง€ ๋ˆ„๊ฐ€ ์••๋‹ˆ๊นŒ?

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

๋งž์Šต๋‹ˆ๋‹ค. ์‹œ๊ฐ„๋ณ„๋กœ ์ •๋ ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

๊ทธ๋ฆฌ๊ณ  ๊ฒฐ๊ตญ ์šฐ๋ฆฌ๋Š” ๋” ๋‚˜์•„์ง€์ง€๋งŒ ์—ฌ์ „ํžˆ ์ด์ƒํ•œ ์ผ์ •์„ ์–ป์Šต๋‹ˆ๋‹ค. ์ด์œ ๋ฅผ ๋ˆ„๊ฐ€ ์••๋‹ˆ๊นŒ? ๋งž์Šต๋‹ˆ๋‹ค. ๋‘ ๋ช…์˜ ์ฐธ๊ฐ€์ž๊ฐ€ ์žˆ๊ณ  Grafana์—์„œ ๋‘ ๊ฐœ์˜ ์‹œ๊ณ„์—ด์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ๋‹ค์‹œ ์ฒ˜๋ฆฌํ•˜๋ฉด ๊ฐ ์‹œ๊ณ„์—ด์€ ์ด๋ฆ„๊ณผ ๋ชจ๋“  ๋ ˆ์ด๋ธ” ํ‚ค-๊ฐ’์˜ ๊ณ ์œ ํ•œ ์กฐํ•ฉ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

๊ทธ๋Ÿฌ๋ฏ€๋กœ ์šฐ๋ฆฌ๋Š” ํŠน์ •ํ•œ ์‚ฌ๋žŒ์„ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” Jay๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค. ์ด์ œ ๊ทธ๋ž˜ํ”„๊ฐ€ ์ง„์‹ค์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. ์ด์ œ ์ •์ƒ์ ์ธ ์ผ์ •์ด๋ฉฐ ๋ชจ๋“  ๊ฒƒ์ด ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

๊ทธ๋ฆฌ๊ณ  ์•„๋งˆ๋„ ์—ฌ๋Ÿฌ๋ถ„์€ PromQL์„ ํ†ตํ•ด Prometheus์—์„œ ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋Œ€๋žต ์ด๋ ‡์Šต๋‹ˆ๋‹ค. ์กฐ๊ธˆ ๋” ์‰ฝ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์„ ๋ชจ๋‘ ๋ถ„ํ•ดํ•ฉ์‹œ๋‹ค. ์šฐ๋ฆฌ๋Š” ์กฐ์น˜๋ฅผ ์ทจํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Jay๋กœ ํ•„ํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ๊ฐ’์„ ๊ฐ€์ ธ์™€์•ผ ํ•œ๋‹ค๊ณ  ์ง€์ •ํ•˜์ง€ ์•Š๊ณ  ์‹œ๊ฐ„์„ ์„ ํƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

์ด์ œ Jay ๋˜๋Š” Silent Bob์˜ ์ด๋™ ์†๋„๋ฅผ ๊ณ„์‚ฐํ•ด ๋ด…์‹œ๋‹ค. ClickHouse์—์„œ ์šฐ๋ฆฌ๋Š” runningDifference๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ํฌ์ธํŠธ ์Œ ๊ฐ„์˜ ์ฐจ์ด๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ์‹œ๊ฐ„์œผ๋กœ ๋‚˜๋ˆ„์–ด ์ •ํ™•ํ•œ ์†๋„๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค. ์š”์ฒญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

๊ทธ๋ฆฌ๊ณ  ๊ทธ๋Š” ๋Œ€๋žต ์ด๋Ÿฌํ•œ ๊ฐ’์„ ๋ณด์—ฌ์ค„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ์‚ฌ์ผ๋ŸฐํŠธ ๋ฐฅ์ด๋‚˜ ์ œ์ด๋Š” ์ดˆ๋‹น ์•ฝ 1,8๋ณด๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

๊ทธ๋ฆฌ๊ณ  Prometheus์—์„œ๋Š” ๊ทธ ๋ฐฉ๋ฒ•๋„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ „๋ณด๋‹ค ํ›จ์”ฌ ์‰ฌ์›Œ์กŒ์Šต๋‹ˆ๋‹ค.

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก๊ทธ๋ฆฌ๊ณ  Grafana์—์„œ๋„ ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋„๋ก PromQL๊ณผ ๋งค์šฐ ์œ ์‚ฌํ•œ ๋ž˜ํผ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ Rate Macros ๋˜๋Š” ๋‹น์‹ ์ด ๊ทธ๊ฒƒ์„ ๋ถ€๋ฅด๊ณ  ์‹ถ์€ ๋ฌด์—‡์ด๋“ ์ด๋ผ๊ณ  ๋ถˆ๋ฆฝ๋‹ˆ๋‹ค. Grafana์—์„œ๋Š” ๊ทธ๋ƒฅ "rate"๋ผ๊ณ  ์“ฐ์ง€๋งŒ, ์–ด๋”˜๊ฐ€ ๊นŠ์€ ๊ณณ์—์„œ๋Š” ์ด๋ ‡๊ฒŒ ํฐ ์š”์ฒญ์œผ๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค. ๋ณผ ํ•„์š”์กฐ์ฐจ ์—†์Šต๋‹ˆ๋‹ค. ์–ด๋”˜๊ฐ€์— ์žˆ์ง€๋งŒ ์ด๋ ‡๊ฒŒ ๋ฐฉ๋Œ€ํ•œ SQL ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐ๋Š” ํ•ญ์ƒ ๋น„์šฉ์ด ๋งŽ์ด ๋“ค๊ธฐ ๋•Œ๋ฌธ์— ๋งŽ์€ ์‹œ๊ฐ„์„ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ์‰ฝ๊ฒŒ ์‹ค์ˆ˜๋ฅผ ํ•  ์ˆ˜ ์žˆ๊ณ  ์˜ค๋žซ๋™์•ˆ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ์ดํ•ดํ•˜์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€ ํ•˜๋‚˜์˜ ์Šฌ๋ผ์ด๋“œ์— ๋งž์ง€ ์•Š๋Š” ์ฟผ๋ฆฌ์ด๊ณ  ์‹ฌ์ง€์–ด ๋‘ ๊ฐœ์˜ ์—ด๋กœ ๋ถ„ํ• ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋˜ํ•œ ๊ฐ™์€ ์š”์œจ์„ ๋งŒ๋“œ๋Š” ClickHouse์˜ ์š”์ฒญ์ด์ง€๋งŒ ๋‘ ์‹œ๊ณ„์—ด(Silent Bob ๋ฐ Jay)์— ๋Œ€ํ•ด ํŒจ๋„์— ๋‘ ๊ฐœ์˜ ์‹œ๊ณ„์—ด์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ ์ƒ๊ฐ์—๋Š” ์ด๊ฒƒ์€ ์ด๋ฏธ ๋งค์šฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

๊ทธ๋ฆฌ๊ณ  Prometheus์— ๋”ฐ๋ฅด๋ฉด ํ•ฉ๊ณ„(๋น„์œจ)๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ClickHouse์˜ ๊ฒฝ์šฐ Prometheus ์ฟผ๋ฆฌ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” RateColumns๋ผ๋Š” ๋ณ„๋„์˜ ๋งคํฌ๋กœ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

์šฐ๋ฆฌ๋Š” PromQL์ด ์ •๋ง ๋ฉ‹์ง„ ๊ฒƒ ๊ฐ™์ง€๋งŒ ๋ฌผ๋ก  ํ•œ๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋“ค์€ :

  • ์ œํ•œ๋œ ์„ ํƒ.
  • ์—์ง€ ์กฐ์ธ.
  • HAVING ์ง€์›์ด ์—†์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์˜ค๋žซ๋™์•ˆ ์ž‘์—…ํ–ˆ๋‹ค๋ฉด PromQL์—์„œ ๋ฌด์–ธ๊ฐ€๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ๋•Œ๋•Œ๋กœ ๋งค์šฐ ์–ด๋ ต๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์œผ๋ฉฐ SQL์—์„œ๋Š” ๊ฑฐ์˜ ๋ชจ๋“  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฉ๊ธˆ ์ด์•ผ๊ธฐํ•œ ๋ชจ๋“  ์˜ต์…˜์€ SQL์—์„œ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค . ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ํŽธ๋ฆฌํ• ๊นŒ์š”? ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€ ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•œ ์–ธ์–ด๊ฐ€ ํ•ญ์ƒ ๊ฐ€์žฅ ํŽธ๋ฆฌํ•œ ๊ฒƒ์€ ์•„๋‹ˆ๋ผ๋Š” ์ƒ๊ฐ์„ ํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

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

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

๊ทธ๋ฆฌ๊ณ  ๋‹ค์Œ ๋ถ€๋ถ„์€ PromQL ํ™•์žฅ์ž…๋‹ˆ๋‹ค.

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

VictoriaMetrics์— ๋Œ€ํ•ด ๋‹ค์‹œ ํ•œ ๋ฒˆ. VictoriaMetrics๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ด๊ฒƒ์€ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ด๋ฉฐ OpenSource์— ์žˆ์œผ๋ฉฐ ๋‹จ์ผ ๋ฐ ํด๋Ÿฌ์Šคํ„ฐ ๋ฒ„์ „์„ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ ๋ฒค์น˜๋งˆํฌ์— ๋”ฐ๋ฅด๋ฉด ํ˜„์žฌ ์‹œ์žฅ์— ๋‚˜์™€ ์žˆ๋Š” ๊ฒƒ ์ค‘ ๊ฐ€์žฅ ๋น ๋ฅด๊ณ  ์••์ถ• ์ธก๋ฉด์—์„œ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, Prometheus๊ฐ€ 0,4-1,2์ธ ๊ฒฝ์šฐ ์‚ด์•„์žˆ๋Š” ์‚ฌ๋žŒ๋“ค์€ ํฌ์ธํŠธ๋‹น ์•ฝ 1,4๋ฐ”์ดํŠธ์˜ ์••์ถ•์„ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” Prometheus๋งŒ ์ง€์›ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. InfluxDB, Graphite, OpenTSDB๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๊ท€ํ•˜๋Š” ๋‹น์‚ฌ์—์„œ "์ž‘์„ฑ"ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์ด์ „ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ Prometheus ๋ฐ Grafana์™€๋„ ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, PromQL ์—”์ง„์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Grafana์—์„œ Prometheus ์—”๋“œํฌ์ธํŠธ๋ฅผ VictoriaMetrics๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ชจ๋“  ๋Œ€์‹œ๋ณด๋“œ๊ฐ€ โ€‹โ€‹์˜ˆ์ „์ฒ˜๋Ÿผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ VictoriaMetrics์—์„œ ์ œ๊ณตํ•˜๋Š” ์ถ”๊ฐ€ ์นฉ์„ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถ”๊ฐ€ํ•œ ๊ธฐ๋Šฅ์„ ๋น ๋ฅด๊ฒŒ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

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

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

๋‘ ๋ฒˆ์งธ ๊ธฐ๋Šฅ์€ ๊ฐ„๊ฒฉ ์ฐธ์กฐ์ž…๋‹ˆ๋‹ค. ํ‘œํ˜„์‹์—์„œ ์ด ๊ฐ„๊ฒฉ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณฑํ•˜๊ณ , ๋‚˜๋ˆ„๊ณ , ์˜ฎ๊ธฐ๊ณ , ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

๋‹ค์Œ์€ ๋กค์—… ํ•จ์ˆ˜ ๊ณ„์—ด์ž…๋‹ˆ๋‹ค. ๋กค์—… ๊ธฐ๋Šฅ์€ ๋ชจ๋“  ์‹œ๊ณ„์—ด์„ XNUMX๊ฐœ์˜ ๊ฐœ๋ณ„ ์‹œ๊ณ„์—ด๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋“ค์€ ์ตœ์†Œ, ์ตœ๋Œ€ ๋ฐ ํ‰๊ท ์ž…๋‹ˆ๋‹ค. ๋•Œ๋•Œ๋กœ ์ผ๋ถ€ ์ด์ƒ๊ฐ’(์ด์ƒ์น˜)๊ณผ ๋ถ€์ •ํ™•์„ฑ์„ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋งค์šฐ ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

๊ทธ๋ฆฌ๊ณ  ๋‹จ์ˆœํžˆ ํ™”๋ฅผ ๋‚ด๊ฑฐ๋‚˜ ํ‰๊ฐ€ํ•˜๋Š” ์ค‘์ด๋ผ๋ฉด ์‹œ๊ณ„์—ด์ด ์˜๋„ํ•œ ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ์ผ๋ถ€ ๊ฒฝ์šฐ๋ฅผ ๋†“์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ํ›จ์”ฌ ์‰ฝ๊ฒŒ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. max๊ฐ€ ํ‰๊ท ์—์„œ ๋งŽ์ด ๋ฒ—์–ด๋‚œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

๋‹ค์Œ์€ ๊ธฐ๋ณธ ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’ - ํ˜„์žฌ ์‹œ๊ณ„์—ด์ด ์—†๋Š” ๊ฒฝ์šฐ Grafana์—์„œ ๊ทธ๋ ค์•ผ ํ•˜๋Š” ๊ฐ’์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์–ธ์ œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๊นŒ? ์ผ๋ถ€ ์˜ค๋ฅ˜ ์ธก์ •ํ•ญ๋ชฉ์„ ๋‚ด๋ณด๋‚ธ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์‹œ์ž‘ํ•  ๋•Œ ์˜ค๋ฅ˜๊ฐ€ ์—†์œผ๋ฉฐ ์•ž์œผ๋กœ XNUMX์‹œ๊ฐ„ ๋˜๋Š” ํ•˜๋ฃจ ๋™์•ˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š” ๋ฉ‹์ง„ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์„ฑ๊ณต์—์„œ ์˜ค๋ฅ˜๊นŒ์ง€์˜ ๊ด€๊ณ„๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๋Œ€์‹œ๋ณด๋“œ๊ฐ€ โ€‹โ€‹์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋ฅ˜ ๋ฉ”ํŠธ๋ฆญ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ฌด ๊ฒƒ๋„ ํ‘œ์‹œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฌด์—‡์ด๋“  ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

Keep_last_Value - ๋ˆ„๋ฝ๋œ ๊ฒฝ์šฐ ๋ฉ”ํŠธ๋ฆญ์˜ ๋งˆ์ง€๋ง‰ ๊ฐ’์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์Šคํฌ๋žฉ ํ›„ Prometheus๊ฐ€ 5๋ถ„ ์ด๋‚ด์— ์ฐพ์ง€ ๋ชปํ•œ ๊ฒฝ์šฐ ์—ฌ๊ธฐ์—์„œ ๋งˆ์ง€๋ง‰ ๊ฐ’์„ ๊ธฐ์–ตํ•˜๊ณ  ์ฐจํŠธ๊ฐ€ ๋‹ค์‹œ ์ค‘๋‹จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

Scrape_interval - Prometheus๊ฐ€ ๋ฉ”ํŠธ๋ฆญ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š” ๋นˆ๋„์™€ ๋นˆ๋„๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์—ฌ๊ธฐ์—์„œ ํŒจ์Šค๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก
๋ผ๋ฒจ ๊ต์ฒด๋Š” ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ •์ˆ˜ ์ธ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์•ฝ๊ฐ„ ๋ณต์žกํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  5๊ฐœ์˜ ์ธ์ˆ˜๋ฅผ ๊ธฐ์–ตํ•  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ทธ ์ˆœ์„œ๋„ ๊ธฐ์–ตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก
๋”ฐ๋ผ์„œ ๋” ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งŒ๋“ค์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๊นŒ? ์ฆ‰, ๋ช…ํ™•ํ•œ ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์€ ํ•จ์ˆ˜๋กœ ๋ถ„ํ•ดํ•ฉ๋‹ˆ๋‹ค.

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

๊ทธ๋ฆฌ๊ณ  ์ง€๊ธˆ ๊ฐ€์žฅ ํฅ๋ฏธ๋กœ์šด. ํ™•์žฅ๋œ PromQL์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๊ณตํ†ต ํ…Œ์ด๋ธ” ํ‘œํ˜„์‹์„ ์ง€์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. QR ์ฝ”๋“œ(https://github.com/VictoriaMetrics/VictoriaMetrics/wiki/ExtendedPromQL) ๋ธŒ๋ผ์šฐ์ €์— ์„ค์น˜ํ•˜์ง€ ์•Š๊ณ  VictoriaMetrics์—์„œ ์ง์ ‘ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํ”Œ๋ ˆ์ด๊ทธ๋ผ์šด๋“œ์˜ ์˜ˆ์ œ ๋งํฌ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

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

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

์˜ˆ๋ฅผ ๋“ค์–ด ๋ชจ๋“  ์š”์ฒญ์—์„œ Grafana์˜ ํ•„ํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•˜๊ณ  ๋Œ€์‹œ๋ณด๋“œ๊ฐ€ โ€‹โ€‹๊ฑฐ๋Œ€ํ•˜๊ฑฐ๋‚˜ ์—ฌ๋Ÿฌ ๊ฐœ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. Grafana์—์„œ ์ด ๋ฌธ์ œ๋ฅผ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๊นŒ?

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

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

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

๊ทธ๋ž˜์„œ ์ €๋Š” ์—ฌ๋Ÿฌ๋ถ„์ด ์ด๊ฒƒ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋Ÿฌํ•œ ๊ธฐ๋Šฅ์— ๊ด€์‹ฌ์ด ์žˆ๊ฑฐ๋‚˜ ์›ํ•˜๋Š” ๊ฒฝ์šฐ ์ด ์•„์ด๋””์–ด๊ฐ€ ๋งˆ์Œ์— ๋“ค์ง€ ์•Š์œผ๋ฉด ์ง€์›ํ•˜๊ฑฐ๋‚˜ ์‹ซ์–ดํ•˜์‹ญ์‹œ์˜ค. https://github.com/grafana/grafana/pull/16694

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

PromQL ํ™•์žฅ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด. ์—ฌ๊ธฐ์„œ ์šฐ๋ฆฌ๋Š” ๋ณ€์ˆ˜๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ „์ฒด ํ•จ์ˆ˜๋ฅผ ์ง์ ‘ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„ ru(์ž์› ์‚ฌ์šฉ)๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ํ•จ์ˆ˜๋Š” ๋ฌด๋ฃŒ ๋ฆฌ์†Œ์Šค, ๋ฆฌ์†Œ์Šค ์ œํ•œ ๋ฐ ํ•„ํ„ฐ๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ๋ฌธ์€ ๊ฐ„๋‹จํ•ด ๋ณด์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์šฐ๋ฆฌ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์—ฌ์œ  ๋ฉ”๋ชจ๋ฆฌ์˜ ๋ฐฑ๋ถ„์œจ์„ ๊ณ„์‚ฐํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์šฐ๋ฆฌ๊ฐ€ ๊ฐ€์ง„ ๋ฉ”๋ชจ๋ฆฌ์˜ ์–‘, ์ œํ•œ ๋ฐ ํ•„ํ„ฐ๋ง ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๋™์ผํ•œ ํ•„ํ„ฐ๋ฅผ ๋ชจ๋‘ ์žฌ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์„ฑํ•˜๋ฉด ํ›จ์”ฌ ๋” ์ข‹์•„ ๋ณด์ž…๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๊ทธ๊ฒƒ์€ ํฌ๊ณ  ํฐ ์ฟผ๋ฆฌ๋กœ ๋ฐ”๋€” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

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

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

์˜ˆ๋ฅผ ๋“ค์–ด, ๋ณ€์ˆ˜์—์„œ ์ค‘์š”ํ•œ ๊ฒƒ ๋˜๋Š” ๋ถ€๋ถ„์„ ๊ฐ•์กฐ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ธฐ๋ณธ ์ˆ˜ํ•™์„ ์ˆ˜ํ–‰ํ•˜์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์ œ๊ฐ€ Grafana์—์„œ ๋ฏธ๋ž˜์— ๋ณด๊ณ  ์‹ถ์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

๋‹ค์Œ์€ ์ด ru ํ•จ์ˆ˜๊ฐ€ ์ด๋ฏธ ์žˆ๊ณ  ์ด๋ฏธ VictoriaMetrics์— ์ง์ ‘ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ ๋” ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๋‘ ๋ฒˆ์งธ ์˜ˆ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ CTE์—์„œ ์„ ์–ธํ•œ ์บ์‹œ๋œ ๊ฐ’์„ ์ „๋‹ฌํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

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

์‹œ์Šคํ…œ ์—”์ง€๋‹ˆ์–ด๋งŒ ์žˆ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ „๋ฌธ๊ฐ€, ๋ฐ๋ธŒ์˜ต์Šค ๋˜๋Š” SRE๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ๋ชจ๋‹ˆํ„ฐ๋ง์ด ๋ฌด์—‡์ธ์ง€ ์•Œ๊ณ  Grafana๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•„๋Š” ์ „๋ฌธ๊ฐ€๊ฐ€ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋“ค์€ ์ด๋ฏธ ๊ทธ๊ฒƒ์„ 100 ๋ฒˆ ์ผ๊ณ  ๋ชจ๋‘์—๊ฒŒ ์„ค๋ช…ํ–ˆ์ง€๋งŒ ์™ ์ง€ ์•„๋ฌด๋„ ๋“ฃ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

์ด๊ฒƒ์€ ์‹ค์ œ๋กœ ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ ๋‚ด๊ฐ€ ์ง์ ‘ ํ•œ ์ผ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ Grafana์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ง€์›์ž…๋‹ˆ๋‹ค. NodeExporter๋ฅผ ๋งŒ๋“  ์‚ฌ๋žŒ๋“ค์ด ๋‚ด๊ฐ€ ์„ค๋ช…ํ•œ ๋Œ€๋กœ ํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ด…์‹œ๋‹ค. ๋˜ํ•œ ์ผ๋ จ์˜ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค.

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

์ฆ‰, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณด์ž…๋‹ˆ๋‹ค. ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ Grafana์— ์—ฐ๊ฒฐํ•˜๊ณ  ํŽธ์ง‘์„ ์‹œ์ž‘ํ•˜๋ฉด JSON์—์„œ ์ด ๋ฉ”ํŠธ๋ฆญ์œผ๋กœ ์ž‘์—…ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋งค์šฐ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ผ๋ถ€ ๊ธฐ๋Šฅ ์ง‘ํ•ฉ, ์„ค๋ช… ๋ฐ ํ™•์žฅ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

์ œ ์ƒ๊ฐ์—๋Š” ์ด๊ฒƒ์ด ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ฉด Grafana์—์„œ ๊ทธ๋Œ€๋กœ ์“ธ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Grafana๋Š” ๊ทธ๋Ÿฌํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ๊ทธ๋Ÿฌํ•œ ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค๊ณ  "๋ง"ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•ฉ์‹œ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๋งค์šฐ ๋ฉ‹์งˆ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

VictoriaMetrics์— ๋Œ€ํ•ด ์กฐ๊ธˆ. ์šฐ๋ฆฌ๋Š” ํฅ๋ฏธ๋กœ์šด ์ผ์„ ๋งŽ์ด ํ•ฉ๋‹ˆ๋‹ค. ์••์ถ•, ๋‹ค๋ฅธ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ์˜ ๊ฒฝ์Ÿ, PromQL๋กœ ์ž‘์—…ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์„ค๋ช…, ์ˆ˜์ง์  ํ™•์žฅ์„ฑ ๋ฐ Thanos์™€์˜ ๋Œ€๊ฒฐ์— ๋Œ€ํ•œ ๊ธฐ์‚ฌ๋ฅผ ์ฝ์–ด๋ณด์„ธ์š”.

"ExtendedPromQL" - Roman Khavronenko์˜ ๋ณด๊ณ ์„œ ๊ธฐ๋ก

์งˆ๋ฌธ :

๊ฐ„๋‹จํ•œ ์ธ์ƒ ์ด์•ผ๊ธฐ๋กœ ์งˆ๋ฌธ์„ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. Grafana๋ฅผ ์ฒ˜์Œ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์„ ๋•Œ ๋งค์šฐ ์„ค๋“๋ ฅ ์žˆ๋Š” 5์ค„ ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ์ตœ์ข… ๊ฒฐ๊ณผ๋Š” ๋งค์šฐ ์„ค๋“๋ ฅ ์žˆ๋Š” ์ฐจํŠธ์ž…๋‹ˆ๋‹ค. ์ด ๊ทธ๋ž˜ํ”„๋Š” ๊ฑฐ์˜ ์ƒ์‚ฐ์— ๋“ค์–ด๊ฐ”์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ž์„ธํžˆ ์‚ดํŽด๋ณด๋ฉด ์ด ์ฐจํŠธ๋Š” ์šฐ๋ฆฌ๊ฐ€ ์˜ˆ์ƒํ•œ ๋ฒ”์œ„์— ์†ํ•˜์ง€๋งŒ ํ˜„์‹ค๊ณผ ๋ฌด๊ด€ํ•œ ์ ˆ๋Œ€์ ์ธ ๋„Œ์„ผ์Šค๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ  ์žˆ์Œ์ด ๋ฐํ˜€์กŒ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚ด ์งˆ๋ฌธ. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋„ ์žˆ๊ณ  ํ•จ์ˆ˜๋„ ์žˆ์ง€๋งŒ Grafana์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์–ด๋–ป๊ฒŒ ์ž‘์„ฑํ•ฉ๋‹ˆ๊นŒ? ๋น„์ฆˆ๋‹ˆ์Šค ๊ฒฐ์ •์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ๋ณต์žกํ•œ ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„์˜ ์‹ค์ œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ฃผ๋ฌธํ•˜๊ฑฐ๋‚˜ ์ฃผ๋ฌธํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๊ฐ€ ์•Œ๋‹ค์‹œํ”ผ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๋Š” ์ด ํ•จ์ˆ˜๋Š” ์‚ฌ์‹ค๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

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

ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•?

ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•? ์•„๋งˆ ์•„๋‹ ๊ฒ๋‹ˆ๋‹ค.

Grafana์˜ ํ…Œ์ŠคํŠธ๋กœ.

Grafana๋Š” ์–ด๋–ป์Šต๋‹ˆ๊นŒ? Grafana๋Š” ์ด ์š”์ฒญ์„ DataSource๋กœ ์ง์ ‘ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๋งค๊ฐœ ๋ณ€์ˆ˜์— ์•ฝ๊ฐ„์„ ์ถ”๊ฐ€ํ•˜์—ฌ.

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

์‹ ๊ณ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ์••์ถ• ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! Grafana์—์„œ๋Š” ๋ณ€์ˆ˜์— ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์„ ๊ทธ๋ž˜ํ”„์—์„œ ๋ณ€์ˆ˜ ๋งคํ•‘์— ๋Œ€ํ•ด ๊ธฐ์–ตํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฌด์Šจ ๋ง์ธ์ง€ ์ดํ•ดํ•ฉ๋‹ˆ๊นŒ?

๋„ค.

์ด๊ฒƒ์€ ์ฒ˜์Œ์— Grafana์—์„œ ๊ฒฝ๊ณ ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ์—ˆ์„ ๋•Œ ๊ณจ์นซ๊ฑฐ๋ฆฌ์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐ ํ˜ธ์ŠคํŠธ์— ๋Œ€ํ•ด ๊ฐœ๋ณ„์ ์œผ๋กœ ๊ฒฝ๊ณ ๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ ๋‹น์‹ ์ด ํ•œ ์ผ์ด ์žˆ์Šต๋‹ˆ๋‹ค. Grafana์˜ ๊ฒฝ๊ณ ์— ๋Œ€ํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ?

Grafana๊ฐ€ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ๋ณ€์ˆ˜์— ์•ก์„ธ์Šคํ•˜์ง€ ์•Š์œผ๋ฉด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‚ด ์กฐ์–ธ์€ Grafana์—์„œ ๊ฒฝ๊ณ ๋ฅผ ์ „ํ˜€ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. alertmanager๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๋„ค ์ €๋„ ์‚ฌ์šฉ์ค‘์ธ๋ฐ ๊ทธ๋ƒฅ ๊ทธ๋ผํŒŒ๋‚˜์—์„œ ์„ค์ •ํ•˜๋Š”๊ฒŒ ๋” ์‰ฌ์› ๋˜๊ฑฐ ๊ฐ™์€๋ฐ ๊ฟ€ํŒ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

์ถœ์ฒ˜ : habr.com

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