๋ฉ๋ชจ. ๋ฒ์ญ: Grafana ์ ์์๊ฐ ์ ์ง ๊ด๋ฆฌํ๋ ํด๋ผ์ฐ๋ ์๋น์ค์ ์ต๊ทผ ๋ค์ดํ์ ์ด์ ์ ๋ํ ๊ธฐ์ ์ ์ธ ์ธ๋ถ ์ฌํญ์ ์๋ ค๋๋ฆฝ๋๋ค. ์ด๋ ์ธํ๋ผ์ ํ์ง์ ํฅ์์ํค๊ธฐ ์ํด ์ค๊ณ๋ ์๋กญ๊ณ ๋งค์ฐ ์ ์ฉํด ๋ณด์ด๋ ๊ธฐ๋ฅ์ด ์์ฐ ํ์ค์์ ํด๋น ์์ฉ ํ๋ก๊ทธ๋จ์ ์๋ง์ ๋์์ค๋ฅผ ์ ๊ณตํ์ง ์์ผ๋ฉด ํด๋ฅผ ๋ผ์น ์ ์๋ค๋ ์ ํ์ ์ธ ์์ ๋๋ค. ์ค์๋ก๋ถํฐ๋ฟ๋ง ์๋๋ผ ๋ฐฐ์ธ ์ ์๋ ์ด์ ๊ฐ์ ์๋ฃ๊ฐ ๋ํ๋๋ฉด ์ ๋ง ์ข์ต๋๋ค. ์์ธํ ๋ด์ฉ์ Grafana Labs ์ ํ ๋ด๋น ๋ถ์ฌ์ฅ์ ์ด ํ ์คํธ ๋ฒ์ญ์ ๋์ ์์ต๋๋ค.
19์ 30์ผ ๊ธ์์ผ์ Grafana Cloud์ ํธ์คํ
๋ Prometheus ์๋น์ค๊ฐ ์ฝ XNUMX๋ถ ๋์ ์๋์ ์ค์งํ์ต๋๋ค. ์๋น์ค ์ค๋จ์ผ๋ก ์ธํด ํผํด๋ฅผ ์
์ ๋ชจ๋ ๊ณ ๊ฐ์๊ฒ ์ฌ๊ณผ๋๋ฆฝ๋๋ค. ์ฐ๋ฆฌ์ ์๋ฌด๋ ๊ทํ์๊ฒ ํ์ํ ๋ชจ๋ํฐ๋ง ๋๊ตฌ๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ด๋ฉฐ, ์ด๋ฌํ ๋๊ตฌ๊ฐ ์์ผ๋ฉด ๊ทํ์ ์ถ์ด ๋ ์ด๋ ค์์ง ์ ์๋ค๋ ๊ฒ์ ์ดํดํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ด๋ฒ ์ฌ๊ฑด์ ๋งค์ฐ ์ฌ๊ฐํ๊ฒ ๋ฐ์๋ค์
๋๋ค. ์ด ๋ฉ๋ชจ์๋ ๋ฌด์จ ์ผ์ด ์ผ์ด๋ฌ๋์ง, ์ด๋ป๊ฒ ๋์ํ๋์ง, ๊ทธ๋ฆฌ๊ณ ์ด๋ฐ ์ผ์ด ๋ค์ ๋ฐ์ํ์ง ์๋๋ก ํ๊ธฐ ์ํด ๋ฌด์์ ํ๊ณ ์๋์ง ์ค๋ช
๋์ด ์์ต๋๋ค.
์ ์ฌ ์๋
Grafana Cloud Hosted Prometheus ์๋น์ค๋ ๋ค์์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค.
์ํํ ์
๋ฐ์ดํธ๋ฅผ ์ํด Ingester Cortex ์๋น์ค์๋ ์
๋ฐ์ดํธ ํ๋ก์ธ์ค ์ค์ ์ถ๊ฐ Ingester ๋ณต์ ๋ณธ์ด ํ์ํฉ๋๋ค. (๋ฉ๋ชจ. ๋ฒ์ญ:
๊ทธ๋ฌ๋ ์ ์ ์๋ ์ค์ ์ด๋ค ์์คํ
๋ ์ฌ์ฉ๋์ง ์์ ๋ฆฌ์์ค์ 25%๋ฅผ ๋ณด์ ํ์ง ๋ชปํ๋ ๊ฒฝ์ฐ๊ฐ ์ข
์ข
์์ต๋๋ค. ์, ์ฐ๋ฆฌ๋ ๋
ธ๋ ฅ์กฐ์ฐจ ํ์ง ์์ต๋๋ค. CPU์ ๋ฉ๋ชจ๋ฆฌ๋ ํญ์ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์ ์ฉํ ๊ฒ์
๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ฐ๋ฆฌ๋ ๋ค์์ ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
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 ์๋ฒ๊ฐ ์ญ์ ๋์์ต๋๋ค. (๋จ์ด์ ธ์) ๋ค์์ ์ฌ์ฉํ์ฌ ๋
น์
ํ๋ก๋์
ํด๋ฌ์คํฐ ์ฐ๊ธฐ ์์
์กฐ์ฌ ๊ฒฐ๊ณผ
์ด๋ฒ ์ฌ๊ฑด์ ํตํด ๊ตํ์ ์ป๊ณ ์ฌ๋ฐ์ ๋ฐฉ์งํ๊ธฐ ์ํด ํ์ํ ์กฐ์น๋ฅผ ์ทจํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
๋์ด์ผ๋ณด๋ฉด ์ฐ๋ฆฌ๋ ๊ธฐ๋ณธ๊ฐ์ ์ค์ ํ์ง ๋ง์์ด์ผ ํ์ต๋๋ค. ๋งค์ฒด ์์ฐ ์ค์ธ ๋ชจ๋ Ingester๊ฐ ์์ ๋ ๋๊น์ง ์ฐ์ ์์ ํค๊ฐ ํฐ ์ฐ์ ์์. ๋ํ, ์ฌ์ ์ ๊ด๋ฆฌ๊ฐ ํ์ํ์ต๋๋ค. ๋์ ์ฐ์ ์ฌํญ. ์ด์ ๋ชจ๋ ๊ฒ์ด ํด๊ฒฐ๋์์ต๋๋ค. ์ฐ๋ฆฌ์ ๊ฒฝํ์ด Kubernetes์์ ํฌ๋ ์ฐ์ ์์ ์ฌ์ฉ์ ๊ณ ๋ คํ๋ ๋ค๋ฅธ ์กฐ์ง์ ๋์์ด ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๊ตฌ์ฑ์ด ํด๋ฌ์คํฐ ์ ์ฒด์ ๊ฑธ์ณ ์๋ ์ถ๊ฐ ๊ฐ์ฒด์ ๋ฐฐํฌ์ ๋ํ ์ ์ด ์์ค์ ์ถ๊ฐํ ๊ฒ์ ๋๋ค. ์ด์ ๋ถํฐ ์ด๋ฌํ ๋ณ๊ฒฝ ์ฌํญ์ ํ๊ฐ๋ฉ๋๋ค.ะพ๋ ๋ง์ ์ฌ๋. ๋ํ ์ถฉ๋์ ์ผ์ผํจ ์์ ์ฌํญ์ ๋ณ๋์ ํ๋ก์ ํธ ๋ฌธ์์ ๋นํด ๋๋ฌด ์ฌ์ํ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋์ด GitHub ๋ฌธ์ ์์๋ง ๋ ผ์๋์์ต๋๋ค. ์ด์ ๋ถํฐ ๊ตฌ์ฑ์ ๋ํ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์๋ ์ ์ ํ ํ๋ก์ ํธ ๋ฌธ์๊ฐ ์๋ฐ๋ฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก, ์ฐ๋ฆฌ๊ฐ ๋ชฉ๊ฒฉํ ๊ณผ๋ถํ OOM์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ธ์ฆ ์ญ๋ฐฉํฅ ํ๋ก์์ ํฌ๊ธฐ ์กฐ์ ์ ์๋ํํ๊ณ , ํด๋ฐฑ ๋ฐ ํ์ฅ๊ณผ ๊ด๋ จ๋ Prometheus ๊ธฐ๋ณธ ์ค์ ์ ๊ฒํ ํ์ฌ ํฅํ ์ ์ฌํ ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ ๊ฒ์ ๋๋ค.
์ด ์คํจ๋ ๋ํ ๋ช ๊ฐ์ง ๊ธ์ ์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ ธ์์ต๋๋ค. ํ์ํ ๋ฆฌ์์ค๋ฅผ ๋ฐ์ Cortex๋ ์ถ๊ฐ ๊ฐ์
์์ด ์๋์ผ๋ก ๋ณต๊ตฌ๋์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ํ ํจ๊ป ์ผํ๋ฉด์ ๊ท์คํ ๊ฒฝํ์ ์ป์์ต๋๋ค.
๋ฒ์ญ๊ฐ์ ์ถ์
๋ธ๋ก๊ทธ์์๋ ์ฝ์ด๋ณด์ธ์.
- ยซ
Kubernetes์ ์๋ ํฌ๊ธฐ ์กฐ์ ๋ฐ ๋ฆฌ์์ค ๊ด๋ฆฌ(๊ฐ์ ๋ฐ ๋์์ ๋ณด๊ณ ์) "; - ยซ
Kubernetes ๋ชจํ Dailymotion: ํด๋ผ์ฐ๋ + ์จํ๋ ๋ฏธ์ค์์ ์ธํ๋ผ ๊ตฌ์ถ "; - ยซ
Tinder๊ฐ Kubernetes๋ก ์ ํ "; - ยซ
ํ๋ก๋์ ๋ถ์ผ์ Kubernetes ์ฑ๊ณต ์ฌ๋ก. ํํธ 10: ๋ ๋ง ".
์ถ์ฒ : habr.com