์ธก์ •ํ•ญ๋ชฉ ๋ณด๊ธฐ

์ด ์ฃผ์ œ์—์„œ๋Š” Stackdriver ๋Œ€์‹œ๋ณด๋“œ์—์„œ Apigee Hybrid ์ธก์ •ํ•ญ๋ชฉ์„ ๋ณด๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

Stackdriver ์ •๋ณด

์ธก์ •ํ•ญ๋ชฉ, ๋Œ€์‹œ๋ณด๋“œ, Stackdriver์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‹ค์Œ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์ธก์ •ํ•ญ๋ชฉ ์‚ฌ์šฉ ์„ค์ •

ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์ธก์ •ํ•ญ๋ชฉ์„ Stackdriver๋กœ ๋ณด๋‚ด๋ ค๋ฉด ๋จผ์ € ์ธก์ •ํ•ญ๋ชฉ ์ˆ˜์ง‘์„ ์‚ฌ์šฉ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ ˆ์ฐจ์˜ ์ธก์ •ํ•ญ๋ชฉ ์ˆ˜์ง‘ ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์ธก์ •ํ•ญ๋ชฉ ์ด๋ฆ„ ๋ฐ ๋ผ๋ฒจ ์ •๋ณด

์‚ฌ์šฉ ์„ค์ •๋œ ๊ฒฝ์šฐ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ๊ฐ€ Stackdriver ์ธก์ •ํ•ญ๋ชฉ์„ ์ž๋™์œผ๋กœ ์ฑ„์›๋‹ˆ๋‹ค. ํ•˜์ด๋ธŒ๋ฆฌ๋“œ์—์„œ ์ƒ์„ฑ๋œ ์ธก์ •ํ•ญ๋ชฉ์˜ ๋„๋ฉ”์ธ ์ด๋ฆ„ ํ”„๋ฆฌํ”ฝ์Šค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

apigee.googleapis.com/

์˜ˆ๋ฅผ ๋“ค์–ด /proxy/request_count ์ธก์ •ํ•ญ๋ชฉ์—๋Š” API ํ”„๋ก์‹œ๊ฐ€ ์ˆ˜์‹ ํ•œ ์š”์ฒญ ์ด์ˆ˜๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Stackdriver์˜ ์ธก์ •ํ•ญ๋ชฉ ์ด๋ฆ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

apigee.googleapis.com/proxy/request_count

Stackdriver๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ผ๋ฒจ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ธก์ •ํ•ญ๋ชฉ ๋ฐ์ดํ„ฐ๋ฅผ ํ•„ํ„ฐ๋งํ•˜๊ณ  ๊ทธ๋ฃนํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€ ๋ผ๋ฒจ์€ ์‚ฌ์ „ ์ •์˜๋˜๋ฉฐ ๋‹ค๋ฅธ ๋ผ๋ฒจ์€ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ์— ์˜ํ•ด ๋ช…์‹œ์ ์œผ๋กœ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. ์•„๋ž˜์˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ธก์ •ํ•ญ๋ชฉ ์„น์…˜์—๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์ธก์ •ํ•ญ๋ชฉ๊ณผ ํ•„ํ„ฐ๋ง ๋ฐ ๊ทธ๋ฃนํ™”์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ธก์ •ํ•ญ๋ชฉ์— ํŠน๋ณ„ํžˆ ์ถ”๊ฐ€๋œ ๋ผ๋ฒจ์ด ๋‚˜์—ด๋ฉ๋‹ˆ๋‹ค.

์ธก์ •ํ•ญ๋ชฉ ๋ณด๊ธฐ

