๐Ÿ“‚ Monitoring & Observability/Datadog

[Datadog] Datadog Tag๋ž€? Tag Best Practice

dhyuck 2023. 8. 7. 00:37
๋ฐ˜์‘ํ˜•

Tag๋ž€?


  • Tag(๋˜๋Š” Label)์€ k8s, datadog๊ณผ ๊ฐ™์€ hyper-scale ์‹œ์Šคํ…œ์˜ ๊ธฐ๋ณธ ๊ฐœ๋…์ด๋ฉฐ mordern ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค.
    โ†’ mordern ์ธํ”„๋ผ์—์„œ ์ธ์Šคํ„ด์Šค์™€ ์ปจํ…Œ์ด๋„ˆ๋Š” auto scaling์— ์˜ํ•ด ์ƒ์„ฑ ์‚ญ์ œ๊ฐ€ ์‰ฝ๊ฒŒ ์ด๋ฃจ์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

    โ†’ ์ด๋Ÿฌํ•œ ์ด์œ ๋กœ data์— tag๋ฅผ ๋‹ฌ์•„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๊ฒŒ ์ผ๋ฐ˜์ ์ž…๋‹ˆ๋‹ค.

  • Tag๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋‹ค์–‘ํ•œ HW ํ”„๋กœํ•„, SW ๋ฒ„์ „, ๊ฐ€์šฉ ์˜์—ญ, ์„œ๋น„์Šค, ์—ญํ•  ๋˜๋Š” ํ•„์š”ํ•œ ๋‹ค๋ฅธ ์ˆ˜์ค€์˜ ๋ฉ”ํŠธ๋ฆญ์„ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ฐจ์›์œผ๋กœ ๊ด€์ฐฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    โ†’ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฒ„์ „์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฅผ ์ง‘๊ณ„ํ•˜๊ณ  ๊ฐ€์šฉ ์˜์—ญ์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฅผ ์ง‘๊ณ„ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉํ–ฅ์—์„œ ๊ด€์ฐฐ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Tag๋Š” ๋ฉ”ํŠธ๋ฆญ์ด ์ˆ˜์ง‘๋˜๋Š” ๋ฐฉ์‹์„ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ ๋„ ์ธํ”„๋ผ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”ํŠธ๋ฆญ์— ์ฆ‰์‹œ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Datadog Tag๋ž€?


  • datadog tag๋Š” datadog์—์„œ ์ธํ”„๋ผ์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ ๊ฐ„์˜ ์ƒ๊ด€๊ด€๊ณ„๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ• ๋˜๋Š” ์ธํ”„๋ผ์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒํ˜ธ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.
    โ†’ datadog์€ tag๋ฅผ ์‚ฌ์šฉํ•ด์„œ metric, log, trace๋ฅผ ์ƒํ˜ธ ์—ฐ๊ฒฐํ•˜์—ฌ ๋ชจ๋‹ˆํ„ฐ๋ง ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค.

  • datadog tag๋Š” datadog์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ ๋ฐ ํ•„ํ„ฐ๋งํ•˜๊ณ  ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ๊ด€์‹œํ‚ค๊ณ  ์‹œ๊ฐํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    • ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด host map ๋˜๋Š” log, apm๊ณผ ๊ฐ™์€ datadog์˜ ๋‹ค๋ฅธ product์—์„œ ๋ฉ”ํŠธ๋ฆญ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์„œ์šธ์—์„œ ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ 'region: seoul'์œผ๋กœ ๊ฒ€์ƒ‰ํ•˜๊ฑฐ๋‚˜ ํ•„ํ„ฐ๋งํ•˜์—ฌ ์„œ์šธ๊ณผ ๊ด€๋ จ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๋น„์šฉ์„ ๊ด€๋ฆฌํ•ด์•ผ ํ•˜๋Š” ์žฌ๋ฌดํŒ€์˜ ๊ฒฝ์šฐ 'cost_center: advertisement'์œผ๋กœ ๊ฒ€์ƒ‰ํ•˜๊ฑฐ๋‚˜ ํ•„ํ„ฐ๋งํ•˜์—ฌ ๋น„์šฉ ์ •์‚ฐ์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • datadog tag์—๋Š” service, env, version๊ณผ ๊ฐ™์ด ํŠน์ • ๋ชฉ์ ์œผ๋กœ ์˜ˆ์•ฝ๋œ ํƒœ๊ทธ(reserved tag)๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์•ฝ๋œ ํƒœ๊ทธ๋Š” ์ •ํ•ด์ง„ ๋ชฉ์ ์œผ๋กœ๋งŒ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • datadog tag๋Š” ์˜ˆ์•ฝ ํƒœ๊ทธ ์™ธ์—๋„ ์‚ฌ์šฉ์ž ์ง€์ • ํƒœ๊ทธ(Custom tag)๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

    • datacenter: busan ๋˜๋Š” databaes: mysql๊ณผ ๊ฐ™์ด ์—”์ง€๋‹ˆ์–ด๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ํƒœ๊ทธ
    • cost_center: advertisement๊ณผ ๊ฐ™์ด ์žฌ๋ฌดํŒ€์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํƒœ๊ทธ
    • customer.region: tokyo ์™€ ๊ฐ™์ด ๋น„์ฆˆ๋‹ˆ์Šค ์ธ์‚ฌ์ดํŠธ๋ฅผ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ๋Š” ํƒœ๊ทธ
    • team: infra์™€ ๊ฐ™์ด owner ship์„ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ๋Š” ํƒœ๊ทธ
  • tag ๋ช…๋ช… ๊ทœ์น™

    • ํƒœ๊ทธ๋Š” ๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•ด์•ผํ•˜๋ฉฐ ์˜์–ด, ์ˆซ์ž, ๋งˆ์ด๋„ˆ์Šค(-), ์ฝœ๋ก (:), ์Šฌ๋ž˜์‹œ(/)๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
      ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๋ฌธ์ œ์— ๋Œ€ํ•ด์„œ๋Š” ๋ฐ‘์ค„(_)๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค.
    • ํƒœ๊ทธ๋Š” ์ตœ๋Œ€ 200์ž๊นŒ์ง€ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์œ ๋‹ˆ์ฝ”๋“œ ๋ฌธ์ž๋ฅผ ์ง€์›
    • ํƒœ๊ทธ๋Š” ์†Œ๋ฌธ์ž๋กœ ๋ณ€ํ™˜๋˜๋ฏ€๋กœ CamelCase๋Š” ๊ถŒ์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • datadog tag๋Š” simple value(๋‹จ์ˆœ ๊ฐ’)๊ณผ key-pair value(ํ‚ค-๊ฐ’ ์Œ)๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

    • ๋‹จ์ˆœ ๊ฐ’์€ ํ•„ํ„ฐ๋งํ•˜๋Š” ๋ฐ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ํ‚ค-๊ฐ’ ์Œ์€ ํ•„ํ„ฐ๋งํ•˜๊ณ  ๊ทธ๋ฃนํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๋ฐ์ดํ„ฐ ํ•„ํ„ฐ๋ง ๋ฐ ๊ทธ๋ฃนํ™”์˜ ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•˜๋Š” ํ‚ค:๊ฐ’ ์Œ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.
  • Unified Service Tagging โ†’ env, service, tag ํƒœ๊ทธ๋ฅผ ํ• ๋‹นํ•˜๋ฉด ๊ฐ ๋ฐฐํฌ๋งˆ๋‹ค ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋น„์Šค๊ฐ€ ์ˆ˜ํ–‰๋˜๋Š” ๋ฐฉ์‹์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ๋น„๊ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • datadog์€ tag๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒํ˜ธ ์—ฐ๊ฒฐํ•˜๊ณ , ์‚ฌ์šฉ์ž๋Š” datadog ์‚ฌ์šฉํ•˜๋Š” ๋‚ด๋‚ด tag๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰, ํ•„ํ„ฐ๋งํ•˜๊ธฐ ๋•Œ๋ฌธ์— best practice๋ฅผ ๋”ฐ๋ฅด๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

  • tag๋Š” use case์™€ end user๋ฅผ ๊ธฐ๋ฐ˜ํ•˜์—ฌ ์„ ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    โ†’ end user๋Š” ์—”์ง€๋‹ˆ์–ด, ๊ธฐํš์ž, ์žฌ๋ฌดํŒ€, ๊ณ ๊ฐ์ƒ๋‹ด์‚ฌ ๋“ฑ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    โ†’ ์†Œ์œ ๊ถŒ์„ ๋‚˜ํƒ€๋‚ด๋Š” Ownership tag(team: xxx, owner:xxx)
    โ†’ ๋ฒ”์œ„๋ฅผ ์ œํ•œํ• ์ˆ˜ ์žˆ๋Š” Scope Tag(env: xxx, datacenter: xxx)
    โ†’ ๊ธฐ๋Šฅ ๋ณ„๋กœ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ Function Tags(service:xxx, site:xxx, role:xxx, databaes:xxx)
    โ†’ ์—…๋ฌด ๊ด€๋ฆฌ์ž ๋ฐ ์žฌ๋ฌดํŒ€์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ Business Role Tags(business_unit:xxx, cost_center:xxx)

  • tag๋ฅผ ํ• ๋‹นํ•˜๊ธฐ ์ „์— ์‚ฌ์šฉ์ž๋Š” tag์— ๋Œ€ํ•œ standard๋ฅผ ๋งŒ๋“ค์–ด ๋ช…ํ™•์„ฑ๊ณผ ์ผ๊ด€์„ฑ์„ ํ™•๋ณดํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
    โ†’ datadog์€ tag๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ๊ด€ ์ง“๊ธฐ ๋•Œ๋ฌธ์— app, app_name, application๊ณผ ๊ฐ™์ด ๋‹ค์–‘ํ•œ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž์—๊ฒŒ ํ˜ผ๋ž€์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Datadog์—์„œ Tag๋ฅผ ํ• ๋‹นํ•˜๋Š” ๋ฐฉ๋ฒ•


  • tag๋ฅผ ํ• ๋‹นํ•˜๋Š” ๊ฐ€์žฅ ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์€ integration inheritance์ž…๋‹ˆ๋‹ค.
    โ†’ integration์— ์˜ํ•ด ์ˆ˜์ง‘๋œ ๋ฐ์ดํ„ฐ์— ์ƒ์†๋˜๊ณ  ์ž๋™์œผ๋กœ ํ• ๋‹น๋˜๋Š” ๊ฒƒ์„ integration inheritance์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
    โ†’ integration inheritance์— ์˜ํ•ด ํ• ๋‹น๋˜๋Š” ํƒœ๊ทธ๋Š” native tag๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

  • ์ถ”๊ฐ€๋กœ tag๋ฅผ ํ• ๋‹นํ•˜๋Š” ๋ฐฉ๋ฒ•์€ 4๊ฐ€์ง€์ด๋ฉฐ ํ•œ๊ฐ€์ง€ ๋˜๋Š” ๋ชจ๋‘๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    โ†’ Configuration file, UI(datadog website), API(datadog API๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ํƒœ๊น…), DogStatsD(DogStatsD๋กœ ๋ฉ”ํŠธ๋ฆญ์„ ์ œ์ถœํ•  ๋•Œ ํƒœ๊น…)

๋ฐ˜์‘ํ˜•

'๐Ÿ“‚ Monitoring & Observability > Datadog' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Datadog] Datadog์ด๋ž€? Datadog agent? Integration?  (0) 2023.07.15