Alexander Valyalkin์ด ์์ฑํ 2019๋ ํ๋ฐ ๋ณด๊ณ ์ "VictoriaMetrics์ Go ์ต์ ํ" ๋ด์ฉ์ ์ฝ์ด ๋ณด์๊ธฐ ๋ฐ๋๋๋ค.
๋ค์์ ์ด ๋ณด๊ณ ์์ ๋์์ ๋งํฌ์
๋๋ค.
์์ ์ ๋ํด ์๋ ค์ฃผ์ญ์์ค. ์ ๋ ์๋ ์ฐ๋ ๋ฐ์ํจ์
๋๋ค. ์ฌ๊ธฐ fast
, ๋๋ quick
์ ๋์ฌ.
์ ๋ ํ์ฌ VictoriaMetrics์์ ์ผํ๊ณ ์์ต๋๋ค. ๊ทธ๊ฒ ๋ญ๊ณ , ๋ด๊ฐ ๊ฑฐ๊ธฐ์ ๋ญ ํ๊ณ ์์ง? ์ด๋ฒ ํ๋ ์ ํ ์ด์ ์์ ์ด์ ๋ํด ์ด์ผ๊ธฐํ๊ฒ ์ต๋๋ค.
๋ณด๊ณ ์์ ๊ฐ์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๋จผ์ VictoriaMetrics๊ฐ ๋ฌด์์ธ์ง ์๋ ค๋๋ฆฌ๊ฒ ์ต๋๋ค.
- ๊ทธ๋ผ ์๊ณ์ด์ด ๋ฌด์์ธ์ง ์๋ ค๋๋ฆฌ๊ฒ ์ต๋๋ค.
- ๊ทธ๋ฐ ๋ค์ ์๊ณ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ด๋ป๊ฒ ์๋ํ๋์ง ์๋ ค ๋๋ฆฌ๊ฒ ์ต๋๋ค.
- ๋ค์์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ํคํ ์ฒ์ ๋ํด ์ค๋ช ํ๊ฒ ์ต๋๋ค. ๊ตฌ์ฑ ์์๋ ๋ฌด์์ ๋๊น?
- ๊ทธ๋ฐ ๋ค์ VictoriaMetrics์ ์ต์ ํ๋ก ๋์ด๊ฐ๊ฒ ์ต๋๋ค. ์ด๋ ๋ฐ์ ๋ ์ธ๋ฑ์ค์ ๋ํ ์ต์ ํ์ด์ Go์ ๋นํธ์ธํธ ๊ตฌํ์ ๋ํ ์ต์ ํ์ ๋๋ค.
์ฒญ์ค ์ค์ VictoriaMetrics๊ฐ ๋ฌด์์ธ์ง ์๋ ์ฌ๋์ด ์๋์? ์, ์ด๋ฏธ ๋ง์ ๋ถ๋ค์ด ์๊ณ ๊ณ์๋ค์. ์ข์ ์์์ด์์. ๋ชจ๋ฅด๋ ์ฌ๋๋ค์ ์ํด ์ด๊ฒ์ ์๊ณ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋๋ค. ์ด๋ ClickHouse ๊ตฌํ์ ์ผ๋ถ ์ธ๋ถ ์ฌํญ์ ๋ํ ClickHouse ์ํคํ ์ฒ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. ์๋ฅผ ๋ค์ด MergeTree์์๋ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ชจ๋ ํ๋ก์ธ์ ์ฝ์ด์ ๋ํ ๋ณ๋ ฌ ๊ณ์ฐ ๋ฐ ํ๋ก์ธ์ ์บ์์ ์๋ ๋ฐ์ดํฐ ๋ธ๋ก ์์ ์ ํตํ ์ฑ๋ฅ ์ต์ ํ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
VictoriaMetrics๋ ๋ค๋ฅธ ์๊ณ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ณด๋ค ๋ ๋์ ๋ฐ์ดํฐ ์์ถ์ ์ ๊ณตํฉ๋๋ค.
์์ง์ผ๋ก ํ์ฅ๋ฉ๋๋ค. ์ฆ, ํ ์ปดํจํฐ์ ๋ ๋ง์ ํ๋ก์ธ์์ ๋ ๋ง์ RAM์ ์ถ๊ฐํ ์ ์์ต๋๋ค. VictoriaMetrics๋ ์ด๋ฌํ ๊ฐ์ฉ ๋ฆฌ์์ค๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ํ์ฉํ๊ณ ์ ํ ์์ฐ์ฑ์ ํฅ์์ํฌ ๊ฒ์ ๋๋ค.
VictoriaMetrics๋ ๋ํ ์ํ์ ์ผ๋ก ํ์ฅ๋ฉ๋๋ค. ์ฆ, VictoriaMetrics ํด๋ฌ์คํฐ์ ์ถ๊ฐ ๋ ธ๋๋ฅผ ์ถ๊ฐํ ์ ์์ผ๋ฉฐ ์ฑ๋ฅ์ ๊ฑฐ์ ์ ํ์ ์ผ๋ก ํฅ์๋ฉ๋๋ค.
์ง์ํ์ จ๋ฏ์ด VictoriaMetrics๋ ๋น ๋ฅธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋๋ค. ์๋ํ๋ฉด ์ ๋ ๋ค๋ฅธ ์ฌ๋์ ์์ฑํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ Go๋ก ์์ฑ๋์๊ธฐ ๋๋ฌธ์ ์ด๋ฒ ๋ชจ์์์ ๊ทธ๊ฒ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ต๋๋ค.
์๊ณ์ด์ด ๋ฌด์์ธ์ง ์๋ ์ฌ๋์ ๋๊ตฌ์
๋๊น? ๊ทธ๋ ๋ํ ๋ง์ ์ฌ๋๋ค์ ์๊ณ ์์ต๋๋ค. ์๊ณ์ด์ ์ผ๋ จ์ ์์
๋๋ค. (timestamp, ะทะฝะฐัะตะฝะธะต)
, ์ฌ๊ธฐ์ ์ด๋ฌํ ์์ ์๊ฐ๋ณ๋ก ์ ๋ ฌ๋ฉ๋๋ค. ๊ฐ์ ๋ถ๋ ์์์ ์ซ์(float64)์
๋๋ค.
๊ฐ ์๊ณ์ด์ ํค๋ก ๊ณ ์ ํ๊ฒ ์๋ณ๋ฉ๋๋ค. ์ด ์ด์ ๋ ๋ฌด์์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋์? ๋น์ด ์์ง ์์ ํค-๊ฐ ์ ์ธํธ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
๋ค์์ ์๊ณ์ด์ ์์
๋๋ค. ์ด ์๋ฆฌ์ฆ์ ํต์ฌ์ ์ ๋ชฉ๋ก์
๋๋ค. __name__="cpu_usage"
์ธก์ ํญ๋ชฉ์ ์ด๋ฆ์
๋๋ค. instance="my-server"
- ์ด ์งํ๊ฐ ์์ง๋๋ ์ปดํจํฐ์
๋๋ค. datacenter="us-east"
- ์ด ์ปดํจํฐ๊ฐ ์์นํ ๋ฐ์ดํฐ ์ผํฐ์
๋๋ค.
์ฐ๋ฆฌ๋ ์ธ ๊ฐ์ ํค-๊ฐ ์์ผ๋ก ๊ตฌ์ฑ๋ ์๊ณ์ด ์ด๋ฆ์ ์ป์์ต๋๋ค. ์ด ํค๋ ์ ๋ชฉ๋ก์ ํด๋นํฉ๋๋ค. (timestamp, value)
. t1, t3, t3, ..., tN
- ์ด๊ฒ์ ํ์์คํฌํ์
๋๋ค. 10, 20, 12, ..., 15
- ํด๋น ๊ฐ. ์ด๋ ํน์ ์๋ฆฌ์ฆ์ ๋ํ ํน์ ์๊ฐ์ CPU ์ฌ์ฉ๋์
๋๋ค.
์๊ณ์ด์ ์ด๋์ ์ฌ์ฉ๋ ์ ์๋์? ๋๊ตฌ๋ ์ง ์ด๋ค ์๊ฐ์ ๊ฐ์ง๊ณ ์์ต๋๊น?
- DevOps์์๋ CPU, RAM, ๋คํธ์ํฌ, rps, ์ค๋ฅ ์ ๋ฑ์ ์ธก์ ํ ์ ์์ต๋๋ค.
- IoT - ์จ๋, ์๋ ฅ, ์ง๋ฆฌ ์ขํ ๋ฑ์ ์ธก์ ํ ์ ์์ต๋๋ค.
- ๋ํ ๊ธ์ต โ ๋ชจ๋ ์ข ๋ฅ์ ์ฃผ์๊ณผ ํตํ์ ๊ฐ๊ฒฉ์ ๋ชจ๋ํฐ๋งํ ์ ์์ต๋๋ค.
- ๋ํ ์๊ณ์ด์ ๊ณต์ฅ์ ์์ฐ ํ๋ก์ธ์ค๋ฅผ ๋ชจ๋ํฐ๋งํ๋ ๋ฐ ์ฌ์ฉ๋ ์ ์์ต๋๋ค. VictoriaMetrics๋ฅผ ์ฌ์ฉํ์ฌ ๋ก๋ด์ฉ ํ๋ ฅ ํฐ๋น์ ๋ชจ๋ํฐ๋งํ๋ ์ฌ์ฉ์๊ฐ ์์ต๋๋ค.
- ์๊ณ์ด์ ๋ค์ํ ์ฅ์น์ ์ผ์์์ ์ ๋ณด๋ฅผ ์์งํ๋ ๋ฐ์๋ ์ ์ฉํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์์ง์ ๊ฒฝ์ฐ; ํ์ด์ด ์๋ ฅ ์ธก์ ์ฉ; ์๋, ๊ฑฐ๋ฆฌ ์ธก์ ์ฉ; ํ๋ฐ์ ์๋น๋ ์ธก์ ๋ฑ
- ์๊ณ์ด์ ํญ๊ณต๊ธฐ๋ฅผ ๋ชจ๋ํฐ๋งํ๋ ๋ฐ์๋ ์ฌ์ฉ๋ ์ ์์ต๋๋ค. ๊ฐ ํญ๊ณต๊ธฐ์๋ ํญ๊ณต๊ธฐ ์ํ์ ๋ค์ํ ๋งค๊ฐ๋ณ์์ ๋ํ ์๊ณ์ด์ ์์งํ๋ ๋ธ๋๋ฐ์ค๊ฐ ์์ต๋๋ค. ์๊ณ์ด์ ํญ๊ณต์ฐ์ฃผ ์ฐ์ ์์๋ ์ฌ์ฉ๋ฉ๋๋ค.
- ํฌ์ค์ผ์ด๋ ํ์, ๋งฅ๋ฐ ๋ฑ์ด๋ค.
์ ๊ฐ ์์ด๋ฒ๋ฆฐ ์์ฉ ์ฌ๋ก๊ฐ ๋ ์์ ์ ์์ง๋ง, ํ๋ ์ฌํ์์๋ ์๊ณ์ด์ด ํ๋ฐํ๊ฒ ์ฌ์ฉ๋๊ณ ์๋ค๋ ์ ์ ์ดํดํด ์ฃผ์๊ธธ ๋ฐ๋๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ์ฌ์ฉ๋์ ๋งค๋ ์ฆ๊ฐํ๊ณ ์์ต๋๋ค.
์๊ณ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ํ์ํ ์ด์ ๋ ๋ฌด์์ ๋๊น? ์๊ณ์ด์ ์ ์ฅํ๊ธฐ ์ํด ์ผ๋ฐ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ ์ ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
์๊ณ์ด์๋ ์ผ๋ฐ์ ์ผ๋ก ๋ง์ ์์ ์ ๋ณด๊ฐ ํฌํจ๋์ด ์์ด ๊ธฐ์กด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ๊ณ ์ฒ๋ฆฌํ๊ธฐ ์ด๋ ต๊ธฐ ๋๋ฌธ์
๋๋ค. ๋ฐ๋ผ์ ์๊ณ์ด์ ๋ํ ์ ๋ฌธ์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ฑ์ฅํ์ต๋๋ค. ์ด ๊ธฐ์ง๋ ํฌ์ธํธ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ ์ฅํฉ๋๋ค. (timestamp, value)
์ฃผ์ด์ง ํค๋ก. ํค, ๋จ์ผ ํค-๊ฐ ์, ์ฌ๋ฌ ํค-๊ฐ ์ ๋๋ ์ ๊ท ํํ์์ ํตํด ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ธฐ ์ํ API๋ฅผ ์ ๊ณตํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ฏธ๊ตญ ๋ฐ์ดํฐ ์ผํฐ์ ์๋ ๋ชจ๋ ์๋น์ค์ CPU ๋ก๋๋ฅผ ์ฐพ์ผ๋ ค๋ฉด ์ด ์์ฌ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ์๊ณ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์๊ณ์ด SQL์ด ๊ทธ๋ค์ง ์ ํฉํ์ง ์๊ธฐ ๋๋ฌธ์ ํน์ ์ฟผ๋ฆฌ ์ธ์ด๋ฅผ ์ ๊ณตํฉ๋๋ค. SQL์ ์ง์ํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์์ง๋ง ๊ทธ๋ค์ง ์ ํฉํ์ง๋ ์์ต๋๋ค. ๋ค์๊ณผ ๊ฐ์ ์ฟผ๋ฆฌ ์ธ์ด
์ด๊ฒ์ VictoriaMetrics๋ฅผ ์๋ก ์ฌ์ฉํ๋ ํ๋ ์๊ณ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ํคํ ์ฒ์ ๋ชจ์ต์ ๋๋ค.
๋ ๋ถ๋ถ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ์ด๋ ๋ฐ์ ๋ ์ธ๋ฑ์ค๋ฅผ ์ํ ์ ์ฅ์์ด์ ์๊ณ์ด ๊ฐ์ ์ํ ์ ์ฅ์์ ๋๋ค. ์ด๋ฌํ ์ ์ฅ์๋ ๋ถ๋ฆฌ๋์ด ์์ต๋๋ค.
์ ๋ ์ฝ๋๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋์ฐฉํ๋ฉด ๋จผ์ ๋ฐ์ ๋ ์ธ๋ฑ์ค์ ์ก์ธ์คํ์ฌ ์ฃผ์ด์ง ์ธํธ์ ๋ํ ์๊ณ์ด ์๋ณ์๋ฅผ ์ฐพ์ต๋๋ค. label=value
ํน์ ์ธก์ ํญ๋ชฉ์ ๋ํด ์ด ์๋ณ์๋ฅผ ์ฐพ์ ๋ฐ์ดํฐ ์ ์ฅ์์ ๊ฐ์ ์ ์ฅํฉ๋๋ค.
TSDB์์ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๋ผ๋ ์์ฒญ์ด ์ค๋ฉด ๋จผ์ ๋ฐ์ ๋ ์ธ๋ฑ์ค๋ก ์ด๋ํฉ๋๋ค. ๋ชจ๋ ๊ฒ์ ์ป์ timeseries_ids
์ด ์ธํธ์ ์ผ์นํ๋ ๋ ์ฝ๋ label=value
. ๊ทธ๋ฐ ๋ค์ ๋ฐ์ดํฐ ์จ์ดํ์ฐ์ค์์ ๋ค์๊ณผ ๊ฐ์ด ์์ธํ๋์ด ํ์ํ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ต๋๋ค. timeseries_ids
.
์๊ณ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ค์ด์ค๋ ์ ํ ์ฟผ๋ฆฌ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
- ์ฐ์ ๊ทธ๋
๋ ๋ชจ๋ ๊ฒ์ ์ป์ต๋๋ค.
timeseries_ids
์ฃผ์ด์ง ์์ ํฌํจํ๋ ๋ฐ์ ๋ ์ธ๋ฑ์ค์์label=value
, ๋๋ ์ฃผ์ด์ง ์ ๊ท์์ ๋ง์กฑ์ํต๋๋ค. - ๊ทธ๋ฐ ๋ค์ ๋ฐ๊ฒฌ๋ ๋ฐ์ดํฐ์ ๋ํด ์ง์ ๋ ์๊ฐ ๊ฐ๊ฒฉ์ผ๋ก ๋ฐ์ดํฐ ์ ์ฅ์์์ ๋ชจ๋ ๋ฐ์ดํฐ ํฌ์ธํธ๋ฅผ ๊ฒ์ํฉ๋๋ค.
timeseries_ids
. - ๊ทธ ํ, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ฌ์ฉ์์ ์์ฒญ์ ๋ฐ๋ผ ์ด๋ฌํ ๋ฐ์ดํฐ ํฌ์ธํธ์ ๋ํด ์ผ๋ถ ๊ณ์ฐ์ ์ํํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ํ์๋ ๋ต์ ๋ฐํํฉ๋๋ค.
์ด๋ฒ ํ๋ ์ ํ
์ด์
์์๋ ์ฒซ ๋ฒ์งธ ๋ถ๋ถ์ ๋ํด ์ค๋ช
ํ๊ฒ ์ต๋๋ค. ๊ฒ์์
๋๋ค timeseries_ids
๋ฐ์ ๋ ์ธ๋ฑ์ค๋ก. ๋ ๋ฒ์งธ ๋ถ๋ถ๊ณผ ์ธ ๋ฒ์งธ ๋ถ๋ถ์ ๋์ค์ ์์ฒญํ์๋ฉด ๋ฉ๋๋ค
๋ฐ์ ๋ ์ธ๋ฑ์ค๋ก ๋์ด๊ฐ๊ฒ ์ต๋๋ค. ๋ง์ ์ฌ๋๋ค์ ์ด๊ฒ์ด ๊ฐ๋จํ๋ค๊ณ ์๊ฐํ ์๋ ์์ต๋๋ค. ๋ฐ์ ์ธ๋ฑ์ค๊ฐ ๋ฌด์์ด๊ณ ์ด๋ป๊ฒ ์๋ํ๋์ง ์๋ ์ฌ๋์ด ์๋์? ์, ์ด์ ์ฌ๋์ด ๋ง์ง ์๋ค์. ๊ทธ๊ฒ์ด ๋ฌด์์ธ์ง ์ดํดํ๋ ค๊ณ ๋ ธ๋ ฅํฉ์๋ค.
์ค์ ๋ก๋ ๊ฐ๋จํฉ๋๋ค. ์ด๋ ๋จ์ํ ํค๋ฅผ ๊ฐ์ ๋งคํํ๋ ์ฌ์ ์
๋๋ค. ์ด์ ๋ ๋ฌด์์
๋๊น? ์ด ์ปคํ label=value
์ด๋์์ label
ะธ value
- ์ด๊ฒ์ ์ ์
๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ์ ์ธํธ์
๋๋ค timeseries_ids
, ์ด๋ ์ฃผ์ด์ง ์์ ํฌํจํฉ๋๋ค. label=value
.
์ญ์์ธ์ ์ฌ์ฉํ๋ฉด ๋ชจ๋ ๊ฒ์ ๋น ๋ฅด๊ฒ ์ฐพ์ ์ ์์ต๋๋ค. timeseries_ids
, ์ด๋ label=value
.
๋ํ ๋น ๋ฅด๊ฒ ์ฐพ์ ์ ์๋๋ก ํด์ค๋๋ค. timeseries_ids
์ฌ๋ฌ ์์ ๋ํ ์๊ณ์ด label=value
๋๋ ์ปคํ์ฉ label=regexp
. ์ด๋ป๊ฒ ์ด๋ฐ ์ผ์ด ๋ฐ์ํ๋์? ์งํฉ์ ๊ต์งํฉ์ ์ฐพ์ timeseries_ids
๊ฐ ์๋ง๋ค label=value
.
๋ฐ์ ๋ ์ธ๋ฑ์ค์ ๋ค์ํ ๊ตฌํ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ๊ฐ์ฅ ๊ฐ๋จํ ์์งํ ๊ตฌํ๋ถํฐ ์์ํด ๋ณด๊ฒ ์ต๋๋ค. ๊ทธ๋ ๋ ์ด๋ ๊ฒ ์๊ฒผ์ต๋๋ค.
๊ธฐ๋ฅ getMetricIDs
๋ฌธ์์ด ๋ชฉ๋ก์ ๊ฐ์ ธ์ต๋๋ค. ๊ฐ ์ค์๋ ๋ค์์ด ํฌํจ๋ฉ๋๋ค. label=value
. ์ด ํจ์๋ ๋ชฉ๋ก์ ๋ฐํํฉ๋๋ค. metricIDs
.
์ด๋ป๊ฒ ์๋ํ๋์? ์ฌ๊ธฐ์๋ ์ ์ญ ๋ณ์๋ผ๋ ์ ์ญ ๋ณ์๊ฐ ์์ต๋๋ค. invertedIndex
. ์ด๊ฒ์ ์ผ๋ฐ ์ฌ์ (map
), ์ด๋ ๋ฌธ์์ด์ ์ฌ๋ผ์ด์ค int์ ๋งคํํฉ๋๋ค. ์ค์๋ ๋ค์์ด ํฌํจ๋ฉ๋๋ค. label=value
.
ํจ์ ๊ตฌํ: ๊ฐ์ ธ์ค๊ธฐ metricIDs
์ฒ์์ผ๋ก label=value
, ๊ทธ๋ฐ ๋ค์ ๋ค๋ฅธ ๋ชจ๋ ์์
์ ์งํํฉ๋๋ค. label=value
, ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ์ป์ต๋๋ค metricIDs
๊ทธ๋ค์ ์ํด. ๊ทธ๋ฆฌ๊ณ ํจ์๋ฅผ ํธ์ถํ์ธ์. intersectInts
, ์ด์ ๋ํด์๋ ์๋์์ ์ค๋ช
ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ํจ์๋ ์ด๋ค ๋ชฉ๋ก์ ๊ต์งํฉ์ ๋ฐํํฉ๋๋ค.
๋ณด์๋ค์ํผ, ๋ฐ์ ๋ ์ธ๋ฑ์ค๋ฅผ ๊ตฌํํ๋ ๊ฒ์ ๊ทธ๋ฆฌ ๋ณต์กํ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ ์์งํ ๊ตฌํ์ ๋๋ค. ์ด๋ค ๋จ์ ์ด ์๋์? ์์งํ ๊ตฌํ์ ๊ฐ์ฅ ํฐ ๋จ์ ์ ์ด๋ฌํ ๋ฐ์ ๋ ์ธ๋ฑ์ค๊ฐ RAM์ ์ ์ฅ๋๋ค๋ ๊ฒ์ ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์ ์์ํ๋ฉด ์ด ์ธ๋ฑ์ค๊ฐ ์์ค๋ฉ๋๋ค. ์ด ์ธ๋ฑ์ค๋ ๋์คํฌ์ ์ ์ฅ๋์ง ์์ต๋๋ค. ์ด๋ฌํ ๋ฐ์ ์ธ๋ฑ์ค๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ํฉํ์ง ์์ต๋๋ค.
๋ ๋ฒ์งธ ๋จ์ ์ ๋ฉ๋ชจ๋ฆฌ์๋ ๊ด๋ จ์ด ์์ต๋๋ค. ๋ฐ์ ๋ ์ธ๋ฑ์ค๋ RAM์ ๋ง์์ผ ํฉ๋๋ค. RAM ํฌ๊ธฐ๋ฅผ ์ด๊ณผํ๋ฉด ๋น์ฐํ ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ๋ก๊ทธ๋จ์ด ์๋ํ์ง ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ ๋ค์๊ณผ ๊ฐ์ ๊ธฐ์ฑ ์๋ฃจ์
์ ์ฌ์ฉํ์ฌ ํด๊ฒฐํ ์ ์์ต๋๋ค.
๊ฐ๋จํ ๋งํด์, ์ธ ๊ฐ์ง ์์ ์ ๋น ๋ฅด๊ฒ ์ํํ ์ ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ํ์ํฉ๋๋ค.
- ์ฒซ ๋ฒ์งธ ์์
์ ๋
น์์
๋๋ค
ะบะปัั-ะทะฝะฐัะตะฝะธะต
์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์. ๊ทธ๋ ๋ ์ด ์ผ์ ์์ฃผ ๋นจ๋ฆฌ ํด๋ ๋๋ค.ะบะปัั-ะทะฝะฐัะตะฝะธะต
์์์ ๋ฌธ์์ด์ ๋๋ค. - ๋ ๋ฒ์งธ ์์ ์ ์ฃผ์ด์ง ํค๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ ๋น ๋ฅด๊ฒ ๊ฒ์ํ๋ ๊ฒ์ ๋๋ค.
- ๊ทธ๋ฆฌ๊ณ ์ธ ๋ฒ์งธ ์์ ์ ์ฃผ์ด์ง ์ ๋์ฌ๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ชจ๋ ๊ฐ์ ๋น ๋ฅด๊ฒ ๊ฒ์ํ๋ ๊ฒ์ ๋๋ค.
LevelDB ๋ฐ RocksDB - ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ Google๊ณผ Facebook์์ ๊ฐ๋ฐํ์ต๋๋ค. ์ฒ์์๋ LevelDB๊ฐ ๋์์ต๋๋ค. ๊ทธ๋ฌ๋ค๊ฐ Facebook ์ฌ๋๋ค์ด LevelDB๋ฅผ ๊ฐ์ ธ์ ๊ฐ์ ํ๊ธฐ ์์ํ๊ณ RocksDB๋ฅผ ๋ง๋ค์์ต๋๋ค. ์ด์ RocksDB ๋ฐ MySQL๋ก ์ ์ก๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํฌํจํ์ฌ ๊ฑฐ์ ๋ชจ๋ ๋ด๋ถ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ Facebook ๋ด๋ถ์ RocksDB์์ ์๋ํฉ๋๋ค. ๊ทธ๋ค์ ๊ทธ์๊ฒ ์ด๋ฆ์ ์ง์ด์ฃผ์๋ค
๋ฐ์ ์ธ๋ฑ์ค๋ LevelDB๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌํํ ์ ์์ต๋๋ค. ์ด๋ป๊ฒ ํ๋์? ์ฐ๋ฆฌ๋ ์ด์ ๋ก ์ ์ฅํฉ๋๋ค label=value
. ๊ทธ๋ฆฌ๊ณ ๊ฐ์ ์์ด ์กด์ฌํ๋ ์๊ณ์ด์ ์๋ณ์์
๋๋ค. label=value
.
์ฃผ์ด์ง ์์ ๋ํด ๋ง์ ์๊ณ์ด์ด ์๋ ๊ฒฝ์ฐ label=value
, ๊ทธ๋ฌ๋ฉด ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ ๋์ผํ ํค์ ๋ค๋ฅธ ํ์ด ๋ง์ด ์์ ๊ฒ์
๋๋ค. timeseries_ids
. ๋ชจ๋ ๋ชฉ๋ก์ ์ป์ผ๋ ค๋ฉด timeseries_ids
, ์ด๊ฒ์ผ๋ก ์์ํ๋ label=prefix
, ์ฐ๋ฆฌ๋ ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ต์ ํ๋ ๋ฒ์ ์ค์บ์ ์ํํฉ๋๋ค. ์ฆ, ๋ค์์ผ๋ก ์์ํ๋ ๋ชจ๋ ํ์ ์ ํํฉ๋๋ค. label=prefix
๊ทธ๋ฆฌ๊ณ ํ์ํ ๊ฒ์ ์ป์ผ์ธ์ timeseries_ids
.
Go์์ ์ด๋ป๊ฒ ๋ณด์ผ์ง์ ๋ํ ์ํ ๊ตฌํ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ๋ฐ์ ๋ ์ธ๋ฑ์ค๊ฐ ์์ต๋๋ค. ๋ ๋ฒจDB ์ ๋๋ค.
๊ธฐ๋ฅ์ ๋จ์ ๊ตฌํ๊ณผ ๋์ผํฉ๋๋ค. ๊ฑฐ์ ํ ์ค์ฉ ์์งํ ๊ตฌํ์ ๋ฐ๋ณตํฉ๋๋ค. ์ ์ผํ ์์ ์ map
๋ฐ์ ๋ ์ธ๋ฑ์ค์ ์ก์ธ์คํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ฒซ ๋ฒ์งธ ๊ฐ์ ๋ชจ๋ ์ป์ต๋๋ค. label=value
. ๊ทธ๋ฐ ๋ค์ ๋๋จธ์ง ๋ชจ๋ ์์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. label=value
๊ทธ์ ์์ํ๋ metricID ์ธํธ๋ฅผ ๊ฐ์ ธ์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ๊ต์ฐจ์ ์ ์ฐพ์ต๋๋ค.
๋ชจ๋ ๊ฒ์ด ๊ด์ฐฎ์ ๊ฒ ๊ฐ์ง๋ง ์ด ์๋ฃจ์ ์๋ ๋จ์ ์ด ์์ต๋๋ค. VictoriaMetrics๋ ์ฒ์์ LevelDB๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ๋ฐ์ ์ธ๋ฑ์ค๋ฅผ ๊ตฌํํ์ต๋๋ค. ํ์ง๋ง ๊ฒฐ๊ตญ ํฌ๊ธฐํด์ผ ํ์ด์.
์? LevelDB๋ ์์งํ ๊ตฌํ๋ณด๋ค ๋๋ฆฌ๊ธฐ ๋๋ฌธ์
๋๋ค. ์์งํ ๊ตฌํ์์๋ ์ฃผ์ด์ง ํค๊ฐ ์ฃผ์ด์ง๋ฉด ์ ์ฒด ์ฌ๋ผ์ด์ค๋ฅผ ์ฆ์ ๊ฒ์ํฉ๋๋ค. metricIDs
. ์ด๋ ๋งค์ฐ ๋น ๋ฅธ ์์
์
๋๋ค. ์ ์ฒด ์ฌ๋ผ์ด์ค๋ฅผ ์ฌ์ฉํ ์ค๋น๊ฐ ๋์์ต๋๋ค.
LevelDB์์๋ ํจ์๊ฐ ํธ์ถ๋ ๋๋ง๋ค GetValues
๋ค์์ผ๋ก ์์ํ๋ ๋ชจ๋ ์ค์ ํต๊ณผํด์ผ ํฉ๋๋ค. label=value
. ๊ทธ๋ฆฌ๊ณ ๊ฐ ์ค์ ๊ฐ์ ์ป์ผ์ญ์์ค. timeseries_ids
. ๊ทธ๋ฐ ๊ฒ ์ค timeseries_ids
์ด๊ฒ๋ค ์ค ํ ์กฐ๊ฐ์ ๋ชจ์๋ผ timeseries_ids
. ๋ถ๋ช
ํ ์ด๊ฒ์ ๋จ์ํ ํค๋ก ์ผ๋ฐ ๋งต์ ์ก์ธ์คํ๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋๋ฆฝ๋๋ค.
๋ ๋ฒ์งธ ๋จ์ ์ LevelDB๊ฐ C๋ก ์์ฑ๋์๋ค๋ ๊ฒ์ ๋๋ค. Go์์ C ํจ์๋ฅผ ํธ์ถํ๋ ๊ฒ์ ๊ทธ๋ค์ง ๋น ๋ฅด์ง ์์ต๋๋ค. ์๋ฐฑ ๋๋ ธ์ด๊ฐ ๊ฑธ๋ฆฝ๋๋ค. 1~5๋๋ ธ์ด๊ฐ ๊ฑธ๋ฆฌ๋ go๋ก ์์ฑ๋ ์ผ๋ฐ ํจ์ ํธ์ถ๊ณผ ๋น๊ตํ๋ฉด ์ฑ๋ฅ ์ฐจ์ด๊ฐ ์์ญ ๋ฐฐ๋ ๋๊ธฐ ๋๋ฌธ์ ์ด๋ ๊ทธ๋ฆฌ ๋น ๋ฅด์ง ์์ต๋๋ค. VictoriaMetrics์ ๊ฒฝ์ฐ ์ด๋ ์น๋ช ์ ์ธ ๊ฒฐํจ์ด์์ต๋๋ค :)
๊ทธ๋์ ์ ๋ ๋ฐ์ ๋ ์ธ๋ฑ์ค๋ฅผ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ์ง์ ์์ฑํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ ๊ทธ๋
์๊ฒ ์ ํ๋ฅผ ํ์ด์
Mergeset์ MergeTree ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. ์ด ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ ClickHouse์์ ์ฐจ์ฉ๋์์ต๋๋ค. ๋ถ๋ช
ํ ๋จธ์ง์
์ ๋น ๋ฅธ ๊ฒ์์ ์ํด ์ต์ ํ๋์ด์ผ ํฉ๋๋ค. timeseries_ids
์ฃผ์ด์ง ํค์ ๋ฐ๋ผ. Mergeset์ ์ ์ ์ผ๋ก Go๋ก ์์ฑ๋์์ต๋๋ค. ๋๋ ๋ณผ ์์์ด
mergeset API๋ LevelDB ๋ฐ RocksDB์ ๋งค์ฐ ์ ์ฌํฉ๋๋ค. ์ฆ, ์ ๋ ์ฝ๋๋ฅผ ๊ฑฐ๊ธฐ์ ๋น ๋ฅด๊ฒ ์ ์ฅํ๊ณ ์ฃผ์ด์ง ์ ๋์ด๋ก ๋ ์ฝ๋๋ฅผ ๋น ๋ฅด๊ฒ ์ ํํ ์ ์์ต๋๋ค.
๋์ค์ mergeset์ ๋จ์ ์ ๋ํด ์ด์ผ๊ธฐํ๊ฒ ์ต๋๋ค. ์ด์ ์ญ ์ธ๋ฑ์ค๋ฅผ ๊ตฌํํ ๋ ํ๋ก๋์ ํ๊ฒฝ์์ VictoriaMetrics์ ์ด๋ค ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋์ง ์ด์ผ๊ธฐํด ๋ณด๊ฒ ์ต๋๋ค.
์ ๊ทธ๋ฐ ์ผ๋ค์ด ์ผ์ด๋ฌ๋๊ฐ?
์ฒซ ๋ฒ์งธ ์ด์ ๋ ๋์ ์ดํ๋ฅ ์ ๋๋ค. ๋ฌ์์์ด๋ก ๋ฒ์ญํ๋ฉด ์๊ณ์ด์ด ์์ฃผ ๋ณ๊ฒฝ๋ฉ๋๋ค. ์ด๊ฒ์ ์๊ณ์ด์ด ๋๋๊ณ ์๋ก์ด ์๊ณ์ด์ด ์์๋๊ฑฐ๋ ๋ง์ ์๋ก์ด ์๊ณ์ด์ด ์์๋๋ ๋์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฐ ์ผ์ด ์์ฃผ ๋ฐ์ํฉ๋๋ค.
๋ ๋ฒ์งธ ์ด์ ๋ ์๊ณ์ด์ ์๊ฐ ๋ง๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ชจ๋ํฐ๋ง์ด ์ธ๊ธฐ๋ฅผ ๋๋ ์ด๊ธฐ์๋ ์๊ณ์ด์ ์๊ฐ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๊ฐ ์ปดํจํฐ์ ๋ํด CPU, ๋ฉ๋ชจ๋ฆฌ, ๋คํธ์ํฌ ๋ฐ ๋์คํฌ ๋ก๋๋ฅผ ๋ชจ๋ํฐ๋งํด์ผ ํฉ๋๋ค. ์ปดํจํฐ๋น ์๊ณ์ด 4๊ฐ. ์ปดํจํฐ 100๋์ ์๊ณ์ด 400๊ฐ๊ฐ ์๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์ด๊ฒ์ ๋งค์ฐ ์ ์ต๋๋ค.
์๊ฐ์ด ์ง๋๋ฉด์ ์ฌ๋๋ค์ ๋์ฑ ์ธ๋ถ์ ์ธ ์ ๋ณด๋ฅผ ์ธก์ ํ ์ ์๋ค๋ ์ฌ์ค์ ๊นจ๋ฌ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ ์ฒด ํ๋ก์ธ์์ ๋ถํ๊ฐ ์๋ ๊ฐ ํ๋ก์ธ์ ์ฝ์ด์ ๋ถํ๋ฅผ ๋ณ๋๋ก ์ธก์ ํฉ๋๋ค. 40๊ฐ์ ํ๋ก์ธ์ ์ฝ์ด๊ฐ ์๋ ๊ฒฝ์ฐ ํ๋ก์ธ์ ๋ก๋๋ฅผ ์ธก์ ํ ์ ์๋ ์๊ณ์ด์ด 40๋ฐฐ ๋ ๋ง์ต๋๋ค.
๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ด ์ ๋ถ๋ ์๋๋๋ค. ๊ฐ ํ๋ก์ธ์ ์ฝ์ด๋ ์ ํด ์ํ์ธ ๊ฒฝ์ฐ์ ๊ฐ์ ์ฌ๋ฌ ์ํ๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค. ๋ํ ์ฌ์ฉ์ ๊ณต๊ฐ, ์ปค๋ ๊ณต๊ฐ ๋ฐ ๊ธฐํ ์ํ์์๋ ์์ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฌํ ๊ฐ ์ํ๋ ๋ณ๋์ ์๊ณ์ด๋ก ์ธก์ ๋ ์๋ ์์ต๋๋ค. ์ด๋ก ์ธํด ํ ์๊ฐ 7~8๋ฐฐ ์ถ๊ฐ๋ก ๋์ด๋ฉ๋๋ค.
ํ๋์ ์ธก์ ํญ๋ชฉ์์ ๋จ ํ๋์ ์ปดํจํฐ์ ๋ํด 40 x 8 = 320๊ฐ์ ์ธก์ ํญ๋ชฉ์ ์ป์์ต๋๋ค. 100์ ๊ณฑํ๋ฉด 32์ด ์๋ 000์ด ๋ฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ Kubernetes๊ฐ ๋ํ๋ฌ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ Kubernetes๊ฐ ๋ค์ํ ์๋น์ค๋ฅผ ํธ์คํ ํ ์ ์๊ธฐ ๋๋ฌธ์ ์ํฉ์ ๋์ฑ ์ ํ๋์์ต๋๋ค. Kubernetes์ ๊ฐ ์๋น์ค๋ ์ฌ๋ฌ ํฌ๋๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ๋ชจ๋ ๊ฒ์ ๋ชจ๋ํฐ๋งํด์ผ ํฉ๋๋ค. ๋ํ ๋น์ฌ๋ ๊ทํ์ ์๋น์ค์ ๋ํ ์๋ก์ด ๋ฒ์ ์ ์ง์์ ์ผ๋ก ๋ฐฐํฌํ๊ณ ์์ต๋๋ค. ์ ๋ฒ์ ๋ง๋ค ์ ์๊ณ์ด์ ์์ฑํด์ผ ํฉ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ์๊ณ์ด์ ๊ฐ์๊ฐ ๊ธฐํ๊ธ์์ ์ผ๋ก ๋์ด๋๊ณ , ์ด๋ฅผ ํ์ด ์นด๋๋๋ฆฌํฐ(high-cardinality)๋ผ๊ณ ๋ถ๋ฅด๋ ์๊ณ์ด ๊ฐ์๊ฐ ๋ง์์ง๋ ๋ฌธ์ ์ ์ง๋ฉดํ๊ฒ ๋ฉ๋๋ค. VictoriaMetrics๋ ๋ค๋ฅธ ์๊ณ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋น๊ตํ์ฌ ์ด์ ์ฑ๊ณต์ ์ผ๋ก ๋์ฒํฉ๋๋ค.
๋์ ์ดํ๋ฅ ์ ๋ํด ์์ธํ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์์ฐ ๊ณผ์ ์์ ์ดํ๋ฅ ์ด ๋์ ์ด์ ๋ ๋ฌด์์ ๋๊น? ๋ผ๋ฒจ๊ณผ ํ๊ทธ์ ์ผ๋ถ ์๋ฏธ๋ ๋์์์ด ๋ณํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
์๋ฅผ ๋ค์ด ๋ค์๊ณผ ๊ฐ์ ๊ฐ๋
์ด ์๋ Kubernetes๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค. deployment
, ์ฆ ์ ํ๋ฆฌ์ผ์ด์
์ ์ ๋ฒ์ ์ด ์ถ์๋๋ ๊ฒฝ์ฐ์
๋๋ค. ์ด๋ค ์ด์ ๋ก Kubernetes ๊ฐ๋ฐ์๋ ๋ฐฐํฌ ID๋ฅผ ๋ ์ด๋ธ์ ์ถ๊ฐํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
์ด๊ฒ์ด ๋ฌด์์ผ๋ก ์ด์ด์ก๋์? ๋ํ ์๋ก์ด ๋ฐฐํฌ๊ฐ ์์ ๋๋ง๋ค ์ด์ ์๊ณ์ด์ด ๋ชจ๋ ์ค๋จ๋๊ณ ๋์ ์ ์๊ณ์ด์ด ์ ๋ ์ด๋ธ ๊ฐ์ผ๋ก ์์๋ฉ๋๋ค. deployment_id
. ๊ทธ๋ฌํ ํ์ ์์ญ๋ง, ์ฌ์ง์ด ์๋ฐฑ๋ง ๊ฐ๊ฐ ์์ ์ ์์ต๋๋ค.
์ด ๋ชจ๋ ๊ฒ์์ ์ค์ํ ์ ์ ์๊ณ์ด์ ์ ์ฒด ๊ฐ์๋ ๋์ด๋์ง๋ง ํ์ฌ ํ์ฑํ๋์ด ๋ฐ์ดํฐ๋ฅผ ์์ ํ๋ ์๊ณ์ด์ ๊ฐ์๋ ์ผ์ ํ๊ฒ ์ ์ง๋๋ค๋ ์ ์ ๋๋ค. ์ด ์ํ๋ฅผ ๋์ ์ดํ๋ฅ ์ด๋ผ๊ณ ํฉ๋๋ค.
๋์ ์ดํ๋ฅ ์ ์ฃผ์ ๋ฌธ์ ๋ ํน์ ์๊ฐ ๊ฐ๊ฒฉ ๋์ ํน์ ๋ ์ด๋ธ ์งํฉ์ ๋ํ ๋ชจ๋ ์๊ณ์ด์ ๋ํด ์ผ์ ํ ๊ฒ์ ์๋๋ฅผ ๋ณด์ฅํ๋ ๊ฒ์ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ด๋ ์ง๋ ์๊ฐ ๋๋ ๋ง์ง๋ง ๋ ์ ์๊ฐ ๊ฐ๊ฒฉ์ ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ? ์ฒซ ๋ฒ์งธ ์ต์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ด๋ ๋ฐ์ ๋ ์ง์๋ฅผ ์๊ฐ์ ๋ฐ๋ผ ๋ ๋ฆฝ๋ ๋ถ๋ถ์ผ๋ก ๋๋๋ ๊ฒ์ ๋๋ค. ์ฆ, ์ฝ๊ฐ์ ์๊ฐ ๊ฐ๊ฒฉ์ด ์ง๋๋ฉด ํ์ฌ ๋ฐ์ ์ธ๋ฑ์ค ์์ ์ด ์๋ฃ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์๋ก์ด ๋ฐ์ ์ธ๋ฑ์ค๋ฅผ ์์ฑํฉ๋๋ค. ๋ ๋ค๋ฅธ ์๊ฐ ๊ฐ๊ฒฉ์ด ์ง๋๋ฉด ์ฐ๋ฆฌ๋ ๋ ๋ค๋ฅธ ์๊ฐ ๊ฐ๊ฒฉ์ ๋ง๋ญ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด๋ฌํ ๋ฐ์ ๋ ์ธ๋ฑ์ค์์ ์ํ๋งํ ๋ ์ฃผ์ด์ง ๊ฐ๊ฒฉ ๋ด์ ์ํ๋ ๋ฐ์ ๋ ์ธ๋ฑ์ค ์งํฉ์ ์ฐพ์ต๋๋ค. ๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ ๊ฑฐ๊ธฐ์์ ์๊ณ์ด์ ID๋ฅผ ์ ํํฉ๋๋ค.
์ด๋ ๊ฒ ํ๋ฉด ์ฃผ์ด์ง ๊ฐ๊ฒฉ์ ์ํ์ง ์๋ ๋ถ๋ถ์ ๋ณผ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋ฆฌ์์ค๊ฐ ์ ์ฝ๋ฉ๋๋ค. ์ฆ, ์ผ๋ฐ์ ์ผ๋ก ์ง๋ ์๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ํํ๋ฉด ์ด์ ์๊ฐ ๊ฐ๊ฒฉ์ ๋ํด์๋ ์์ฒญ์ ๊ฑด๋๋๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ ๋ค๋ฅธ ์ต์ ์ด ์์ต๋๋ค. ์ด๋ ํด๋น ๋ ์ง์ ๋ฐ์ํ ์๊ณ์ด ID์ ๋ณ๋ ๋ชฉ๋ก์ ๋งค์ผ ์ ์ฅํ๊ธฐ ์ํ ๊ฒ์ ๋๋ค.
์ด์ ์๋ฃจ์ ์ ๋นํด ์ด ์๋ฃจ์ ์ ์ฅ์ ์ ์๊ฐ์ด ์ง๋๋ ์ฌ๋ผ์ง์ง ์๋ ์๊ณ์ด ์ ๋ณด๋ฅผ ๋ณต์ ํ์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๊ฒ๋ค์ ๋์์์ด ์กด์ฌํ๋ฉฐ ๋ณํ์ง ์์ต๋๋ค.
๋จ์ ์ ์ด๋ฌํ ์๋ฃจ์ ์ ๊ตฌํํ๊ธฐ๊ฐ ๋ ์ด๋ ต๊ณ ๋๋ฒ๊ทธํ๊ธฐ๊ฐ ๋ ์ด๋ ต๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ VictoriaMetrics๋ ์ด ์๋ฃจ์ ์ ์ ํํ์ต๋๋ค. ์ญ์ฌ์ ์ผ๋ก ์ด๋ฐ ์ผ์ด ์ผ์ด๋ฌ์ต๋๋ค. ์ด ์๋ฃจ์ ์ ์ด์ ์๋ฃจ์ ์ ๋นํด ์ฑ๋ฅ๋ ์ข์ต๋๋ค. ์๋ํ๋ฉด ๋ณ๊ฒฝ๋์ง ์๋, ์ฆ ์๊ฐ์ด ์ง๋๋ ์ฌ๋ผ์ง์ง ์๋ ์๊ณ์ด์ ๋ํด ๊ฐ ํํฐ์ ์ ๋ฐ์ดํฐ๋ฅผ ๋ณต์ ํด์ผ ํ๋ค๋ ์ฌ์ค ๋๋ฌธ์ ์ด ์๋ฃจ์ ์ด ๊ตฌํ๋์ง ์์๊ธฐ ๋๋ฌธ์ ๋๋ค. VictoriaMetrics๋ ์ฃผ๋ก ๋์คํฌ ๊ณต๊ฐ ์๋น์ ๋ง์ถฐ ์ต์ ํ๋์์ผ๋ฉฐ ์ด์ ๊ตฌํ์ผ๋ก ์ธํด ๋์คํฌ ๊ณต๊ฐ ์๋น๊ฐ ๋ ์ฌํด์ก์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด ๊ตฌํ์ ๋์คํฌ ๊ณต๊ฐ ์๋น๋ฅผ ์ต์ํํ๋ ๋ฐ ๋ ์ ํฉํ๋ฏ๋ก ์ ํ๋์์ต๋๋ค.
๋๋ ๊ทธ๋
์ ์ธ์์ผ ํ๋ค. ์ด๋ ค์์ ์ด ๊ตฌํ์์ ์ฌ์ ํ ํจ์ฌ ๋ ํฐ ์ซ์๋ฅผ ์ ํํด์ผ ํ๋ค๋ ๊ฒ์ด์์ต๋๋ค. timeseries_ids
์ญ ์ธ๋ฑ์ค๊ฐ ์๊ฐ ๋ถํ ๋ ๊ฒฝ์ฐ๋ณด๋ค ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ.
์ด ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํ๋์? ์ฐ๋ฆฌ๋ ํ๋์ ์๋ณ์ ๋์ ๊ฐ ๋ฐ์ ๋ ์ธ๋ฑ์ค ํญ๋ชฉ์ ์ฌ๋ฌ ๊ฐ์ ์๊ณ์ด ์๋ณ์๋ฅผ ์ ์ฅํ๋ ๋
์ฐฝ์ ์ธ ๋ฐฉ์์ผ๋ก ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. ์ฆ, ์ฐ๋ฆฌ๋ ์ด์ ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค label=value
, ์ด๋ ๋ชจ๋ ์๊ณ์ด์์ ๋ฐ์ํฉ๋๋ค. ์ด์ ์ฐ๋ฆฌ๋ ์ฌ๋ฌ ๊ฐ์ง๋ฅผ ์ ์ฅํฉ๋๋ค timeseries_ids
ํ ํญ๋ชฉ์.
์ฌ๊ธฐ์ ์๊ฐ ์์ต๋๋ค. ์ด์ ์๋ N๊ฐ์ ํญ๋ชฉ์ด ์์์ง๋ง ์ด์ ๋ ์ ๋์ฌ๊ฐ ๋ค๋ฅธ ๋ชจ๋ ํญ๋ชฉ๊ณผ ๋์ผํ ํญ๋ชฉ์ด ํ๋ ์์ต๋๋ค. ์ด์ ํญ๋ชฉ์ ๊ฒฝ์ฐ ๊ฐ์๋ ๋ชจ๋ ์๊ณ์ด ID๊ฐ ํฌํจ๋ฉ๋๋ค.
์ด๋ฅผ ํตํด ์ด๋ฌํ ๋ฐ์ ์ธ๋ฑ์ค์ ์ค์บ ์๋๋ฅผ ์ต๋ 10๋ฐฐ๊น์ง ๋์ผ ์ ์์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด์ ๋ฌธ์์ด์ ์ ์ฅํ๋ฏ๋ก ์บ์์ ๋ํ ๋ฉ๋ชจ๋ฆฌ ์๋น๋ฅผ ์ค์ผ ์ ์์์ต๋๋ค. label=value
์บ์์ ํ ๋ฒ๋ง N ๋ฒ ํจ๊ป ์ ์ฅ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ๊ทธ์ ๋ผ๋ฒจ์ Kubernetes๊ฐ ์ฝ์
ํ๊ธฐ๋ฅผ ์ข์ํ๋ ๊ธด ์ค์ ์ ์ฅํ๋ฉด ์ด ์ค์ด ์ปค์ง ์ ์์ต๋๋ค.
๋ฐ์ ๋ ์ธ๋ฑ์ค์์ ๊ฒ์ ์๋๋ฅผ ๋์ด๋ ๋ ๋ค๋ฅธ ์ต์
์ ์ค๋ฉ์
๋๋ค. ํ๋๊ฐ ์๋ ์ฌ๋ฌ ๊ฐ์ ๋ฐ์ ๋ ์ธ๋ฑ์ค๋ฅผ ์์ฑํ๊ณ ํค๋ณ๋ก ๋ฐ์ดํฐ๋ฅผ ์ค๋ฉํฉ๋๋ค. ์ด๊ฒ์ ์ธํธ์
๋๋ค key=value
์ฆ๊ธฐ. ์ฆ, ์ฌ๋ฌ ํ๋ก์ธ์์์ ๋ณ๋ ฌ๋ก ์ฟผ๋ฆฌํ ์ ์๋ ์ฌ๋ฌ ๊ฐ์ ๋
๋ฆฝ์ ์ธ ๋ฐ์ ์ธ๋ฑ์ค๋ฅผ ์ป์ต๋๋ค. ์ด์ ๊ตฌํ์์๋ ๋จ์ผ ํ๋ก์ธ์ ๋ชจ๋์์๋ง ์์
์ด ํ์ฉ๋์์ต๋๋ค. ์ฆ, ํ๋์ ์ฝ์ด์์๋ง ๋ฐ์ดํฐ๋ฅผ ์ค์บํ ์ ์์์ต๋๋ค. ์ด ์๋ฃจ์
์ ์ฌ์ฉํ๋ฉด ClickHouse๊ฐ ์ ํธํ๋ ๊ฒ์ฒ๋ผ ํ ๋ฒ์ ์ฌ๋ฌ ์ฝ์ด์ ๋ฐ์ดํฐ๋ฅผ ์ค์บํ ์ ์์ต๋๋ค. ์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ๊ตฌํํ ๊ณํ์
๋๋ค.
์ด์ ์์ผ๋ก ๋์๊ฐ์ ๊ต์ฐจ ๊ธฐ๋ฅ์ผ๋ก ๋์๊ฐ ๋ณด๊ฒ ์ต๋๋ค. timeseries_ids
. ์ด๋ค ๊ตฌํ์ด ์์ ์ ์๋์ง ์๊ฐํด ๋ด
์๋ค. ์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด ๋ค์์ ์ฐพ์ ์ ์์ต๋๋ค. timeseries_ids
์ฃผ์ด์ง ์ธํธ์ ๋ํด label=value
.
์ฒซ ๋ฒ์งธ ์ต์
์ ์์งํ ๊ตฌํ์
๋๋ค. ๋ ๊ฐ์ ์ค์ฒฉ ๋ฃจํ. ์ฌ๊ธฐ์ ์ฐ๋ฆฌ๋ ํจ์ ์
๋ ฅ์ ์ป์ต๋๋ค. intersectInts
๋ ์กฐ๊ฐ - a
ะธ b
. ์ถ๋ ฅ์์๋ ์ด๋ฌํ ์กฐ๊ฐ์ ๊ต์ฐจ์ ์ ๋ฐํํด์ผ ํฉ๋๋ค.
์์งํ ๊ตฌํ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ฌ๋ผ์ด์ค์ ๋ชจ๋ ๊ฐ์ ๋ฐ๋ณตํฉ๋๋ค a
, ์ด ๋ฃจํ ๋ด์์ ์ฐ๋ฆฌ๋ ์ฌ๋ผ์ด์ค์ ๋ชจ๋ ๊ฐ์ ์ดํด๋ด
๋๋ค. b
. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ๋ค์ ๋น๊ตํฉ๋๋ค. ์ผ์นํ๋ฉด ๊ต์ฐจ์ ์ ์ฐพ์ ๊ฒ์
๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ์ ์ฅํ์ธ์. result
.
๋จ์ ์ ๋ฌด์์
๋๊น? XNUMX์ฐจ ๋ณต์ก์ฑ์ด ์ฃผ์ ๋จ์ ์
๋๋ค. ์๋ฅผ ๋ค์ด ์ฐจ์์ด ์ฌ๋ผ์ด์ค์ธ ๊ฒฝ์ฐ a
ะธ b
ํ ๋ฒ์ ๋ฐฑ๋ง ๊ฐ๋ฅผ ์
๋ ฅํ๋ฉด ์ด ํจ์๋ ๊ฒฐ์ฝ ๋ต์ ๋ฐํํ์ง ์์ต๋๋ค. XNUMX์กฐ ๋ฒ์ ๋ฐ๋ณต์ด ํ์ํ๊ธฐ ๋๋ฌธ์
๋๋ค. ์ด๋ ํ๋ ์ปดํจํฐ์ ๊ฒฝ์ฐ์๋ ๋ง์ ์์
๋๋ค.
๋ ๋ฒ์งธ ๊ตฌํ์ ์ง๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. ์ง๋๋ฅผ ์์ฑํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ฌ๋ผ์ด์ค์ ๋ชจ๋ ๊ฐ์ ์ด ๋งต์ ๋ฃ์ต๋๋ค. a
. ๊ทธ๋ฐ ๋ค์ ๋ณ๋์ ๋ฃจํ์์ ์ฌ๋ผ์ด์ค๋ฅผ ์งํํฉ๋๋ค. b
. ๊ทธ๋ฆฌ๊ณ ์ด ๊ฐ์ด ์ฌ๋ผ์ด์ค์์ ๋์จ ๊ฒ์ธ์ง ํ์ธํฉ๋๋ค. b
์ง๋์์. ์กด์ฌํ๋ ๊ฒฝ์ฐ ๊ฒฐ๊ณผ์ ์ถ๊ฐํ์ญ์์ค.
์ด์ ์ ๋ฌด์์ ๋๊น? ์ฅ์ ์ ์ ํ ๋ณต์ก๋๋ง ์๋ค๋ ๊ฒ์ ๋๋ค. ์ฆ, ๋ ํฐ ์กฐ๊ฐ์ ๋ํด ํจ์๊ฐ ํจ์ฌ ๋น ๋ฅด๊ฒ ์คํ๋ฉ๋๋ค. ๋ฐฑ๋ง ํฌ๊ธฐ ์กฐ๊ฐ์ ๊ฒฝ์ฐ ์ด ํจ์๋ ์ด์ ํจ์์ 2์กฐ ๋ฐ๋ณต๊ณผ ๋ฌ๋ฆฌ XNUMX๋ง ๋ฐ๋ณต์ผ๋ก ์คํ๋ฉ๋๋ค.
๋จ์ ์ ์ด ํจ์๊ฐ ์ด ๋งต์ ์์ฑํ๋ ๋ฐ ๋ ๋ง์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ์ํ๋ค๋ ๊ฒ์ ๋๋ค.
๋ ๋ฒ์งธ ๋จ์ ์ ํด์ฑ์ ๋ํ ์ค๋ฒํค๋๊ฐ ํฌ๋ค๋ ๊ฒ์ ๋๋ค. ์ด ๋จ์ ์ ๊ทธ๋ค์ง ๋ช ํํ์ง ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ์๊ฒ๋ ๊ทธ๊ฒ์ ๊ทธ๋ค์ง ๋ช ํํ์ง ์์๊ธฐ ๋๋ฌธ์ ์ฒ์์๋ VictoriaMetrics์์ ๊ต์ฐจ๋ก์ ๊ตฌํ์ด ์ง๋๋ฅผ ํตํด ์ด๋ฃจ์ด์ก์ต๋๋ค. ๊ทธ๋ฌ๋ ํ๋กํ์ผ๋ง์ ํตํด ๋ฉ์ธ ํ๋ก์ธ์ ์๊ฐ์ด ๋งต์ ์ฐ๊ณ ์ด ๋งต์ ๊ฐ์ด ์๋์ง ํ์ธํ๋ ๋ฐ ์์๋๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค.
์ ์ด๋ฐ ๊ณณ์์ CPU ์๊ฐ์ด ๋ญ๋น๋๋์? Go๋ ์ด๋ฌํ ๋ผ์ธ์ ๋ํด ํด์ฑ ์์ ์ ์ํํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ฆ, HashMap์ ์ง์ ๋ ์ธ๋ฑ์ค์ ์ก์ธ์คํ๊ธฐ ์ํด ํค์ ํด์๋ฅผ ๊ณ์ฐํฉ๋๋ค. ํด์ ๊ณ์ฐ ์์ ์ ์์ญ ๋๋ ธ์ด ์์ ์๋ฃ๋ฉ๋๋ค. VictoriaMetrics์ ๊ฒฝ์ฐ ์๋๊ฐ ๋๋ฆฝ๋๋ค.
๋๋ ์ด ๊ฒฝ์ฐ์ ํน๋ณํ ์ต์ ํ๋ ๋นํธ์
์ ๊ตฌํํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ์ด๊ฒ์ด ๋ ์กฐ๊ฐ์ ๊ต์ฐจ์ ์ ๋ชจ์ต์
๋๋ค. ์ฌ๊ธฐ์๋ ๋นํธ์ธํธ๋ฅผ ๋ง๋ญ๋๋ค. ์ฒซ ๋ฒ์งธ ์ฌ๋ผ์ด์ค์ ์์๋ฅผ ์ฌ๊ธฐ์ ์ถ๊ฐํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋ ๋ฒ์งธ ์ฌ๋ผ์ด์ค์ ์ด๋ฌํ ์์๊ฐ ์๋์ง ํ์ธํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฒฐ๊ณผ์ ์ถ๊ฐํ์ธ์. ์ฆ, ์์ ์์ ๊ฑฐ์ ๋ค๋ฅด์ง ์์ต๋๋ค. ์ฌ๊ธฐ์ ์ ์ผํ ๊ฒ์ ์ง๋์ ๋ํ ์ก์ธ์ค๋ฅผ ์ฌ์ฉ์ ์ ์ ํจ์๋ก ๋์ฒดํ๋ค๋ ๊ฒ์
๋๋ค. add
ะธ has
.
์ธ๋ป ๋ณด๊ธฐ์๋ ์ด์ ์ ํ์ค ์ง๋๋ฅผ ์ฌ์ฉํ ๋ค์ ๋ค๋ฅธ ํจ์๋ฅผ ํธ์ถํ๋ฉด ์ด ์์ ์ด ๋ ๋๋ฆฌ๊ฒ ์๋ํด์ผ ํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง, ํ๋กํ์ผ๋ง์ ๋ณด๋ฉด VictoriaMetrics์ ๊ฒฝ์ฐ ์ด ์์ ์ด ํ์ค ์ง๋๋ณด๋ค 10๋ฐฐ ๋ ๋น ๋ฅด๊ฒ ์๋ํ๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค.
๋ํ ๋งต ๊ตฌํ์ ๋นํด ํจ์ฌ ์ ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์๋ํ๋ฉด ์ฌ๊ธฐ์ XNUMX๋ฐ์ดํธ ๊ฐ ๋์ ๋นํธ๋ฅผ ์ ์ฅํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ด ๊ตฌํ์ ๋จ์ ์ ๊ทธ๋ ๊ฒ ๋ช ํํ์ง๋ ์ฌ์ํ์ง๋ ์๋ค๋ ๊ฒ์ ๋๋ค.
๋ง์ ์ฌ๋๋ค์ด ๋์น์ฑ์ง ๋ชปํ๋ ๋ ๋ค๋ฅธ ๋จ์ ์ ์ด ๊ตฌํ์ด ์ด๋ค ๊ฒฝ์ฐ์๋ ์ ๋๋ก ์๋ํ์ง ์์ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ์ฆ, VictoriaMetrics ์๊ณ์ด ID๊ฐ ๊ต์ฐจํ๋ ํน์ ์ฌ๋ก์ ๋ํด ์ต์ ํ๋์์ต๋๋ค. ์ด๋ ๋ชจ๋ ๊ฒฝ์ฐ์ ์ ํฉํ๋ค๋ ์๋ฏธ๋ ์๋๋๋ค. ์๋ชป ์ฌ์ฉํ๋ฉด ์ฑ๋ฅ์ด ํฅ์๋์ง ์์ง๋ง ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ณ ์ฑ๋ฅ์ด ์ ํ๋ฉ๋๋ค.
์ด ๊ตฌ์กฐ์ ๊ตฌํ์ ๊ณ ๋ คํด ๋ด
์๋ค. ๋ณด๊ณ ์ถ๋ค๋ฉด VictoriaMetrics ์์ค์ ํด๋์ ์์ต๋๋ค. timeseries_id
์ 64๋นํธ ๊ฐ์ผ๋ก, ์ฒ์ 32๋นํธ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ผ์ ํ๊ณ ๋ง์ง๋ง 32๋นํธ๋ง ๋ณ๊ฒฝ๋ฉ๋๋ค.
์ด ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ ๋์คํฌ์ ์ ์ฅ๋์ง ์๊ณ ๋ฉ๋ชจ๋ฆฌ์์๋ง ์๋ํฉ๋๋ค.
API๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ๋ณ๋ก ๋ณต์กํ์ง ์์ต๋๋ค. API๋ VictoriaMetrics ์ฌ์ฉ์ ํน์ ์์ ๋ง๊ฒ ํน๋ณํ ๋ง์ถคํ๋์์ต๋๋ค. ์ฆ, ์ฌ๊ธฐ์๋ ๋ถํ์ํ ๊ธฐ๋ฅ์ด ์์ต๋๋ค. VictoriaMetrics์์ ๋ช ์์ ์ผ๋ก ์ฌ์ฉํ๋ ํจ์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๊ธฐ๋ฅ์ด ์์ต๋๋ค add
, ์๋ก์ด ๊ฐ์น๋ฅผ ์ถ๊ฐํฉ๋๋ค. ๊ธฐ๋ฅ์ด ์์ต๋๋ค has
, ์ ๊ฐ์ ํ์ธํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ธฐ๋ฅ์ด ์๋๋ฐ del
, ๊ฐ์ ์ ๊ฑฐํฉ๋๋ค. ๋์ฐ๋ฏธ ๊ธฐ๋ฅ์ด ์์ต๋๋ค len
, ์ธํธ์ ํฌ๊ธฐ๋ฅผ ๋ฐํํฉ๋๋ค. ๊ธฐ๋ฅ clone
ํด๋ก ์ ๋ง์ด ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ธฐ๋ฅ appendto
์ด ์ธํธ๋ฅผ ์ฌ๋ผ์ด์ค๋ก ๋ณํํฉ๋๋ค. timeseries_ids
.
์ด๊ฒ์ด ์ด ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๊ตฌํ ๋ชจ์ต์ ๋๋ค. ์ธํธ์๋ ๋ ๊ฐ์ง ์์๊ฐ ์์ต๋๋ค.
-
ItemsCount
์ธํธ์ ์์ ์๋ฅผ ๋น ๋ฅด๊ฒ ๋ฐํํ๋ ๋์ฐ๋ฏธ ํ๋์ ๋๋ค. ์ด ๋ณด์กฐ ํ๋ ์์ด๋ ๊ฐ๋ฅํ์ง๋ง VictoriaMetrics๋ ์ข ์ข ์๊ณ ๋ฆฌ์ฆ์์ ๋นํธ ์ธํธ ๊ธธ์ด๋ฅผ ์ฟผ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ์ฌ๊ธฐ์ ์ถ๊ฐํด์ผ ํ์ต๋๋ค. -
๋ ๋ฒ์งธ ํ๋๋
buckets
. ์ด๊ฒ์ ๊ตฌ์กฐ์ ์ผ๋ถ์ ๋๋ค.bucket32
. ๊ฐ ๊ตฌ์กฐ๋ฌผ์ ๋งค์ฅhi
ํ๋. ์์ 32๋นํธ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ ์กฐ๊ฐ -b16his
ะธbuckets
์ผ๋กbucket16
๊ตฌ์กฐ.
16๋นํธ ๊ตฌ์กฐ์ ๋ ๋ฒ์งธ ๋ถ๋ถ์ ์์ 64๋นํธ๊ฐ ์ฌ๊ธฐ์ ์ ์ฅ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์๋ ๊ฐ ๋ฐ์ดํธ์ ํ์ 16๋นํธ์ ๋ํ ๋นํธ ์ธํธ๊ฐ ์ ์ฅ๋ฉ๋๋ค.
Bucket64
๋ฐฐ์ด๋ก ๊ตฌ์ฑ uint64
. ๊ธธ์ด๋ ์ด๋ฌํ ์์๋ฅผ ์ฌ์ฉํ์ฌ ๊ณ์ฐ๋ฉ๋๋ค. ํ๋์ bucket16
์ต๋ ์ ์ฅ ๊ฐ๋ฅ 2^16=65536
์กฐ๊ธ. ์ด๊ฒ์ 8๋ก ๋๋๋ฉด 8KB๊ฐ ๋ฉ๋๋ค. ๋ค์ 8๋ก ๋๋๋ฉด 1000์ด ๋ฉ๋๋ค uint64
์๋ฏธ. ๊ทธ๊ฑด Bucket16
โ ์ด๊ฒ์ด 8ํฌ๋ก๋ฐ์ดํธ ๊ตฌ์กฐ์
๋๋ค.
์ ๊ฐ์ ์ถ๊ฐํ๊ธฐ ์ํ ์ด ๊ตฌ์กฐ์ ๋ฉ์๋ ์ค ํ๋๊ฐ ์ด๋ป๊ฒ ๊ตฌํ๋๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๋ชจ๋ ๊ฒ์ ๋ค์๊ณผ ๊ฐ์ด ์์๋ฉ๋๋ค. uint64
์๋ฏธ. ์์ 32๋นํธ๋ฅผ ๊ณ์ฐํ๊ณ ํ์ 32๋นํธ๋ฅผ ๊ณ์ฐํฉ๋๋ค. ๋ชจ๋ ๊ฒ์ ์ดํด ๋ณด์ buckets
. ๊ฐ ๋ฒํท์ ์์ 32๋นํธ๋ฅผ ์ถ๊ฐ๋๋ ๊ฐ๊ณผ ๋น๊ตํฉ๋๋ค. ์ผ์นํ๋ฉด ํจ์๋ฅผ ํธ์ถํฉ๋๋ค. add
๊ตฌ์กฐ b32์์ buckets
. ๊ทธ๋ฆฌ๊ณ ๊ฑฐ๊ธฐ์ ํ์ 32๋นํธ๋ฅผ ์ถ๊ฐํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ด ๋์์๋ค๋ฉด true
, ์ด๋ ์ฐ๋ฆฌ๊ฐ ๊ฑฐ๊ธฐ์ ๊ทธ๋ฌํ ๊ฐ์ ์ถ๊ฐํ์ง๋ง ๊ทธ๋ฌํ ๊ฐ์ด ์๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๋ฐํ๋๋ ๊ฒฝ์ฐ false
, ๊ทธ๋ ๋ค๋ฉด ๊ทธ๋ฌํ ์๋ฏธ๋ ์ด๋ฏธ ์กด์ฌํ์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ๊ตฌ์กฐ์ ์์ ์๋ฅผ ๋๋ฆฝ๋๋ค.
ํ์ํ ๊ฒ์ ์ฐพ์ง ๋ชปํ ๊ฒฝ์ฐ bucket
ํ์ํ ๋์ ๊ฐ์ ์ฌ์ฉํ์ฌ ํจ์๋ฅผ ํธ์ถํฉ๋๋ค. addAlloc
, ์ด๋ ์๋ก์ด ๊ฒ์ ์์ฑํ ๊ฒ์
๋๋ค. bucket
, ๋ฒํท ๊ตฌ์กฐ์ ์ถ๊ฐํฉ๋๋ค.
์ด๊ฒ์ด ํจ์์ ๊ตฌํ์ด๋ค b32.add
. ์ด์ ๊ตฌํ๊ณผ ์ ์ฌํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ต์์ 16๋นํธ, ์ตํ์ 16๋นํธ๋ฅผ ๊ณ์ฐํฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ ์์ 16๋นํธ๋ฅผ ๋ชจ๋ ์ดํด๋ด
๋๋ค. ์ฐ๋ฆฌ๋ ์ผ์นํ๋ ๊ฒ์ ์ฐพ์ต๋๋ค. ์ผ์นํ๋ ํญ๋ชฉ์ด ์์ผ๋ฉด add ๋ฉ์๋๋ฅผ ํธ์ถํฉ๋๋ค. ์ด์ ๋ํด์๋ ๋ค์ ํ์ด์ง์์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. bucket16
.
๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์๋ ๊ฐ๋ฅํ ํ ๋ง์ด ์ต์ ํ๋์ด์ผ ํ๋ ๊ฐ์ฅ ๋ฎ์ ์์ค์ด ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ค์์ ๊ณ์ฐํฉ๋๋ค. uint64
์ฌ๋ผ์ด์ค ๋นํธ์ id ๊ฐ๊ณผ bitmask
. ์ด๋ ํด๋น ๋นํธ์ ์กด์ฌ ์ฌ๋ถ๋ฅผ ํ์ธํ๊ฑฐ๋ ์ค์ ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ์ง์ ๋ 64๋นํธ ๊ฐ์ ๋ํ ๋ง์คํฌ์
๋๋ค. ์ด ๋นํธ๊ฐ ์ค์ ๋์ด ์๋์ง ํ์ธํ๊ณ ์ค์ ํ ํ ํ์ฌ ์ํ๋ฅผ ๋ฐํํฉ๋๋ค. ์ด๊ฒ์ด ์ฐ๋ฆฌ์ ๊ตฌํ์
๋๋ค. ์ด๋ฅผ ํตํด ๊ธฐ์กด ์ง๋์ ๋นํด ์๊ณ์ด์ ๊ต์ฐจ ID ์์
์๋๋ฅผ 10๋ฐฐ ๋์ผ ์ ์์์ต๋๋ค.
์ด ์ต์ ํ ์ธ์๋ VictoriaMetrics์๋ ๋ค๋ฅธ ๋ง์ ์ต์ ํ ๊ธฐ๋ฅ์ด ์์ต๋๋ค. ์ด๋ฌํ ์ต์ ํ์ ๋๋ถ๋ถ์ ์ด์ ๋๋ฌธ์ ์ถ๊ฐ๋์์ง๋ง ํ๋ก๋์ ์์ ์ฝ๋๋ฅผ ํ๋กํ์ผ๋งํ ํ์ ์ถ๊ฐ๋์์ต๋๋ค.
์ด๊ฒ์ด ์ต์ ํ์ ์ฃผ์ ๊ท์น์ ๋๋ค. ์ฌ๊ธฐ์ ๋ณ๋ชฉ ํ์์ด ์์ ๊ฒ์ด๋ผ๊ณ ๊ฐ์ ํ๊ณ ์ต์ ํ๋ฅผ ์ถ๊ฐํ์ง ๋ง์ธ์. ๊ฑฐ๊ธฐ์๋ ๋ณ๋ชฉ ํ์์ด ์์ ๊ฒ์ผ๋ก ํ๋ช ๋ ์๋ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ต์ ํ๋ ์ผ๋ฐ์ ์ผ๋ก ์ฝ๋ ํ์ง์ ์ ํ์ํต๋๋ค. ๋ฐ๋ผ์ ํ๋กํ์ผ๋ง ํ์๋ง ์ต์ ํํ ๊ฐ์น๊ฐ ์์ผ๋ฉฐ ๊ฐ๊ธ์ ์ด๋ฉด ํ๋ก๋์ ํ๊ฒฝ์์ ์ค์ ๋ฐ์ดํฐ๊ฐ ๋๋๋ก ํด์ผ ํฉ๋๋ค. ๋๊ตฌ๋ ์ง ๊ด์ฌ์ด ์๋ค๋ฉด VictoriaMetrics ์์ค ์ฝ๋๋ฅผ ๋ณด๊ณ ๊ฑฐ๊ธฐ์ ์๋ ๋ค๋ฅธ ์ต์ ํ๋ฅผ ํ์ํ ์ ์์ต๋๋ค.
๋นํธ์ ์ ๊ดํด ์ง๋ฌธ์ด ์์ต๋๋ค. C++ ๋ฒกํฐ bool ๊ตฌํ๊ณผ ๋งค์ฐ ์ ์ฌํ๋ฉฐ ์ต์ ํ๋ ๋นํธ ์ธํธ์ ๋๋ค. ๊ฑฐ๊ธฐ์์ ๊ตฌํ์ ๊ฐ์ ธ ์์ต๋๊น?
์๋์, ๊ฑฐ๊ธฐ๋ถํฐ๋ ์๋๋๋ค. ์ด ๋นํธ ์ธํธ๋ฅผ ๊ตฌํํ ๋ VictoriaMetrics์์ ์ฌ์ฉ๋๋ ์ด๋ฌํ ID ์๊ณ์ด์ ๊ตฌ์กฐ์ ๋ํ ์ง์์ ๋ฐํ์ผ๋ก ์๋ด๋ฅผ ๋ฐ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ๊ตฌ์กฐ๋ ์์ 32๋นํธ๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ผ์ ํ๋ค๋ ๊ตฌ์กฐ์ด๋ค. ํ์ 32๋นํธ๋ ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค. ๋นํธ๊ฐ ๋ฎ์์๋ก ๋ ์์ฃผ ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ด ๊ตฌํ์ ํนํ ์ด ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ์ต์ ํ๋์ด ์์ต๋๋ค. ๋ด๊ฐ ์๋ ํ C++ ๊ตฌํ์ ์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐ์ ์ต์ ํ๋์ด ์์ต๋๋ค. ์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐ์ ๋ง๊ฒ ์ต์ ํํ๋ฉด ํน์ ๊ฒฝ์ฐ์ ๊ฐ์ฅ ์ ํฉํ์ง ์๋ค๋ ์๋ฏธ์ ๋๋ค.
๋ํ Alexey Milovid์ ๋ณด๊ณ ์๋ฅผ ์์ฒญํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ฝ ํ ๋ฌ ์ ๊ทธ๋ ํน์ ์ ๋ฌธ ๋ถ์ผ์ ๋ํ ClickHouse์ ์ต์ ํ์ ๋ํด ์ด์ผ๊ธฐํ์ต๋๋ค. ๊ทธ๋ ๋จ์ง ์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐ C++ ๊ตฌํ์ด๋ ๋ค๋ฅธ ๊ตฌํ์ด ๋ณ์์์ ํ๊ท ์ ์ผ๋ก ์ ์๋ํ๋๋ก ๋ง์ถคํ๋์ด ์๋ค๊ณ ๋งํฉ๋๋ค. ์ด๋ ์์ 32๋นํธ๊ฐ ๋๋ถ๋ถ ์ผ์ ํ๋ค๋ ๊ฒ์ ์๊ณ ์๋ ์ฐ๋ฆฌ์ ๊ฐ์ ์ง์๋ณ ๊ตฌํ๋ณด๋ค ์ฑ๋ฅ์ด ๋์ ์ ์์ต๋๋ค.
๋ ๋ฒ์งธ ์ง๋ฌธ์ด ์์ต๋๋ค. InfluxDB์์ ๊ทผ๋ณธ์ ์ธ ์ฐจ์ด์ ์ ๋ฌด์์ ๋๊น?
๊ทผ๋ณธ์ ์ธ ์ฐจ์ด์ ์ด ๋ง์ด ์์ต๋๋ค. ์ฑ๋ฅ ๋ฐ ๋ฉ๋ชจ๋ฆฌ ์๋น ์ธก๋ฉด์์ InfluxDB๋ ํ ์คํธ์์ ์นด๋๋๋ฆฌํฐ ์๊ณ์ด์ด ๋ง์ ๋(์: ์๋ฐฑ๋ง ๊ฐ) ๋์ ์นด๋๋๋ฆฌํฐ ์๊ณ์ด์ ๋ํด 10๋ฐฐ ๋ ๋ง์ ๋ฉ๋ชจ๋ฆฌ ์๋น๋ฅผ ๋ณด์ฌ์ค๋๋ค. ์๋ฅผ ๋ค์ด VictoriaMetrics๋ ๋ฐฑ๋ง ๊ฐ์ ํ์ฑ ํ๋น 1GB๋ฅผ ์๋นํ๋ ๋ฐ๋ฉด InfluxDB๋ 10GB๋ฅผ ์๋นํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ํฐ ์ฐจ์ด์ ๋๋ค.
๋ ๋ฒ์งธ ๊ทผ๋ณธ์ ์ธ ์ฐจ์ด์ ์ InfluxDB์๋ Flux์ InfluxQL์ด๋ผ๋ ์ด์ํ ์ฟผ๋ฆฌ ์ธ์ด๊ฐ ์๋ค๋ ๊ฒ์
๋๋ค. ์๊ณ์ด ์์
์ ๋นํด ๊ทธ๋ค์ง ํธ๋ฆฌํ์ง ์์ต๋๋ค.
๋ ํ ๊ฐ์ง ์ฐจ์ด์ ์ InfluxDB์๋ ์ฝ๊ฐ ์ด์ํ ๋ฐ์ดํฐ ๋ชจ๋ธ์ด ์๋ค๋ ๊ฒ์ ๋๋ค. ๊ฐ ์ค์ ์๋ก ๋ค๋ฅธ ํ๊ทธ ์ธํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ํ๋๋ฅผ ์ ์ฅํ ์ ์์ต๋๋ค. ์ด ์ค์ ๋ค์ํ ํ ์ด๋ธ๋ก ๋ ๋๋ฉ๋๋ค. ์ด๋ฌํ ์ถ๊ฐ์ ์ธ ๋ฌธ์ ๋ก ์ธํด ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ ํ์ ์์ ์ด ๋ณต์กํด์ง๋๋ค. ์ง์งํ๊ณ ์ดํดํ๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค.
VictoriaMetrics์์๋ ๋ชจ๋ ๊ฒ์ด ํจ์ฌ ๊ฐ๋จํด์ก์ต๋๋ค. ์ฌ๊ธฐ์์ ๊ฐ ์๊ณ์ด์ ํค-๊ฐ์
๋๋ค. ๊ฐ์ ํฌ์ธํธ ์งํฉ์
๋๋ค. (timestamp, value)
, ๊ทธ๋ฆฌ๊ณ ์ด์ ๋ ์ธํธ์
๋๋ค label=value
. ํ๋์ ์ธก์ ๊ฐ์ด ๊ตฌ๋ถ๋์ง ์์ต๋๋ค. ๋ด๊ฐ ์๋ ํ ์๋ก ๋ค๋ฅธ ํ ๊ฐ์ ๊ณ์ฐ์ด ์์ง ๊ตฌํ๋์ง ์์ InfluxDB์ ๋ฌ๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ์ ํํ ๋ค์ ๊ฒฐํฉ, ๋ํ๊ธฐ, ๋นผ๊ธฐ, ๊ณฑํ๊ธฐ, ๋๋๊ธฐ๊ฐ ๊ฐ๋ฅํฉ๋๋ค. ๊ตฌํํ๋ค๊ณ ํด๋ ์ด๋ ต๊ณ , ์ฝ๋๋ ๋ง์ด ์์ฑํด์ผ ํฉ๋๋ค.
๋ช ํํ ์ง๋ฌธ์ด ์์ต๋๋ค. ๋น์ ์ด ๋งํ ์ด๋ค ์ข ๋ฅ์ ๋ฌธ์ ๊ฐ ์๋ค๋ ๊ฒ, ์ด ๋ฐ์ ๋ ์ธ๋ฑ์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ๋ง์ง ์์์ ๊ฑฐ๊ธฐ์ ํํฐ์ ๋์ด ์๋ค๋ ๊ฒ์ ์ ๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ดํดํ์ต๋๊น?
๋จผ์ ํ์ค Go ๋งต์์ ๋ฐ์ ๋ ์ธ๋ฑ์ค๋ฅผ ์์งํ๊ฒ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ฃผ์์ต๋๋ค. ์ด ๋ฐ์ ๋ ์ธ๋ฑ์ค๋ ๋์คํฌ์ ์ ์ฅ๋์ง ์์ผ๋ฉฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ค์ ์์ํ ๋ ์ด ๋ฐ์ดํฐ๋ฅผ ๊ณ์ ์ฌ์ฉํ ์ ์๋๋ก ๋์คํฌ์ ์ ์ฅํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ํฉํ์ง ์์ต๋๋ค. ์ด ๊ตฌํ์์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์ ์์ํ๋ฉด ๋ฐ์ ๋ ์ธ๋ฑ์ค๊ฐ ์ฌ๋ผ์ง๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์ ์ ์๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ๋ฐ์ดํฐ์ ์ก์ธ์คํ ์ ์๊ฒ ๋ฉ๋๋ค.
์๋ ํ์ธ์! ์ ๊ณ ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! ์ ์ด๋ฆ์ ํ๋ฒจ์ด์์. ์ ๋ ์์ผ๋๋ฒ ๋ฆฌ ์ถ์ ์ด์์. ๋ช ๊ฐ์ง ์ง๋ฌธ์ด ์์ต๋๋ค. ์ง๋ฌธ 2. ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํคํ ์ฒ๋ฅผ ๊ตฌ์ถํ ๋ ๋ค๋ฅธ ์์น์ ์ ํํ๊ณ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฅผ ๋ถํ ํ๋ค๋ฉด ํ ํํฐ์ ์ ๋ค๋ฅธ ํํฐ์ ์ ๋ํ ๋ฐ์ดํฐ๊ฐ ํฌํจ๋์ด ์๋ค๋ ์ฌ์ค์๋ง ๊ทผ๊ฑฐํ์ฌ ๊ฒ์ ์ ๋ฐ์ดํฐ๋ฅผ ๊ต์ฐจํ ์ ์์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ญ๋๊น? ์ฆ, ํ ์๊ฐ ๊ฐ๊ฒฉ์ผ๋ก ์กฐ๊ฐ์ด ๋ค๋ฅด๊ฒ ํฉ์ด์ ธ ์๋ค๋ ์ฌ์ค์ ๋ํด ๊ฑฑ์ ํ ํ์๊ฐ ์์ต๋๊น? ์ง๋ฌธ XNUMX - ๋นํธ ์ธํธ ๋ฐ ๊ธฐํ ๋ชจ๋ ํญ๋ชฉ์ ์ฌ์ฉํ์ฌ ์ ์ฌํ ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํํ๊ณ ์์ผ๋ฏ๋ก ํ๋ก์ธ์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํด ๋ณด์ จ๋์? ์๋ง๋ ๊ทธ๋ฌํ ์ต์ ํ๋ฅผ ์๋ํด ๋ณด์ จ๋์?
๋ฐ๋ก ๋ ๋ฒ์งธ ๋ต๋ณ ๋๋ฆฌ๊ฒ ์ต๋๋ค. ์ฐ๋ฆฌ๋ ์์ง ๊ทธ ์ง์ ์ ๋๋ฌํ์ง ๋ชปํ์ต๋๋ค. ํ์ง๋ง ํ์ํ๋ค๋ฉด ์ฐ๋ฆฌ๋ ๊ทธ๊ณณ์ ๊ฐ ๊ฒ์ ๋๋ค. ์ฒซ ๋ฒ์งธ ์ง๋ฌธ์ ๋ฌด์์ด์๋์?
๋ ๊ฐ์ง ์๋๋ฆฌ์ค๋ฅผ ๋ ผ์ํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ค์ ๋ ๋ณต์กํ ๊ตฌํ์ ๊ฐ์ง ๋ ๋ฒ์งธ ๊ฒ์ ์ ํํ๋ค๊ณ ๋งํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ค์ ๋ฐ์ดํฐ๊ฐ ์๊ฐ๋ณ๋ก ๋ถํ ๋๋ ์ฒซ ๋ฒ์งธ ๊ฒ์ ์ ํธํ์ง ์์์ต๋๋ค.
์. ์ฒซ ๋ฒ์งธ ๊ฒฝ์ฐ์๋ ์ธ๋ฑ์ค์ ์ด ๋ณผ๋ฅจ์ด ๋ ์ปค์ง๋๋ค. ์๋ํ๋ฉด ๊ฐ ํํฐ์ ์์ ์ด๋ฌํ ๋ชจ๋ ํํฐ์ ์ ํตํด ๊ณ์๋๋ ์๊ณ์ด์ ๋ํ ์ค๋ณต ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์๊ณ์ด ์ดํ๋ฅ ์ด ์์ ๊ฒฝ์ฐ, ์ฆ ๋์ผํ ๊ณ์ด์ด ์ง์์ ์ผ๋ก ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ ์ฒซ ๋ฒ์งธ ๊ฒฝ์ฐ ๋ ๋ฒ์งธ ๊ฒฝ์ฐ์ ๋นํด ์ฐจ์งํ๋ ๋์คํฌ ๊ณต๊ฐ ์์ด ํจ์ฌ ๋ ๋ง์ด ์์ค๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๊ทธ๋ ์ต๋๋ค. ์๊ฐ ๋ถํ ์ ์ข์ ์ ํ์ ๋๋ค. ํ๋ก๋ฉํ ์ฐ์ค๋ ๊ทธ๊ฒ์ ์ฌ์ฉํฉ๋๋ค. ๊ทธ๋ฌ๋ ํ๋ก๋ฉํ ์ฐ์ค์๋ ๋ ๋ค๋ฅธ ๋จ์ ์ด ์์ต๋๋ค. ์ด๋ฌํ ๋ฐ์ดํฐ ์กฐ๊ฐ์ ๋ณํฉํ ๋ ๋ชจ๋ ๋ ์ด๋ธ ๋ฐ ์๊ณ์ด์ ๋ํ ๋ฉํ ์ ๋ณด๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์งํด์ผ ํฉ๋๋ค. ๋ฐ๋ผ์ ๋ณํฉํ๋ ๋ฐ์ดํฐ ์กฐ๊ฐ์ด ํฌ๋ฉด VictoriaMetrics์ ๋ฌ๋ฆฌ ๋ณํฉ ์ค์ ๋ฉ๋ชจ๋ฆฌ ์๋น๊ฐ ๋งค์ฐ ๋ง์ด ์ฆ๊ฐํฉ๋๋ค. ๋ณํฉํ ๋ VictoriaMetrics๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ํ ์๋นํ์ง ์์ผ๋ฉฐ ๋ณํฉ๋ ๋ฐ์ดํฐ ์กฐ๊ฐ์ ํฌ๊ธฐ์ ๊ด๊ณ์์ด ๋ช ํฌ๋ก๋ฐ์ดํธ๋ง ์๋นํฉ๋๋ค.
์ฌ์ฉ ์ค์ธ ์๊ณ ๋ฆฌ์ฆ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๊ฐ์ด ํฌํจ๋ ์๊ณ์ด ํ๊ทธ๋ฅผ ํ์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ๋ฐฉ๋ฒ์ผ๋ก ํ ๋ฐ์ดํฐ ๋ฐฐ์ด๊ณผ ๋ค๋ฅธ ๋ฐ์ดํฐ ๋ฐฐ์ด์์ ์์ ์ด๋ฃจ๋ ์กด์ฌ๋ฅผ ํ์ธํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ต์ฐจ๊ฐ ๋ฐ์ํ๋์ง ์ฌ๋ถ๋ฅผ ์ดํดํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ด๋ฌํ ์์ ์ ๋จ์ํ ๋ณต์ก์ฑ์ผ๋ก ์ธํด ํ์ฌ ์ฝํ ์ธ ๋ฅผ ์ ์ฅํ๊ณ ์ ๋ ฌ๋ ๋ฐ์ดํฐ๋ฅผ ์คํํ๋ ์ปค์์ ๋ฐ๋ณต๊ธฐ๋ฅผ ๊ตฌํํฉ๋๋ค.
๋ฐ์ดํฐ๋ฅผ ํ์ํ๊ธฐ ์ํด ์ปค์๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋จ๊น์?
๋ค.
์ ๋ ฌ๋ ํ์ LevelDB ๋๋ mergeset์ ์ ์ฅํฉ๋๋ค. ์ปค์๋ฅผ ์์ง์ฌ ๊ต์ฐจ์ ์ ์ฐพ์ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ์ฌ์ฉํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ๋๋ฆฌ๊ธฐ ๋๋ฌธ์ด์ฃ . ์ปค์๋ ๊ฐ ์ค์ ๋ํด ํจ์๋ฅผ ํธ์ถํด์ผ ํจ์ ์๋ฏธํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ํจ์ ํธ์ถ์ 5๋๋ ธ์ด์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ 100๊ฐ์ ๋ผ์ธ์ด ์๋ค๋ฉด ์ฐ๋ฆฌ๋ ํจ์๋ฅผ ํธ์ถํ๋ ๋ฐ 000์ด๋ฅผ ์๋นํ๊ฒ ๋ฉ๋๋ค.
๊ทธ๋ฐ ๊ฒ ์์ด์, ๊ทธ๋ ์ฃ . ๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง ์ง๋ฌธ์ ๋๋ค. ์ง๋ฌธ์ด ์กฐ๊ธ ์ด์ํ๊ฒ ๋ค๋ฆด ์๋ ์์ต๋๋ค. ๋ฐ์ดํฐ๊ฐ ๋์ฐฉํ๋ ์๊ฐ ํ์ํ ๋ชจ๋ ์ง๊ณ๋ฅผ ์ฝ๊ณ ํ์ํ ํ์์ผ๋ก ์ ์ฅํ๋ ๊ฒ์ด ์ ๋ถ๊ฐ๋ฅํฉ๋๊น? VictoriaMetrics, ClickHouse ๋ฑ๊ณผ ๊ฐ์ ์ผ๋ถ ์์คํ ์์ ๋ง๋ํ ๋ณผ๋ฅจ์ ์ ์ฅํ ๋ค์ ์ฌ๊ธฐ์ ๋ง์ ์๊ฐ์ ์๋นํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
๋ ๋ช ํํ๊ฒํ๊ธฐ ์ํด ์๋ฅผ ๋ค์ด ๋ณด๊ฒ ์ต๋๋ค. ์์ ์ฅ๋๊ฐ ์๋๊ณ๊ฐ ์ด๋ป๊ฒ ์๋ํ๋์ง ๊ฐ์ ํด ๋ณผ๊น์? ๊ทธ๊ฒ์ ๋น์ ์ด ์ฌํํ ๊ฑฐ๋ฆฌ๋ฅผ ๊ธฐ๋กํ๋ฉฐ, ํญ์ ์ด๋ฅผ ํ๋์ ๊ฐ์ ์ถ๊ฐํ๊ณ ๋ ๋ฒ์งธ ์๊ฐ์ ์ถ๊ฐํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋๋๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ๊ท ์๋๋ฅผ ์ป์ต๋๋ค. ๋น์ ๋ ๊ฐ์ ์ผ์ ํ ์ ์์ต๋๋ค. ํ์ํ ๋ชจ๋ ์ฌ์ค์ ์ฆ์์์ ์ถ๊ฐํ์ธ์.
์ข์์, ์ง๋ฌธ์ ์ดํดํ์ต๋๋ค. ๊ทํ์ ๋ชจ๋ฒ์ด ๊ทธ ์๋ฆฌ๋ฅผ ์ฐจ์งํ์ต๋๋ค. ํ์ํ ์ง๊ณ๊ฐ ๋ฌด์์ธ์ง ์๊ณ ์๋ค๋ฉด ์ด๊ฒ์ด ์ต์ ์ ๊ตฌํ์ ๋๋ค. ํ์ง๋ง ๋ฌธ์ ๋ ์ฌ๋๋ค์ด ์ด๋ฌํ ์งํ์ ์ผ๋ถ ๋ฐ์ดํฐ๋ฅผ ClickHouse์ ์ ์ฅํ๊ณ ๋์ค์ ์ด๋ฅผ ์ด๋ป๊ฒ ์ง๊ณํ๊ณ ํํฐ๋งํ ์ง ์์ง ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค. ํ์ง๋ง ๋ฌด์ธ๊ฐ๋ฅผ ํ๊ท ์ผ๋ก ๊ณ์ฐํด์ผ ํ๋ค๋ ๊ฒ์ ์๊ณ ์๋ค๋ฉด ๊ฑฐ๊ธฐ์ ์ฌ๋ฌ ๊ฐ์ ์์ ๊ฐ์ ์ ์ฅํ๋ ๋์ ๊ณ์ฐ์ ํด๋ณด๋ ๊ฒ์ ์ด๋จ๊น์? ๊ทธ๋ฌ๋ ์ด๋ ํ์ํ ๊ฒ์ด ๋ฌด์์ธ์ง ์ ํํ ์๊ณ ์๋ ๊ฒฝ์ฐ์๋ง ํด๋น๋ฉ๋๋ค.
๊ทธ๋ฐ๋ฐ ์๊ณ์ด์ ์ ์ฅํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ง๊ณ ๊ณ์ฐ์ ์ง์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ํ๋ก๋ฉํ
์ฐ์ค๋ ๋ค์์ ์ง์ํฉ๋๋ค.
์๋ฅผ ๋ค์ด ์ด์ ์ง์ฅ์์๋ ์ง๋ ํ ์๊ฐ ๋์ ์ฌ๋ผ์ด๋ฉ ์ฐฝ์์ ์ด๋ฒคํธ ์๋ฅผ ๊ณ์ฐํด์ผ ํ์ต๋๋ค. ๋ฌธ์ ๋ Go์์ ๋ง์ถค ๊ตฌํ, ์ฆ ์ด ํญ๋ชฉ์ ๊ณ์ฐํ๋ ์๋น์ค๋ฅผ ๋ง๋ค์ด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค. ์ด ์๋น์ค๋ ๊ณ์ฐ์ด ์ด๋ ต๊ธฐ ๋๋ฌธ์ ๊ถ๊ทน์ ์ผ๋ก ์ฌ์ํ์ง ์์์ต๋๋ค. ๊ณ ์ ๋ ์๊ฐ ๊ฐ๊ฒฉ์ผ๋ก ์ผ๋ถ ์ง๊ณ๋ฅผ ๊ณ์ฐํด์ผ ํ๋ ๊ฒฝ์ฐ ๊ตฌํ์ด ๊ฐ๋จํ ์ ์์ต๋๋ค. ์ฌ๋ผ์ด๋ฉ ์ฐฝ์์ ์ด๋ฒคํธ ์๋ฅผ ๊ณ์ฐํ๋ ค๋ฉด ๋ณด๊ธฐ๋งํผ ๊ฐ๋จํ์ง ์์ต๋๋ค. ๊ตฌํํ๊ธฐ ์ด๋ ต๊ธฐ ๋๋ฌธ์ ClickHouse๋ ์๊ณ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ ์์ง ๊ตฌํ๋์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ง๋ฌธ ํ๋ ๋. ์ฐ๋ฆฌ๋ ๋จ์ง ํ๊ท ํ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์๋๋ฐ ํ๋ Carbon ๋ฐฑ์๋๋ฅผ ๊ฐ์ถ Graphite์ ๊ฐ์ ๊ฒ์ด ์์๋ค๋ ๊ฒ์ ๊ธฐ์ตํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ ์ค๋๋ ๋ฐ์ดํฐ๋ฅผ ์๊ฒ ๋ง๋๋ ๋ฐฉ๋ฒ, ์ฆ ๋ถ๋น XNUMXํฌ์ธํธ, ์๊ฐ๋น XNUMXํฌ์ธํธ ๋ฑ์ ๋จ๊ฒจ ๋๋ ๋ฐฉ๋ฒ์ ์๊ณ ์์์ต๋๋ค. ์์น์ ์ผ๋ก ์ด๊ฒ์ ์๋์ ์ผ๋ก ํ ๋ฌ ๋์ ์์ ๋ฐ์ดํฐ๊ฐ ํ์ํ๊ณ ๋ค๋ฅธ ๋ชจ๋ ๊ฒ์ด ํ์ํ ๊ฒฝ์ฐ ๋งค์ฐ ํธ๋ฆฌํฉ๋๋ค. ์ท์ด์ง๋ค. ๊ทธ๋ฌ๋ Prometheus์ VictoriaMetrics๋ ์ด ๊ธฐ๋ฅ์ ์ง์ํ์ง ์์ต๋๋ค. ์ง์ํ ์์ ์ธ๊ฐ์? ๊ทธ๋ ์ง ์๋ค๋ฉด ์ ์ ๋ฉ๋๊น?
์ง๋ฌธํด์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค. ์ฐ๋ฆฌ ์ฌ์ฉ์๋ค์ ์ฃผ๊ธฐ์ ์ผ๋ก ์ด ์ง๋ฌธ์ ํฉ๋๋ค. ๊ทธ๋ค์ ์ธ์ ๋ค์ด์ํ๋ง ์ง์์ ์ถ๊ฐํ ๊ฒ์ธ์ง ๋ฌป์ต๋๋ค. ์ฌ๊ธฐ์๋ ๋ช ๊ฐ์ง ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ฒซ์งธ, ๋ชจ๋ ์ฌ์ฉ์๊ฐ ์ดํดํฉ๋๋ค. downsampling
๋ญ๊ฐ ๋ค๋ฅธ ๊ฒ: ๋๊ตฐ๊ฐ๋ ์ฃผ์ด์ง ๊ฐ๊ฒฉ์์ ์์์ ์ง์ ์ ์ป๊ณ ์ถ์ดํ๊ณ ๋๊ตฐ๊ฐ๋ ์ต๋, ์ต์, ํ๊ท ๊ฐ์ ์ํฉ๋๋ค. ๋ง์ ์์คํ
์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋กํ๋ ๊ฒฝ์ฐ ์ด๋ฅผ ๋ชจ๋ ํ๋๋ก ๋ฌถ์ ์ ์์ต๋๋ค. ๊ฐ ์์คํ
๋ง๋ค ์๋ก ๋ค๋ฅธ ํฌ์์ด ํ์ํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ๊ตฌํํ๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค.
๋ ๋ฒ์งธ๋ ClickHouse์ ๋ง์ฐฌ๊ฐ์ง๋ก VictoriaMetrics๋ ๋๋์ ์์ ๋ฐ์ดํฐ ์์ ์ ์ต์ ํ๋์ด ์์ผ๋ฏ๋ก ์์คํ ์ ์ฝ์ด๊ฐ ๋ง์ ๊ฒฝ์ฐ 50์ด ์ด๋ด์ 000์ต ์ค์ ์ฒ๋ฆฌํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. VictoriaMetrics์ ์๊ณ์ด ํฌ์ธํธ ์ค์บ โ ์ฝ์ด๋น ์ด๋น 000 ํฌ์ธํธ. ๊ทธ๋ฆฌ๊ณ ์ด ์ฑ๋ฅ์ ๊ธฐ์กด ์ฝ์ด๋ก ํ์ฅ๋ฉ๋๋ค. ์ฆ, ์๋ฅผ ๋ค์ด ์ฝ์ด๊ฐ 20๊ฐ๋ผ๋ฉด ์ด๋น XNUMX์ต ๊ฐ์ ํฌ์ธํธ๋ฅผ ์ค์บํ๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ VictoriaMetrics์ ClickHouse์ ์ด๋ฌํ ์์ฑ์ ๋ค์ด์ํ๋ง์ ํ์์ฑ์ ์ค์ฌ์ค๋๋ค.
๋ ๋ค๋ฅธ ํน์ง์ VictoriaMetrics๊ฐ ์ด ๋ฐ์ดํฐ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์์ถํ๋ค๋ ๊ฒ์ ๋๋ค. ํ๋ก๋์ ํ๊ท ์์ถ๋ฅ ์ ํฌ์ธํธ๋น 0,4~0,8๋ฐ์ดํธ์ ๋๋ค. ๊ฐ ํฌ์ธํธ๋ ํ์์คํฌํ + ๊ฐ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ๊ท ์ ์ผ๋ก XNUMX๋ฐ์ดํธ ๋ฏธ๋ง์ผ๋ก ์์ถ๋ฉ๋๋ค.
์ธ๋ฅด๊ฒ์ด. ์ง๋ฌธ์ด ์์ต๋๋ค. ์ต์ ๋ น์ ์๊ฐ ํํ ์ ์ผ๋ง์ ๋๊น?
XNUMX๋ฐ๋ฆฌ์ด. ์ฐ๋ฆฌ๋ ์ต๊ทผ ๋ค๋ฅธ ์๊ณ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ๋ฐ์๋ค๊ณผ ๋ํ๋ฅผ ๋๋์์ต๋๋ค. ์ต์ ์๊ฐ ์กฐ๊ฐ์ XNUMX์ด์ ๋๋ค. ์๋ฅผ ๋ค์ด Graphite์ ๊ฒฝ์ฐ์๋ XNUMX์ด์ ๋๋ค. OpenTSDB์์๋ XNUMX์ด์ ๋๋ค. InfluxDB๋ ๋๋ ธ์ด ์ ๋ฐ๋๋ฅผ ๊ฐ์ต๋๋ค. VictoriaMetrics์์๋ XNUMX๋ฐ๋ฆฌ์ด์ ๋๋ค. Prometheus์์๋ XNUMX๋ฐ๋ฆฌ์ด์ด๊ธฐ ๋๋ฌธ์ ๋๋ค. VictoriaMetrics๋ ์๋ Prometheus์ฉ ์๊ฒฉ ์คํ ๋ฆฌ์ง๋ก ๊ฐ๋ฐ๋์์ต๋๋ค. ํ์ง๋ง ์ด์ ๋ ๋ค๋ฅธ ์์คํ ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์์ต๋๋ค.
๋์ ๋ํํ ์ฌ๋์ ์ด ๋จ์์ ์ ํ๋๋ฅผ ๊ฐ์ง๊ณ ์๋ค๊ณ ๋งํ์ต๋๋ค. ์ด๋ ์๊ณ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋๋ ๋ฐ์ดํฐ ์ ํ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๊ธฐ ๋๋ฌธ์ ๊ทธ๊ฒ๋ง์ผ๋ก๋ ์ถฉ๋ถํฉ๋๋ค. ์ด๊ฒ์ด DevOps ๋ฐ์ดํฐ์ด๊ฑฐ๋ ๋ถ๋น 30์ด ๊ฐ๊ฒฉ์ผ๋ก ์์งํ๋ ์ธํ๋ผ์ ๋ฐ์ดํฐ๋ผ๋ฉด ์ด ๋จ์์ ์ ํ์ฑ์ด๋ฉด ์ถฉ๋ถํ๋ฏ๋ก ๊ทธ ์ดํ๋ ๋ ์ด์ ํ์ํ์ง ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ณ ์ฃผํ ๊ฑฐ๋ ์์คํ ์์ ์ด ๋ฐ์ดํฐ๋ฅผ ์์งํ๋ ๊ฒฝ์ฐ ๋๋ ธ์ด ์ ํ๋๊ฐ ํ์ํฉ๋๋ค.
VictoriaMetrics์ ๋ฐ๋ฆฌ์ด ์ ํ๋๋ DevOps ์ฌ๋ก์๋ ์ ํฉํ๋ฉฐ ๋ณด๊ณ ์ ์์ ๋ถ๋ถ์์ ์ธ๊ธํ ๋๋ถ๋ถ์ ์ฌ๋ก์ ์ ํฉํ ์ ์์ต๋๋ค. ์ ํฉํ์ง ์์ ์ ์๋ ์ ์ผํ ๊ฒ์ ๊ณ ์ฃผํ ๊ฑฐ๋ ์์คํ ์ ๋๋ค.
๊ฐ์ฌํฉ๋๋ค! ๊ทธ๋ฆฌ๊ณ ๋ ๋ค๋ฅธ ์ง๋ฌธ์ ๋๋ค. PromQL์ ํธํ์ฑ์ด๋ ๋ฌด์์ ๋๊น?
์์ ํ ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ. VictoriaMetrics๋ PromQL์ ์๋ฒฝํ๊ฒ ์ง์ํฉ๋๋ค. ๋ํ PromQL์ ๊ณ ๊ธ ๊ธฐ๋ฅ์ ์ถ๊ฐํฉ๋๋ค.
์ ๋ณด ์ฑ๋
๋ฑ๋ก๋ ์ฌ์ฉ์๋ง ์ค๋ฌธ ์กฐ์ฌ์ ์ฐธ์ฌํ ์ ์์ต๋๋ค.
Prometheus์ ์ฅ๊ธฐ ์คํ ๋ฆฌ์ง๋ก VictoriaMetrics๋ก ์ ํํ๋ ๊ฒ์ ๋ฐฉํดํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? (๋๊ธ๋ก ์ ์ด์ฃผ์๋ฉด ์ค๋ฌธ์กฐ์ฌ์ ์ถ๊ฐํ๊ฒ ์ต๋๋ค)
-
71,4%๋๋ Prometheus5๋ฅผ ์ฌ์ฉํ์ง ์์ต๋๋ค
-
28,6%VictoriaMetrics2์ ๋ํด ๋ชฐ๋์ต๋๋ค.
7๋ช
์ ์ฌ์ฉ์๊ฐ ํฌํํ์ต๋๋ค. 12๋ช
์ ์ฌ์ฉ์๊ฐ ๊ธฐ๊ถํ์ต๋๋ค.
์ถ์ฒ : habr.com