๋‹ค์Œ ์˜ˆ์‹œ๋Š” Stackdriver์—์„œ ์ธก์ •ํ•ญ๋ชฉ์„ ๋ณด๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
  1. ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ธก์ • ํ•ญ๋ชฉ ํƒ์ƒ‰๊ธฐ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์—ฝ๋‹ˆ๋‹ค. ๋˜๋Š” ์ด๋ฏธ Stackdriver ์ฝ˜์†”์— ์žˆ๋Š” ๊ฒฝ์šฐ ์ธก์ •ํ•ญ๋ชฉ ํƒ์ƒ‰๊ธฐ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  2. ๋ฆฌ์†Œ์Šค ์œ ํ˜• ๋ฐ ์ธก์ •ํ•ญ๋ชฉ ์ฐพ๊ธฐ์—์„œ ์‚ดํŽด๋ณผ ์ธก์ •ํ•ญ๋ชฉ์„ ์ฐพ์•„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ธก์ •ํ•ญ๋ชฉ์— ๋‚˜์—ด๋œ ํŠน์ • ์ธก์ •ํ•ญ๋ชฉ์„ ์„ ํƒํ•˜๊ฑฐ๋‚˜ ์ธก์ •ํ•ญ๋ชฉ์„ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด proxy/latencies๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.

    ์ธก์ •ํ•ญ๋ชฉ ์ž…๋ ฅ

  3. ์›ํ•˜๋Š” ์ธก์ •ํ•ญ๋ชฉ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  4. ํ•„ํ„ฐ๋ฅผ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์ธก์ •ํ•ญ๋ชฉ์˜ ํ•„ํ„ฐ ์„ ํƒ์‚ฌํ•ญ์€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ธก์ •ํ•ญ๋ชฉ์— ๋‚˜์—ด๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด proxy_latencies ์ธก์ •ํ•ญ๋ชฉ์˜ ๊ฒฝ์šฐ ํ•„ํ„ฐ ์„ ํƒ์‚ฌํ•ญ์€ org=org_name์ž…๋‹ˆ๋‹ค.
  5. Stackdriver์—์„œ ์„ ํƒํ•œ ์ธก์ •ํ•ญ๋ชฉ์˜ ์ฐจํŠธ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
  6. ์ €์žฅ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

๋Œ€์‹œ๋ณด๋“œ ๋งŒ๋“ค๊ธฐ

๋Œ€์‹œ๋ณด๋“œ๋Š” ์ค‘์š”ํ•œ ์ธก์ •ํ•ญ๋ชฉ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ณ  ๋ถ„์„ํ•  ์ˆ˜ ์žˆ๋Š” ํ•œ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. Stackdriver์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋ฆฌ์†Œ์Šค ๋ฐ ์„œ๋น„์Šค์— ๋Œ€ํ•ด ์ œ๊ณตํ•˜๋Š” ์‚ฌ์ „ ์ •์˜๋œ ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์ปค์Šคํ…€ ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐจํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปค์Šคํ…€ ๋Œ€์‹œ๋ณด๋“œ์— Apigee ์ธก์ •ํ•ญ๋ชฉ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ปค์Šคํ…€ ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ‘œ์‹œ๋œ ์ฐจํŠธ์™€ ๊ตฌ์„ฑ์„ ์™„๋ฒฝํ•˜๊ฒŒ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฐจํŠธ ๋งŒ๋“ค๊ธฐ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ฐจํŠธ ๋งŒ๋“ค๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๋‹ค์Œ ์˜ˆ๋Š” Stackdriver์—์„œ ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ๋งŒ๋“  ๋‹ค์Œ ์ฐจํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์ธก์ •ํ•ญ๋ชฉ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

  1. ๋ธŒ๋ผ์šฐ์ €์—์„œ Monitoring ์ธก์ •ํ•ญ๋ชฉ ํƒ์ƒ‰๊ธฐ๋ฅผ ์—ด๊ณ  ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  2. +๋Œ€์‹œ๋ณด๋“œ ๋งŒ๋“ค๊ธฐ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  3. ๋Œ€์‹œ๋ณด๋“œ ์ด๋ฆ„์„ ์ง€์ •ํ•˜์‹ญ์‹œ์˜ค. ์˜ˆ์‹œ: ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ํ”„๋ก์‹œ ์š”์ฒญ ํŠธ๋ž˜ํ”ฝ
  4. ํ™•์ธ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  5. ๋Œ€์‹œ๋ณด๋“œ์— ์ถ”๊ฐ€ํ•˜๋ ค๋Š” ๊ฐ ์ฐจํŠธ์— ๋Œ€ํ•ด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

    1. ๋Œ€์‹œ๋ณด๋“œ์—์„œ ์ฐจํŠธ ์ถ”๊ฐ€๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
    2. ์ธก์ •ํ•ญ๋ชฉ ๋ณด๊ธฐ์— ์„ค๋ช…๋œ ๋Œ€๋กœ ์›ํ•˜๋Š” ์ธก์ •ํ•ญ๋ชฉ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
    3. ๋Œ€ํ™”์ƒ์ž๋ฅผ ์™„์„ฑํ•ด ์ฐจํŠธ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
    4. ์ €์žฅ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. Stackdriver๋Š” ์„ ํƒํ•œ ์ธก์ •ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ธก์ •ํ•ญ๋ชฉ

