[Grafana Tempo] ์บ์‹ฑ ์„ค์ • (with Memcached)

Tempo๋Š” ์ž์ฒด์ ์œผ๋กœ TraceQL ๋“ฑ์„ ์ด์šฉํ•œ ์ฟผ๋ฆฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์ง€๋งŒ, ์ฝ๊ธฐ ์„ฑ๋Šฅ ๋ถ€๋ถ„์—์„œ๋Š” ์•„์‰ฌ์šด ๋ถ€๋ถ„์ด ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค.

Tempo๋Š” ์ฟผ๋ฆฌ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์œ„ํ•ด์„œ ์ธ๋ฑ์Šค ์žก๊ณ  ๊ทธ๋Ÿฐ๊ฑด ์—†๊ณ , ๊ทธ๋ƒฅ ์บ์‹ฑ์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค.
์บ์‹ฑ ๋ฐฑ์—”๋“œ๋กœ๋Š” Redis, Memcached๊ฐ€ ์ง€์›๋œ๋‹ค.

์บ์‹œ๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค๊ฑฐ๋‚˜ ํ•˜๋Š”๊ฑด ์•„๋‹ˆ๊ณ , ์ฟผ๋ฆฌ์—์„œ ์กฐํšŒ๋œ ๋ธ”๋ก์˜ ๋ธ”๋ฃธ ํ•„ํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ํ˜•์‹์ด๋‹ค.

Docker compose ๊ธฐ์ค€์œผ๋กœ ๋‹ค๋ฃฌ๋‹ค.

  memcached:
    image: memcached:1.6.29
    ports:
      - "11211:11211"
    environment:
      - MEMCACHED_MAX_MEMORY=64m # Set the maximum memory usage
      - MEMCACHED_THREADS=1 # Number of threads to use
    restart: always

์ด๋Ÿฐ ์‹์œผ๋กœ memcached DB๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•˜๋ฉด

tempo config yaml์—์„œ ์ด๋Ÿฐ ์‹์œผ๋กœ ๊ตฌ์„ฑํ•˜๋ฉด ๋œ๋‹ค.

cache:
  background:
    writeback_goroutines: 5
  caches:
    - roles:
        - frontend-search
      memcached:
        addresses: dns+memcached:11211

์—ฌ๊ธฐ์„  docker ์ž์ฒด dns๋กœ ๋‚ด๋ถ€ ํ†ต์‹ ์„ ํƒ€๋„๋ก ํ–ˆ๋Š”๋ฐ, ๋‹ค๋ฅธ ์˜์—ญ์— ์žˆ๋‹ค๋ฉด ์ฃผ์†Œ๋ฅผ ์“ฐ๊ฑฐ๋‚˜ ๋„๋ฉ”์ธ์„ ๋„ฃ๊ฑฐ๋‚˜ ํ•˜๋ฉด ๋œ๋‹ค.



์ฐธ์กฐ
https://grafana.com/docs/tempo/latest/configuration/#cache
https://grafana.com/docs/tempo/latest/operations/caching/
https://grafana.com/docs/tempo/latest/operations/backend_search/