[Grafana] Grafana HTTP APM ๊ตฌ์ฑํ๊ธฐ
Grafana Stack์ ์ฌ์ฉํด์ HTTP ์๋ฒ์ฉ ๋ชจ๋ํฐ๋ง์ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณธ๋ค.
์ธ์ก์์ APM์ด๋ผ๊ณ ๋ถ๋ฅด๊ธด ํ์ง๋ง, ํฌ๊ฒ๋ Log, Trace, Metric์ ๊ตฌ์ฑ์์๋ก ๋ถ๋ฆฌ๋๋ค.
๊ฐ๊ฐ์ ์ฉ๋๋ง ๋ค๋ฅธ๊ฒ ์๋๋ผ ํํ์ ๋ฐ๋ผ์ ์ ์ฅํ๋ ์ ์ฅ์ ์์คํ
๋ ์์ ๋ค๋ฅด๋ค.
์ฌ๊ธฐ์๋ Grafana Loki(Log), Grafana Tempo(Trace), Prometheus(Metric)์ผ๋ก APM์ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ๊ฐ๋จํ ๊ฐ์ด๋๋ฅผ ๋จ๊ฒจ๋ณธ๋ค.
Loki ๊ธฐ๋ฐ์ ๋ก๊ทธ ๊ตฌ์ฑ
๋ก๊ทธ ์ ์ฅ์ ์ด๋์ ํ ์ง๋ ์ฌ์ฉ์ค์ธ ์์คํ
๊ตฌ์กฐ์ ๋ฐ๋ผ์ ๋ค๋ฅด๋ค.
์ฌ์ค AWS Fargate ๊ฐ์ ๋ก๊ทธ๊น์ง ์ผ์ฒดํ์ผ๋ก ์ ๊ณต๋๋ ์๋น์ค๋ฅผ ์ด๋ค๋ฉด ๋ก๊ทธ ์ ์ฅ์๋ฅผ ์ธ ํ์๋ ์๋ค.
๊ทธ๋์ Loki๋ฅผ ์ง์ ๊ตฌ์ฑํด์ ์ฐ๋๊ฑด ๋ณดํต k8s ํ๊ฒฝ์ด๋ค.
์ฌ์ฉ๋ฒ์ ๋ํด์๋ ๋ณ๋ ํฌ์คํธ๋ฅผ ์ฐธ์กฐํ๋ค.
https://blog.naver.com/sssang97/223518846852
https://blog.naver.com/sssang97/223518925037
Tempo ๊ธฐ๋ฐ์ Trace ๊ตฌ์ฑ
Trace๋ ๊ฐ๊ฐ์ ๋
๋ฆฝ๋ ๊ธฐ๋ฅ ๋จ์๋ฅผ ์ถ์ ํ๋ ๋ก๊ทธ ๋จ์๋ผ๊ณ ํ ์ ์๋ค.
์ฌ๊ธฐ์ ๊ฐ๊ฐ์ ๊ธฐ๋ฅ์ ๋ณดํต ํ๋์ API ํธ์ถ์ด ๋๋ค.
https://blog.naver.com/sssang97/223761188760
Prometheus ๊ธฐ๋ฐ์ Metric ๊ตฌ์ฑ
metric์๋ ๋๋ถ๋ถ ์๊ณ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ์ฅ์๋ก ์ฌ์ฉํ๋ค.
Mimir๋ ๋ช๊ฐ์ง ๋์์ด ์๊ธด ํ๋ฐ, prometheus๊ฐ ์๋์ ์ธ ๊ตญ๋ฃฐ์ด๋ค.
๋ค์ ํฌ์คํธ์์๋ prometheus์ opentelemetry์ otel collector๋ฅผ ์ด์ฉํด์ ๊ธฐ๋ณธ์ ์ธ metric ํ๊ฒฝ์ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํ๋ค.
https://blog.naver.com/sssang97/223764113482
๋ค์ ํฌ์คํธ์์๋ trace-span ๊ธฐ๋ฐ์ spanmetric ํต๊ณ๋ฅผ ์๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ค๋ฃฌ๋ค.
API์ ํธ์ถ ํ์, ์คํจ์จ ๊ฐ์ trace ๊ธฐ๋ฐ ํต๊ณ๋ฅผ ๋ณผ๋ ์ฌ์ฉํ๋ค.
https://blog.naver.com/sssang97/223764160315
๋ค์์ ์์ ์ฝ๋ ์์น๋ค.
https://github.com/myyrakle/infrastructures/tree/master/docker-compose/grafana-apm
์ฐธ์กฐ
https://grafana.com/docs/tempo/latest/getting-started/docker-example/
https://github.com/grafana/tempo/blob/main/example/docker-compose/local/docker-compose.yaml
https://grafana.com/docs/grafana-cloud/monitor-applications/application-observability/instrument/go/
https://www.anyflow.net/sw-engineer/opentelemetry-overview