๋‹ค์Œ ํ‘œ์—๋Š” ํ”„๋ก์‹œ ํŠธ๋ž˜ํ”ฝ ๋ถ„์„์šฉ ์ธก์ •ํ•ญ๋ชฉ์ด ๋‚˜์—ด๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋ก์‹œ, ๋Œ€์ƒ ์„œ๋ฒ„ ํŠธ๋ž˜ํ”ฝ ์ธก์ •ํ•ญ๋ชฉ

Prometheus ์„œ๋น„์Šค๋Š” ์ธก์ •ํ•ญ๋ชฉ ์ˆ˜์ง‘์— ์„ค๋ช…๋œ ๋Œ€๋กœ ํ”„๋ก์‹œ, ๋Œ€์ƒ, ์„œ๋ฒ„ ํŠธ๋ž˜ํ”ฝ์˜ ์ธก์ •ํ•ญ๋ชฉ์„ ์ˆ˜์ง‘ํ•˜๊ณ  ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ํ‘œ์—์„œ๋Š” Prometheus์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ธก์ •ํ•ญ๋ชฉ๊ณผ ๋ผ๋ฒจ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ผ๋ฒจ์€ ์ธก์ •ํ•ญ๋ชฉ ๋กœ๊ทธ ํ•ญ๋ชฉ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ธก์ •ํ•ญ๋ชฉ ์ด๋ฆ„ ๋ผ๋ฒจ ์‚ฌ์šฉ
/proxy/request_count method ์ˆ˜์‹ ๋œ API ํ”„๋ก์‹œ ์š”์ฒญ์˜ ์ด ๊ฐœ์ˆ˜์ž…๋‹ˆ๋‹ค.
/proxy/response_count method response_code ์ˆ˜์‹ ๋œ API ํ”„๋ก์‹œ ์‘๋‹ต์˜ ์ด ๊ฐœ์ˆ˜์ž…๋‹ˆ๋‹ค.
/proxy/latencies method ํ˜ธ์ถœ์— ์‘๋‹ตํ•˜๋Š” ๋ฐ ๊ฑธ๋ฆฐ ์ด ์‹œ๊ฐ„(๋ฐ€๋ฆฌ์ดˆ)์ž…๋‹ˆ๋‹ค. ์ด ์‹œ๊ฐ„์—๋Š” Apigee API ํ”„๋ก์‹œ ์˜ค๋ฒ„ํ—ค๋“œ์™€ ๋Œ€์ƒ ์„œ๋ฒ„ ์‹œ๊ฐ„์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
/target/request_count method

target_type

target_endpoint

ํ”„๋ก์‹œ์˜ ๋Œ€์ƒ์œผ๋กœ ์ „์†ก๋œ ์š”์ฒญ์˜ ์ด ๊ฐœ์ˆ˜์ž…๋‹ˆ๋‹ค.
/target/response_count method

response_code

target_type

target_endpoint

ํ”„๋ก์‹œ ๋Œ€์ƒ์—์„œ ์ˆ˜์‹ ๋œ ์‘๋‹ต์˜ ์ด ๊ฐœ์ˆ˜์ž…๋‹ˆ๋‹ค.
/target/latencies method

response_code

target_type

target_endpoint

ํ˜ธ์ถœ์— ์‘๋‹ตํ•˜๋Š” ๋ฐ ๊ฑธ๋ฆฐ ์ด ์‹œ๊ฐ„(๋ฐ€๋ฆฌ์ดˆ)์ž…๋‹ˆ๋‹ค. ์ด ์‹œ๊ฐ„์—๋Š” Apigee API ํ”„๋ก์‹œ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ํฌํ•จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
/policy/latencies policy_name ์ด ์ด๋ฆ„์ด ์ง€์ •๋œ ์ •์ฑ…์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ๊ฑธ๋ฆฐ ์ด์‹œ๊ฐ„(๋ฐ€๋ฆฌ์ดˆ)์ž…๋‹ˆ๋‹ค.
/server/fault_count source

