Metrics Monitoring and Alerting system ์ ์ฝ๊ณ ๋ฒ์ญํ์์ต๋๋ค.
ํ์ฅ ๊ฐ๋ฅํ ๋ฉํธ๋ฆญ ๋ชจ๋ํฐ๋ง ์์คํ ์ ์ค๊ณํ์ฌ ์์คํ ์์์ ๊ด์ธก ๊ฐ๋ฅํ ๋ฉํธ๋ฆญ(metric)๋ฟ๋ง ์๋๋ผ ๋น์ฆ๋์ค ์๊ตฌ์ ๋ฐ๋ฅธ ์ฌ์ฉ์ ์ ์ ๋ฉํธ๋ฆญ๋ ์์งํ ์ ์์ต๋๋ค.
์์คํ ๋ฉํธ๋ฆญ ์์
- CPU ๋ถํ
- ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋
- ๋์คํฌ ์ฌ์ฉ๋
- RPC ์๋น์ค์ ์ด๋น ์์ฒญ ์
- RPC ์๋น์ค ์ง์ฐ ์๊ฐ
RPC๋ ์๊ฒฉ ํ๋ก์์ ํธ์ถ(Remote Procedure Call)์ ๋ปํ๋ฉฐ, ํ๋ก์ธ์ค ๊ฐ ํต์ ๊ธฐ์ ์ค ํ๋์ ๋๋ค. RPC๋ฅผ ์ด์ฉํ๋ฉด, ๋ณ๋์ ์๊ฒฉ ์ ์ด ์ฝ๋ฉ ์์ด ๋ค๋ฅธ ์ฃผ์ ๊ณต๊ฐ์์ ํจ์๋ ํ๋ก์์ ๋ฅผ ์คํํ ์ ์์ต๋๋ค.
RPC์ ์ฃผ์ ํน์ง
- ์๋ก ๋ค๋ฅธ ํ๋ก์ธ์ค ๊ฐ์ ์๊ฒฉ ํจ์ ํธ์ถ์ ํ์ฉ
- ํ๋ก๊ทธ๋๋จธ๋ ํจ์๊ฐ ์คํ ํ๋ก๊ทธ๋จ์ ๋ก์ปฌ ์์น์ ์๋ ์๊ฒฉ ์์น์ ์๋ ๋์ผํ ์ฝ๋๋ฅผ ์ฌ์ฉํ ์ ์์
- API ๊ฐ ํต์ ์ ์ํ ๊ฐ์ฅ ๊ฐ๋จํ๊ณ ์ค๋๋ ๋ฐฉ๋ฒ ์ค ํ๋
์ฌ์ฉ์ ์ ์ ๋ฉํธ๋ฆญ ์์
- ์ง์ญ(locale)๋ณ ์ฌ์ฉ์ ์
- ์๋ ํฌ ์๋ ๋ฉ์์ง ์ ์ก ์ง์ฐ ์๊ฐ: ์ฑํ ๋ฉ์์ง์ ๋ฉ์์ง ์ ์ก ์์ ์๊ฐ~์์ ์์๊ฒ ์ ๋ฌ๋ ์๊ฐ
์์คํ
์ ๋ฉํธ๋ฆญ์ ๊ธฐ๋ฐ์ผ๋ก ๊ฒฝ๊ณ ๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค.
๊ฒฝ๊ณ ์์
- RPC ์ค๋ฅ ๋น์จ์ด ์๊ณ๊ฐ์ ์ด๊ณผํ ๊ฒฝ์ฐ ๊ฒฝ๊ณ ์์ฑ
- ์๋ฒ์ CPU ์ฌ์ฉ๋์ด ์๊ณ๊ฐ์ ์ด๊ณผํ ๊ฒฝ์ฐ ๊ฒฝ๊ณ ์์ฑ
- ๋ก๊ทธ์ธ ์ฌ์๋ ํ์๋ฅผ ์นด์ดํธํ๋ ์ฌ์ฉ์ ์ ์ ๋ฉํธ๋ฆญ์ด ์ ํ์ ์ด๊ณผํ ๊ฒฝ์ฐ ๊ฒฝ๊ณ ๋ฅผ ์์ฑ
์ด๋ฌํ ๊ฒฝ๊ณ ๋ ์ด๋ฉ์ผ, ํด๋ํฐ ๋ฌธ์ ๋ฉ์์ง, PagerDuty, ๋๋ ์นํ HTTP ํธ์ถ๋ก ์ ์ก๋์ด์ผ ํฉ๋๋ค.
์ฐธ๊ณ : ์ด ์ค๊ณ์์๋ ๋ชจ๋ํฐ๋ง ์์คํ ์ด ์์งํ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ฒฝ๊ณ ๋ฅผ ์ค์ ํ๋ ๋ฐ ์ค์ ์ ๋ก๋๋ค. ๊ฒฝ๊ณ ๋ ์๋ฒ ๋ก๊ทธ๋ ์ก์ธ์ค ๋ก๊ทธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์ง ์์ต๋๋ค.
High level system design
ํ์ํ ๊ตฌ์ฑ ์์
- ๋ฐ์ดํฐ ์์ง: ๋ค์ํ ์์ค์์ ๋ฉํธ๋ฆญ ๋ฐ์ดํฐ๋ฅผ ์์ง
- ๋ฐ์ดํฐ ์ ์ก: ์์ค์์ ๋ฉํธ๋ฆญ ๋ชจ๋ํฐ๋ง ์์คํ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ก
- ๋ฐ์ดํฐ ์ ์ฅ: ๋ฉํธ๋ฆญ ์๊ณ์ด ๋ฐ์ดํฐ๋ฅผ ์ ๋ฆฌํ๊ณ ์ ์ฅ
- ์ฟผ๋ฆฌ ์๋น์ค: ๋ฉํธ๋ฆญ ๋ฐ์ดํฐ๋ฅผ ์ฟผ๋ฆฌ
- ์๊ฐํ: ์ค์๊ฐ ๋ฐ ๊ณผ๊ฑฐ ๋ฉํธ๋ฆญ ๋ฐ์ดํฐ๋ฅผ ๋ค์ํ ๊ทธ๋ํ์ ์ฐจํธ๋ก ์๊ฐํ
- ๊ฒฝ๊ณ : ๋ฐ์ดํฐ์ ๊ท์น์ ์คํํ๊ณ ๊ฒฝ๊ณ ๋ฅผ ์์ฑํ์ฌ ๋ค์ํ ํต์ ์ฑ๋๋ก ์๋ฆผ์ ๋ณด๋Data collection and transmitting to monitoring system
- ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฉํธ๋ฆญ ๋ฐ์ดํฐ๋ฅผ ๋ด๋ณด๋ด๋๋ก ์์ ๋ฉ๋๋ค.
- ๊ฐ ์๋ฒ์ ๋ฉํธ๋ฆญ ์์ด์ ํธ๋ฅผ ์ค์นํ์ฌ ๋ฉํธ๋ฆญ ๋ฐ์ดํฐ๋ฅผ ์์ ํฉ๋๋ค.
- ์์ด์ ํธ๋ ๋ก์ปฌ ๋ฒํผ๋ฅผ ์ ์งํ๋ฉฐ, ๋ฒํผ๊ฐ ๊ฐ๋ ์ฐจ๋ฉด UDP ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ ์ด ๋ฐ์ดํฐ๋ฅผ ๋ฐฐ์น(batch) ํํ๋ก ๋ชจ๋ํฐ๋ง ์์คํ ์ ์ ์กํฉ๋๋ค.
- TCP๋ณด๋ค UDP ํ๋กํ ์ฝ์ ์ ํธํ๋ ์ด์ ๋ ์ง์ฐ ์๊ฐ์ด ๋ฎ๊ณ ๋ฐ์ดํฐ ์์ค ์ํ์ด ํ์ฉ ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ๋๋ค.Data model for storage๋ฉํธ๋ฆญ ๋ฐ์ดํฐ๋ ์์ค์์ ํน์ ํ์์คํฌํ์ ํจ๊ป ์์ฑ๋๋ ์๊ณ์ด ๋ฐ์ดํฐ์ ๋๋ค.
- ์๋ฒ ๋ฉํ๋ฐ์ดํฐ: server_user, job_name, machine_name, process_id ๋ฑ ์๋ฒ ๊ด๋ จ ์ ๋ณด
- ๋ฉํธ๋ฆญ ๋ฉํ๋ฐ์ดํฐ: metric_name ๋ฐ ๊ธฐํ ์ฌ์ฉ์ ์ ์ ํ๊ทธ(์: client_type, language ๋ฑ)
- ๋ฉํธ๋ฆญ ๊ฐ: ๋ฉํธ๋ฆญ์ ์๊ณ์ด ๊ฐ์ ๋ํ๋ด๋ฉฐ, ๋์ (cumulative) ๋๋ ๋น๋์ (non-cumulative)์ผ ์ ์์
๋ชจ๋ ๋ฉํธ๋ฆญ์ ์์ฒด ํ ์ด๋ธ์ ์ ์ฅ๋ฉ๋๋ค. ๊ฐ ํ์ ์๋ฒ ๋ฉํ๋ฐ์ดํฐ์ ๋ฉํธ๋ฆญ ํ๊ทธ์ ํน์ ์กฐํฉ์ ๋ํ ๋ฐ์ดํฐ ์คํธ๋ฆผ์ ๋๋ค.
/search/counter ๋ฉํธ๋ฆญ์ ์คํค๋ง ์์ :
ServerUser JobName MachineName ProcessId ClientType Language /search/counter
xxxx yyyy zzzz 1 Web EN t1:xx,t2:xxx,t3:xx
xxxx yyyy zzzz 1 iOS EN t1:xx,t2:xxx,t3:xx
xxxx yyyy zzzz 1 Android EN t1:xx,t2:xxx,t3:xx
์ ํ๋ฆฌ์ผ์ด์ ์ด ํน์ ๊ฐ๊ฒฉ์ผ๋ก ๊ฐ์ ๊ธฐ๋กํ๊ธฐ ๋๋ฌธ์, ์ด ๋ฐ์ดํฐ๋ ์๋ก ๋ค๋ฅธ ํ์์คํฌํ์์ ๊ธฐ๋ก๋๋ ๋ฐ์ดํฐ ์คํธ๋ฆผ์ ๋๋ค.
/search/counter ๋ฐ์ดํฐ ์คํธ๋ฆผ ์์ :
- ๊ฐ ํ์ ํน์ ํ์์คํฌํ์์ ์์ง๋ ๊ฐ์ ํฌํจํ ๋ฐ์ดํฐ ์คํธ๋ฆผ์ ๋๋ค.
- ์ด ์์ ์์ ๊ฐ์ ์ฆ๊ฐํ์ง๋ง, ๋ฐ์ดํฐ ์ข ๋ฅ์ ๋ฐ๋ผ ๊ฐ์ด ์ฆ๊ฐํ์ง ์์ ์๋ ์์ต๋๋ค.๋ฐ์ดํฐ ์คํธ๋ฆผ ํ์
- Boolean
- Int64
- Double
- String
- Tuple
- Distribution
ํ์ ์ ์๋์ ๊ฐ์ด ๋ค์ ๋ถ๋ฅํ ์ ์์ต๋๋ค.
- ๋น๋์ (Non-cumulative): String ๋๋ Boolean์ ํญ์ ๋น๋์ ์ ๋๋ค. ์ซ์(Number) ๊ฐ๋ ๋น๋์ ์ผ ์ ์์. ์: RPC ์ง์ฐ ์๊ฐ(RPC latency).
- ๋์ (Cumulative): ํ๋ก์ธ์ค์ ์๋ช ๋์ ๊ฐ์ด ์ ๋ ๊ฐ์ํ์ง ์๋ ๋ฉํธ๋ฆญ์ ๋๋ค. ์๋ฒ๊ฐ ์ฌ์์๋์์ ๋๋ง ์ด๊ธฐํ. ์: ํจ์๊ฐ ์๋ฌ๋ฅผ ๋ฐ์์ํจ ํ์๋ฅผ ์นด์ดํธํ๋ ๋ฉํธ๋ฆญ์ ํ๋ก์ธ์ค ์๋ช ๋์ ๊ฐ์ํ์ง ์์ต๋๋ค.
๋ถํฌ ๋ฐ์ดํฐ ํ์ (Distribution Data Type)
- ๋ถํฌ(Distribution) ๋ฐ์ดํฐ ํ์ ์ ๋ฉํธ๋ฆญ ์์คํ ์ ๊ณ ์ ํ ๋ฐ์ดํฐ ํ์ ์ ๋๋ค.
- ํน์ ๊ฐ์ ์ฌ๋ฌ ๋ฒ์(๋ฒํท)๋ก ๋๋๋ ํ์คํ ๊ทธ๋จ์ ํฌํจ
- ๊ฐ ๋ฒํท์ ํฉ๊ณ(sum), ํ๊ท (mean), ๊ฐ์(count), ํ์คํธ์ฐจ(standard deviation) ๋ฑ์ ํต๊ณ๊ฐ์ ์์ฝํ์ฌ ์ ์ฅ
- ๋๋ฒ๊น ๋ชฉ์ ์ผ๋ก ๋ฒํท๋ณ๋ก ์์ ๊ฐ์ ํฌํจํ ์๋ ์์ต๋๋ค.
๋ถํฌ ๋ฐ์ดํฐ ํ์ ์์ ๋์ (Cumulative)๊ณผ ๋น๋์ (Non-Cumulative)์ ์ฐจ์ด
Streams:(00:01,0.3)(00.01,0.5)(00.01,1.8)(00:02,0.3)(00:02,0.5)(00:02,2.7)
Non Cumulative distributions:
Bucket T0 T0+1m T0+2m
[0,1) 0 2 2
[1,2) 0 1 0
[2,4) 0 0 1
Cumulative distributions:
Bucket T0 T0+1m T0+2m
[0,1) 0 2 4
[1,2) 0 1 1
[2,4) 0 0 1
Data storage system
๋ฉํธ๋ฆญ ๋ฐ์ดํฐ๋ ์คํค๋ง ๊ธฐ๋ฐ ๋ฐ์ดํฐ์ด๋ฉด์ ์๊ณ์ด ๋ฐ์ดํฐ์ ๋๋ค. ๊ฒฝ๊ณ ์์คํ ์ ๋ฉํธ๋ฆญ ์ ์ฅ์์ ์์กดํ๊ธฐ ๋๋ฌธ์, ์ ์ฅ ์์คํ ์ ๋น ๋ฅด๊ณ ์ ๋ขฐํ ์ ์์ด์ผ ํฉ๋๋ค. ๋ฐ๋ผ์ ๋ฐ์ดํฐ๋ฅผ ๋์คํฌ์ ๊ธฐ๋กํ๋ ๋์ ์ธ๋ฉ๋ชจ๋ฆฌ(in-memory) ์ ์ฅ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ์ ํฉํฉ๋๋ค. ๋ฐ์ดํฐ ๋ณต๊ตฌ๋ฅผ ์ํด ๋์คํฌ์ ๊ธฐ๋กํ๋ ๊ธฐ๋ฅ์ ํฌํจํฉ๋๋ค. ์ผ๋ถ ๋ฐ์ดํฐ๋ฅผ ์์ด๋ ๊ด์ฐฎ์ผ๋ฏ๋ก ๋ณต๊ตฌ ๋ก๊ทธ๋ฅผ ์ธ ๋ ํ์ธ(acknowledge)์ ๊ธฐ๋ค๋ฆด ํ์๋ ์์ต๋๋ค.
Intra zone setup
๊ณ ๋๋ก ํ์ฅ ๊ฐ๋ฅํ ์์คํ ์ ์ง๋ฆฌ์ ์ผ๋ก ๋ถ์ฐ๋ ๋ค์์ ์กด์ ์ค์น๋์ด์ผ ํฉ๋๋ค. (์ฌ์ฉ์ ์ง์, ์ฒ๋ฆฌ๋ ํฅ์, ์ ๋ขฐ์ฑ ํฅ์์ ์ํ ๊ฒ). ๊ฐ ์กด์ ๋ ๋ฆฝ์ ์ธ ์ง์ญ ๋จ์(local unit)๋ก ๋ฐฐํฌ๋์ด์ผ ํฉ๋๋ค. ๋ก์ปฌ ๋จ์๋ ํด๋น ์กด์์ ์์ฑ๋ ๋ชจ๋ ๋ฉํธ๋ฆญ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํฉ๋๋ค. ์ด๋ ๋ฐ์ดํฐ ์ฝ์ ํ์ฐ(ingestion fanout)์ ํฌ๊ฒ ์ค์ ๋๋ค.
์ฟผ๋ฆฌ ์คํ ์ ๋ชจ๋ ๊ฐ์ฉํ ์กด์์ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ ๋ค ๋จ์ผ ์ถ๋ ฅ(single output)์ผ๋ก ์๋ตํด์ผ ํฉ๋๋ค. ์ด๋ฌํ ๊ตฌ์กฐ๋ ์ผ๋ถ ์กด์ ์ ๋์ด ์คํจํด๋ ๋ฉํธ๋ฆญ ๋ฐ์ดํฐ ์์ฑ์ด ์ค๋จ๋์ง ์๋๋ก ํฉ๋๋ค.
Ingestion fanout์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋๋ ์ ์ก ๊ณผ์ ์์ ๋จ์ผ ๋ฐ์ดํฐ ์์ค๋ก๋ถํฐ ์ฌ๋ฌ ๋ชฉ์ ์ง(destination) ๋๋ ์ฒ๋ฆฌ ๊ฒฝ๋ก๋ก ๋ฐ์ดํฐ๋ฅผ ๋์์ ๋ถ๋ฐฐํ๋ ํจํด์ ๋งํฉ๋๋ค. ์ด ํจํด์ ๋ฐ์ดํฐ๋ฅผ ๋ณ๋ ฌ์ ์ผ๋ก ์ ์กํ๊ฑฐ๋ ์ฒ๋ฆฌํ์ฌ ์ฑ๋ฅ์ ์ต์ ํํ๊ณ ํ์ฅ์ฑ์ ๋์ด๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
- ๋ฐ์ดํฐ ๋ณต์ : ์๋ณธ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ๋ชฉ์ ์ง๋ก ๋์์ ์ ์กํฉ๋๋ค.
- ๋ณ๋ ฌ ์ฒ๋ฆฌ: ๋ฐ์ดํฐ๋ฅผ ๋ค์ํ ์ฒ๋ฆฌ ๊ฒฝ๋ก์์ ๋์์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
- ์ ์ฐ์ฑ: ์ฌ๋ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ ์๋น์ค๊ฐ ๋์ผํ ๋ฐ์ดํฐ๋ฅผ ํ์๋ก ํ ๋ ํจ์จ์ ์ผ๋ก ํ์ฉํ ์ ์์ต๋๋ค.
Aggregation using bucket and admission window
Storage layer๋ sliding admission window์ ์ ์งํฉ๋๋ค. ๋ฒํท์ ์ข ๋ฃ ์๊ฐ์ด admission window์์ ๋ฒ์ด๋๋ฉด ํด๋น ๋ฒํท์ ํ์ (finalized)๋ฉ๋๋ค. ์ง๊ณ๋ ๋ฐ์ดํฐ ํฌ์ธํธ๋ ์ธ๋ฉ๋ชจ๋ฆฌ ์ ์ฅ์์ ๋ณต๊ตฌ ๋ก๊ทธ์ ๊ธฐ๋ก๋ฉ๋๋ค. ์๊ฐ ์ค์ฐจ(clock skew)๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด TrueTime์ ์ฌ์ฉํ์ฌ deltas, buckets, admission window.์ ํ์์คํฌํ๋ฅผ ๋ถ์ฌํ ์ ์์ต๋๋ค.
Query Engine
๋ฉํธ๋ฆญ ๋ฐ์ดํฐ๋ฅผ ์ฟผ๋ฆฌํ๊ธฐ ์ํด ์ฟผ๋ฆฌ ์์ง์ ๊ตฌ์ถํด์ผ ํฉ๋๋ค. ์ฟผ๋ฆฌ ์์ง์ ์๊ณ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฝ๊ณ ๊ฒฝ๊ณ ๋๋ ์๊ฐํ์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํฉ๋๋ค. ๋ฐ์ดํฐ๋ ์ฌ๋ฌ ๋
ธ๋์ ์กด์ ๊ฑธ์ณ ๋ถ์ฐ ์ ์ฅ๋๋ฏ๋ก, ๊ฐ ์ฟผ๋ฆฌ๋ ๋ฆฌํ ๋
ธ๋ ํ์๊ธฐ(leaf nodes finder)๋ฅผ ํตํด ๋ฆฌํ ๋
ธ๋์์ ์คํ๋ฉ๋๋ค.
SQL ์คํ์ผ ์ฟผ๋ฆฌ ์์ :
{
fetch ComputeTask::/rpc/server/latency
| fitler user=="app-user"
| align delta(1h)
; fetch ComputeTask::/build/lable
| filter user=="app-user" && job="prod-00-us"
} | join
| group_by [label], aggregate(latency)
์ฟผ๋ฆฌ ์ถ๋ ฅ ์์:
Sharding
๋ ํค์์ฝ๊ทธ๋ํฝ ์ค๋ฉ(lexicographic sharding)์ ํน์ ์คํค๋ง์ ๊ด๋ จ๋ ํค ์ด์ ๊ธฐ๋ฐ์ผ๋ก ์กด ๋ด ๋ฐ์ดํฐ๋ฅผ ์ค๋ฉํฉ๋๋ค.
์๋ฅผ ๋ค์ด ComputeTask::sql-dba::db.server::aa::0876๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ์ ํ๋ก์ธ์ค๋ฅผ ๋ํ๋
๋๋ค. ์ด๋ฌํ ํ๊ฒ ๋ฒ์(target range)๋ฅผ ์ฌ์ฉํ์ฌ ์ฟผ๋ฆฌ ๋ด ์ธ์ ํ๊ฒ ๊ฐ ํจ์จ์ ์ธ ์ง๊ณ์ ๋ฆฌํ ๋
ธ๋ ๊ฐ ๋ถํ ๋ถ์ฐ(load balancing)์ ์ํํ ์ ์์ต๋๋ค.
๊ฒฝ๊ณ ์์คํ (Alerting System)
๊ฒฝ๊ณ ์์คํ
์ ์ฃผ์ ๋ค ๊ฐ์ง ๊ตฌ์ฑ ์์๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค:
- ๊ท์น ๊ตฌ์ฑ(Rules Config): ๋ฉํธ๋ฆญ ํ๊ฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ฒฝ๊ณ ๋ฅผ ํธ๋ฆฌ๊ฑฐํ๋ ์ฌ์ ์ ์๋ ๊ท์น์ ํฌํจํฉ๋๋ค.
- ๊ฒฝ๊ณ ๊ด๋ฆฌ์(Alert Manager): ๊ท์น์ ์ฃผ๊ธฐ์ ์ผ๋ก ์คํํ๋ฉฐ ์ด์์ด ๊ฐ์ง๋๋ฉด ์ด๋ฒคํธ๋ฅผ ํ(Queue)์ ๊ฒ์ํด ๊ณ ๊ฐ์๊ฒ ์๋ฆฝ๋๋ค.
- ๊ฒฝ๊ณ ์๋น์(Alert Consumer): ํ์์ ์ด๋ฒคํธ๋ฅผ ์์ ํ๊ณ , ์ฌ์ฉ ๊ฐ๋ฅํ ํต์ ์ฑ๋์ ํตํด ์์ ์์๊ฒ ์ ๋ฌํฉ๋๋ค.
- ํต์ ์ฑ๋(Communication Channel): ์ด๋ฉ์ผ, ๋ฌธ์ ๋ฉ์์ง, PageDuety, Webhooks ๋ฑ์ด ํฌํจ๋ฉ๋๋ค
์๊ฐํ ์์คํ (Visualization System)
์๊ฐํ ์์คํ ์ ์ฟผ๋ฆฌ ์์ง ์์ ๊ตฌ์ถ๋๋ฉฐ, ๋ค์๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค:
- ํน์ ๋ฉํธ๋ฆญ ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํฉ๋๋ค.
- ์๊ฐ ๋ฒ์ ๋ฐ ์ฌ์ฉ์ ์ ์ ํ๊ทธ๋ฅผ ๊ธฐ์ค์ผ๋ก ํํฐ๋งํฉ๋๋ค.
- ๋ฉํธ๋ฆญ ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋ํ๋ก ์๊ฐํํฉ๋๋ค.
Reference
์ ์๋ ์์คํ ์ค๊ณ๋ Google์ Monarch ์๊ณ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. ๋ฉํธ๋ฆญ ๋ฐ ๊ฒฝ๊ณ ์์คํ ์ ๋ํด ๋ ๊น์ด ์ดํดํ๊ณ ์ถ๋ค๋ฉด ๋ค์ ๋ ผ๋ฌธ์ ์ฐธ๊ณ ํ์ธ์. Monarch: Google’s Planet-Scale In-Memory
'note' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋์ปค ๋ฉํฐ์คํ ์ด์ง (0) | 2024.11.24 |
---|---|
Apache Spark RDD(Resilient Distributed Dataset) (0) | 2024.11.22 |
Distributed Job Scheduler system design (0) | 2024.11.14 |
MLOps 03: Feast Feature Store โ An In-depth Overview Experimentation and Applica (0) | 2024.11.14 |
MLOps 02: Dagster โ Seamless Data Pipelines & ML Model Management for Machine Le (0) | 2024.11.14 |