์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์˜ค๋ฅ˜์˜ ์ด ๊ฐœ์ˆ˜์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ apigee-runtime, apigee-synchronizer ๋˜๋Š” apigee-udca์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. pod_name ๋ผ๋ฒจ์„ ์‚ฌ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋ณ„๋กœ ๊ฒฐ๊ณผ๋ฅผ ํ•„ํ„ฐ๋งํ•˜์„ธ์š”.

/server/nio state ์—ด๋ ค ์žˆ๋Š” ์†Œ์ผ“์˜ ์ˆ˜์ž…๋‹ˆ๋‹ค.
/server/num_threads ์„œ๋ฒ„์˜ ํ™œ์„ฑ ๋น„๋ฐ๋ชฌ ์Šค๋ ˆ๋“œ ์ˆ˜์ž…๋‹ˆ๋‹ค.
/server/request_count method

type

์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ˆ˜์‹ ํ•œ ์š”์ฒญ์˜ ์ด ๊ฐœ์ˆ˜์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ apigee-runtime, apigee-synchronizer ๋˜๋Š” apigee-udca์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. pod_name ๋ผ๋ฒจ์„ ์‚ฌ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋ณ„๋กœ ๊ฒฐ๊ณผ๋ฅผ ํ•„ํ„ฐ๋งํ•˜์„ธ์š”.

/server/response_count method

response_code
type

์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ณด๋‚ธ ์‘๋‹ต์˜ ์ด ๊ฐœ์ˆ˜์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ apigee-runtime, apigee-synchronizer ๋˜๋Š” apigee-udca์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. pod_name ๋ผ๋ฒจ์„ ์‚ฌ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋ณ„๋กœ ๊ฒฐ๊ณผ๋ฅผ ํ•„ํ„ฐ๋งํ•˜์„ธ์š”.

/server/latencies method

response_code
type

์ง€์—ฐ ์‹œ๊ฐ„์€ ์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ์ธํ•œ ์ง€์—ฐ ์‹œ๊ฐ„(๋ฐ€๋ฆฌ์ดˆ)์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ apigee-runtime, apigee-synchronizer ๋˜๋Š” apigee-udca์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. pod_name ๋ผ๋ฒจ์„ ์‚ฌ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋ณ„๋กœ ๊ฒฐ๊ณผ๋ฅผ ํ•„ํ„ฐ๋งํ•˜์„ธ์š”.

/upstream/request_count method

type

์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์—…์ŠคํŠธ๋ฆผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ์ „์†กํ•œ ์š”์ฒญ ์ˆ˜์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด apigee-synchronizer์˜ ๊ฒฝ์šฐ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์€ ์—…์ŠคํŠธ๋ฆผ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ apigee-synchronizer์˜ upstream/request_count๋Š” ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์— ๋Œ€ํ•ด apigee-synchronizer๊ฐ€ ์ˆ˜ํ–‰ํ•œ ์š”์ฒญ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ธก์ •ํ•ญ๋ชฉ์ž…๋‹ˆ๋‹ค.

/upstream/response_count method

response_code

type

์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์—…์ŠคํŠธ๋ฆผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ˆ˜์‹ ํ•œ ์‘๋‹ต ์ˆ˜์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด apigee-synchronizer์˜ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์€ ์—…์ŠคํŠธ๋ฆผ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ apigee-synchronizer์˜ upstream/response_count๋Š” apigee-synchronizer๊ฐ€ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์—์„œ ์ˆ˜์‹ ํ•œ ์š”์ฒญ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ธก์ •ํ•ญ๋ชฉ์ž…๋‹ˆ๋‹ค.

/upstream/latencies method

response_code
type

์—…์ŠคํŠธ๋ฆผ ์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ง€์—ฐ ์‹œ๊ฐ„(๋ฐ€๋ฆฌ์ดˆ)์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด apigee-synchronizer์˜ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์€ ์—…์ŠคํŠธ๋ฆผ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ apigee-synchronizer์˜ upstream/latencies๋Š” ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์˜ ์ง€์—ฐ ์‹œ๊ฐ„์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ธก์ •ํ•ญ๋ชฉ์ž…๋‹ˆ๋‹ค.

UDCA ์ธก์ •ํ•ญ๋ชฉ

Prometheus ์„œ๋น„์Šค๋Š” ๋‹ค๋ฅธ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์„œ๋น„์Šค์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ UDCA ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์ธก์ •ํ•ญ๋ชฉ์„ ์ธก์ •ํ•ญ๋ชฉ ์ˆ˜์ง‘์— ์„ค๋ช…๋œ ๋Œ€๋กœ ์ˆ˜์ง‘ํ•˜๊ณ  ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ํ‘œ์—์„œ๋Š” Prometheus๊ฐ€ UDCA ์ธก์ •ํ•ญ๋ชฉ ๋ฐ์ดํ„ฐ์— ์‚ฌ์šฉํ•˜๋Š” ์ธก์ •ํ•ญ๋ชฉ๊ณผ ๋ผ๋ฒจ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ผ๋ฒจ์€ ์ธก์ •ํ•ญ๋ชฉ ๋กœ๊ทธ ํ•ญ๋ชฉ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ธก์ •ํ•ญ๋ชฉ ์ด๋ฆ„ ๋ผ๋ฒจ ์‚ฌ์šฉ
/udca/server/local_file_oldest_ts dataset

state

๋ฐ์ดํ„ฐ ์„ธํŠธ์—์„œ ๊ฐ€์žฅ ์˜ค๋ž˜๋œ ํŒŒ์ผ์— ๋Œ€ํ•œ Unix Epoch์˜ ์‹œ์ž‘ ์ดํ›„์˜ ํƒ€์ž„์Šคํƒฌํ”„(๋ฐ€๋ฆฌ์ดˆ)์ž…๋‹ˆ๋‹ค.

์ด ๊ฐ’์€ 60์ดˆ๋งˆ๋‹ค ๊ณ„์‚ฐ๋˜๋ฉฐ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ƒํƒœ๋ฅผ ๋ฐ˜์˜ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. UDCA๊ฐ€ ์ตœ์‹  ์ƒํƒœ์ด๋ฉฐ ์ด ์ธก์ •ํ•ญ๋ชฉ์„ ๊ณ„์‚ฐํ•  ๋•Œ ์—…๋กœ๋“œ ๋Œ€๊ธฐ ์ค‘์ธ ํŒŒ์ผ์ด ์—†๋Š” ๊ฒฝ์šฐ ์ด ๊ฐ’์€ 0์ž…๋‹ˆ๋‹ค.

์ด ๊ฐ’์ด ๊ณ„์† ์ฆ๊ฐ€ํ•˜๋ฉด ๊ธฐ์กด ํŒŒ์ผ์€ ์—ฌ์ „ํžˆ ๋””์Šคํฌ์— ์žˆ์Šต๋‹ˆ๋‹ค.

/udca/server/local_file_latest_ts dataset

state

๋””์Šคํฌ์˜ ์ตœ์‹  ํŒŒ์ผ์— ๋Œ€ํ•œ Unix Epoch์˜ ์‹œ์ž‘ ์ดํ›„์˜ ํƒ€์ž„์Šคํƒฌํ”„(๋ฐ€๋ฆฌ์ดˆ)์ž…๋‹ˆ๋‹ค.

์ด ๊ฐ’์€ 60์ดˆ๋งˆ๋‹ค ๊ณ„์‚ฐ๋˜๋ฉฐ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ƒํƒœ๋ฅผ ๋ฐ˜์˜ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. UDCA๊ฐ€ ์ตœ์‹  ์ƒํƒœ์ด๋ฉฐ ์ด ์ธก์ •ํ•ญ๋ชฉ์„ ๊ณ„์‚ฐํ•  ๋•Œ ์—…๋กœ๋“œ ๋Œ€๊ธฐ ์ค‘์ธ ํŒŒ์ผ์ด ์—†๋Š” ๊ฒฝ์šฐ ์ด ๊ฐ’์€ 0์ž…๋‹ˆ๋‹ค.

/udca/server/local_file_count dataset

state

๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ํฌ๋“œ์— ์žˆ๋Š” ๋””์Šคํฌ์˜ ํŒŒ์ผ ์ˆ˜์ž…๋‹ˆ๋‹ค.

์ด์ƒ์ ์œผ๋กœ ๊ฐ’์€ 0์— ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. ๊ฐ’์ด ์ง€์†์ ์œผ๋กœ ๋†’์œผ๋ฉด ํŒŒ์ผ์ด ์—…๋กœ๋“œ๋˜๊ณ  ์žˆ์ง€ ์•Š๊ฑฐ๋‚˜ UDCA์—์„œ ์ถฉ๋ถ„ํžˆ ๋น ๋ฅด๊ฒŒ ์—…๋กœ๋“œํ•  ์ˆ˜ ์—†์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

์ด ๊ฐ’์€ 60์ดˆ๋งˆ๋‹ค ๊ณ„์‚ฐ๋˜๋ฉฐ UDCA์˜ ์ƒํƒœ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ˜์˜ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

/udca/server/total_latencies dataset

์ƒ์„ฑ ์ค‘์ธ ๋ฐ์ดํ„ฐ ํŒŒ์ผ๊ณผ ์—…๋กœ๋“œ๋œ ๋ฐ์ดํ„ฐ ํŒŒ์ผ ์‚ฌ์ด์˜ ์‹œ๊ฐ„ ๊ฐ„๊ฒฉ(์ดˆ)์ž…๋‹ˆ๋‹ค.

๋ฒ„ํ‚ท์€ 100๋ฐ€๋ฆฌ์ดˆ, 250๋ฐ€๋ฆฌ์ดˆ, 500๋ฐ€๋ฆฌ์ดˆ, 1์ดˆ, 2์ดˆ, 4์ดˆ, 8์ดˆ, 16์ดˆ, 32์ดˆ, 64์ดˆ์ž…๋‹ˆ๋‹ค.

ํŒŒ์ผ ์ƒ์„ฑ ์‹œ๊ฐ„์—์„œ ์„ฑ๊ณต์ ์ธ ์—…๋กœ๋“œ ์‹œ๊ฐ„๊นŒ์ง€์˜ ์ด ์ง€์—ฐ ์‹œ๊ฐ„์— ๋Œ€ํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ์ž…๋‹ˆ๋‹ค.

/udca/server/upload_latencies dataset

UDCA๊ฐ€ ๋ฐ์ดํ„ฐ ํŒŒ์ผ ์—…๋กœ๋“œ์— ์†Œ๋น„ํ•œ ์ด ์‹œ๊ฐ„(์ดˆ)์ž…๋‹ˆ๋‹ค.

๋ฒ„ํ‚ท์€ 100๋ฐ€๋ฆฌ์ดˆ, 250๋ฐ€๋ฆฌ์ดˆ, 500๋ฐ€๋ฆฌ์ดˆ, 1์ดˆ, 2์ดˆ, 4์ดˆ, 8์ดˆ, 16์ดˆ, 32์ดˆ, 64์ดˆ์ž…๋‹ˆ๋‹ค.

์ธก์ •ํ•ญ๋ชฉ์€ ๋ชจ๋“  ์—…์ŠคํŠธ๋ฆผ ํ˜ธ์ถœ์„ ํฌํ•จํ•œ ์ด ์—…๋กœ๋“œ ์ง€์—ฐ ์‹œ๊ฐ„์— ๋Œ€ํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

/udca/upstream/http_error_count service

dataset

response_code

UDCA์— ๋ฐœ์ƒํ•œ HTTP ์˜ค๋ฅ˜์˜ ์ด ๊ฐœ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ด ์ธก์ •ํ•ญ๋ชฉ์€ UDCA ์™ธ๋ถ€ ์ข…์† ํ•ญ๋ชฉ์˜ ์–ด๋–ค ๋ถ€๋ถ„์ด ์‹คํŒจํ–ˆ๋Š”์ง€์™€ ๊ทธ ์ด์œ ๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์˜ค๋ฅ˜๋Š” ๋‹ค์–‘ํ•œ ์„œ๋น„์Šค(getDataLocation, Cloud storage, Token generator) ๋ฐ ๋‹ค์–‘ํ•œ ์‘๋‹ต ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ์„ธํŠธ(์˜ˆ: api ๋ฐ trace)์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

/udca/upstream/http_latencies service

dataset

์„œ๋น„์Šค์˜ ์—…์ŠคํŠธ๋ฆผ ์ง€์—ฐ ์‹œ๊ฐ„(์ดˆ)์ž…๋‹ˆ๋‹ค.

๋ฒ„ํ‚ท์€ 100๋ฐ€๋ฆฌ์ดˆ, 250๋ฐ€๋ฆฌ์ดˆ, 500๋ฐ€๋ฆฌ์ดˆ, 1์ดˆ, 2์ดˆ, 4์ดˆ, 8์ดˆ, 16์ดˆ, 32์ดˆ, 64์ดˆ์ž…๋‹ˆ๋‹ค.

์—…์ŠคํŠธ๋ฆผ ์„œ๋น„์Šค์˜ ์ง€์—ฐ ์‹œ๊ฐ„ ํžˆ์Šคํ† ๊ทธ๋žจ์ž…๋‹ˆ๋‹ค.

/udca/upstream/uploaded_file_sizes dataset

Apigee ์„œ๋น„์Šค์— ์—…๋กœ๋“œ๋˜๋Š” ํŒŒ์ผ ํฌ๊ธฐ(๋‹จ์œ„: ๋ฐ”์ดํŠธ)์ž…๋‹ˆ๋‹ค.

๋ฒ„ํ‚ท์€ 1KB, 10KB, 100KB, 1MB, 10MB, 100MB, 1GB๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ์„ธํŠธ, ์กฐ์ง, ํ™˜๊ฒฝ๋ณ„ ํŒŒ์ผ ํฌ๊ธฐ ํžˆ์Šคํ† ๊ทธ๋žจ์ž…๋‹ˆ๋‹ค.

/udca/upstream/uploaded_file_count dataset UDCA๊ฐ€ Apigee ์„œ๋น„์Šค์— ์—…๋กœ๋“œํ•œ ํŒŒ์ผ ์ˆ˜์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ ์‚ฌํ•ญ์„ ์ฐธ๊ณ ํ•˜์„ธ์š”.

  • event ๋ฐ์ดํ„ฐ ์„ธํŠธ ๊ฐ’์€ ๊ณ„์† ์ฆ๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์กฐ์ง/ํ™˜๊ฒฝ์— ์ง€์†์ ์ธ ํŠธ๋ž˜ํ”ฝ์ด ์žˆ์œผ๋ฉด api ๋ฐ์ดํ„ฐ ์„ธํŠธ ๊ฐ’์€ ๊ณ„์† ์ฆ๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • Apigee ์ถ”์  ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์š”์ฒญ์„ ๋””๋ฒ„๊น…ํ•˜๊ฑฐ๋‚˜ ๊ฒ€์‚ฌํ•˜๋ฉด trace ๋ฐ์ดํ„ฐ ์„ธํŠธ ๊ฐ’์€ ์ฆ๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
/udca/disk/used_bytes dataset

state

๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ํฌ๋“œ์˜ ๋””์Šคํฌ์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ ํŒŒ์ผ์ด ๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ ์ฐจ์ง€ํ•˜๋Š” ๊ณต๊ฐ„์ž…๋‹ˆ๋‹ค.

์‹œ๊ฐ„ ๊ฒฝ๊ณผ์— ๋”ฐ๋ฅธ ์ด ๊ฐ’์˜ ์ฆ๊ฐ€:

  • ready_to_upload๋Š” ์—์ด์ „ํŠธ๊ฐ€ ๋’ค์ณ์ง„ ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
  • failed๋Š” ํŒŒ์ผ์ด ๋””์Šคํฌ์— ์Œ“์ด๋ฉด์„œ ์—…๋กœ๋“œ๋˜์ง€ ์•Š์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ’์€ 60์ดˆ๋งˆ๋‹ค ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค.
/udca/server/pruned_file_count dataset

state

TTL(Time To Life)์ด ์„ค์ •๋œ ๊ธฐ์ค€์ ์„ ์ดˆ๊ณผํ•˜์—ฌ ์‚ญ์ œ๋œ ํŒŒ์ผ ์ˆ˜์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์„ธํŠธ์—๋Š” API, trace ๋“ฑ์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ƒํƒœ๋Š” UPLOADED, FAILED, DISCARDED์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
/udca/server/retry_cache_size dataset

UDCA๊ฐ€ ์—…๋กœ๋“œ๋ฅผ ๋‹ค์‹œ ์‹œ๋„ํ•˜๋Š” ๋ฐ์ดํ„ฐ ์„ธํŠธ๋ณ„ ํŒŒ์ผ ์ˆ˜์ž…๋‹ˆ๋‹ค.

UDCA๋Š” ํŒŒ์ผ๋งˆ๋‹ค 3๋ฒˆ์”ฉ ๋‹ค์‹œ ์‹œ๋„ํ•œ ํ›„ ํŒŒ์ผ์„ /failed ํ•˜์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ์ด๋™ํ•˜๊ณ  ์ด ์บ์‹œ์—์„œ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. 3ํšŒ ์žฌ์‹œ๋„ ํ›„ ํŒŒ์ผ์ด /failed ํ•˜์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ์ด๋™๋  ๋•Œ ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ์ด ๊ฐ’์ด ์ฆ๊ฐ€ํ•˜๋ฉด ์บ์‹œ๊ฐ€ ์‚ญ์ œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Cassandra ์ธก์ •ํ•ญ๋ชฉ

Prometheus ์„œ๋น„์Šค๋Š” ๋‹ค๋ฅธ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์„œ๋น„์Šค์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ Cassandra์˜ ์ธก์ •ํ•ญ๋ชฉ์„ ์ธก์ •ํ•ญ๋ชฉ ์ˆ˜์ง‘์— ์„ค๋ช…๋œ ๋Œ€๋กœ ์ˆ˜์ง‘ํ•˜๊ณ  ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ํ‘œ์—์„œ๋Š” Prometheus๊ฐ€ Cassandra ์ธก์ •ํ•ญ๋ชฉ ๋ฐ์ดํ„ฐ์— ์‚ฌ์šฉํ•˜๋Š” ์ธก์ •ํ•ญ๋ชฉ๊ณผ ๋ผ๋ฒจ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ผ๋ฒจ์€ ์ธก์ •ํ•ญ๋ชฉ ๋กœ๊ทธ ํ•ญ๋ชฉ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ธก์ •ํ•ญ๋ชฉ ์ด๋ฆ„(๋„๋ฉ”์ธ ์ œ์™ธ) ๋ผ๋ฒจ ์‚ฌ์šฉ
/cassandra/process_max_fds ์—ด๋ฆฐ ํŒŒ์ผ ์„ค๋ช…์ž์˜ ์ตœ๋Œ€ ๊ฐœ์ˆ˜์ž…๋‹ˆ๋‹ค.
/cassandra/process_open_fds ์—ด๋ฆฐ ํŒŒ์ผ ์„ค๋ช…์ž์ž…๋‹ˆ๋‹ค.
/cassandra/jvm_memory_pool_bytes_max pool ํ’€์˜ JVM ์ตœ๋Œ€ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ž…๋‹ˆ๋‹ค.
/cassandra/jvm_memory_pool_bytes_init pol ํ’€์˜ JVM ์ดˆ๊ธฐ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ž…๋‹ˆ๋‹ค.
/cassandra/jvm_memory_bytes_max area JVM ํž™ ์ตœ๋Œ€ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ž…๋‹ˆ๋‹ค.
/cassandra/process_cpu_seconds_total ์‚ฌ์šฉ์ž ๋ฐ ์‹œ์Šคํ…œ CPU ์‹œ๊ฐ„(์ดˆ)์ž…๋‹ˆ๋‹ค.
/cassandra/jvm_memory_bytes_used area JVM ํž™ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ž…๋‹ˆ๋‹ค.
/cassandra/compaction_pendingtasks unit Cassandra sstables๋ฅผ ์œ„ํ•œ ๋›ฐ์–ด๋‚œ ์••์ถ• ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์••์ถ•์„ ์ฐธ์กฐํ•˜์„ธ์š”.
/cassandra/jvm_memory_bytes_init area JVM ํž™ ์ดˆ๊ธฐ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ž…๋‹ˆ๋‹ค.
/cassandra/jvm_memory_pool_bytes_used pool ํ•˜๋“œ์›จ์–ด ํ’€ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ž…๋‹ˆ๋‹ค.
/cassandra/jvm_memory_pool_bytes_committed pool JVM ํ’€ ์•ฝ์ • ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ž…๋‹ˆ๋‹ค.
/cassandra/clientrequest_latency scope

unit

75๋ฒˆ์งธ ๋ฐฑ๋ถ„์œ„์ˆ˜ ๋ฒ”์œ„์˜ ์ฝ๊ธฐ ์š”์ฒญ ์ง€์—ฐ ์‹œ๊ฐ„(๋งˆ์ดํฌ๋กœ์ดˆ)์ž…๋‹ˆ๋‹ค.
/cassandra/jvm_memory_bytes_committed area JVM ํž™ ์•ฝ์ • ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ž…๋‹ˆ๋‹ค.