• EnglishEspaรฑolๆ—ฅๆœฌ่ชžํ•œ๊ตญ์–ดPortuguรชs
  • ๋กœ๊ทธ์ธ์ง€๊ธˆ ์‹œ์ž‘ํ•˜๊ธฐ

์ด ํ•œ๊ธ€ ๋ฌธ์„œ๋Š” ์‚ฌ์šฉ์ž์˜ ํŽธ์˜๋ฅผ ์œ„ํ•ด ๊ธฐ๊ณ„ ๋ฒˆ์—ญ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์˜๋ฌธ๋ณธ๊ณผ ๋ฒˆ์—ญ๋ณธ์ด ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์˜๋ฌธ๋ณธ์ด ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค. ๋ณด๋‹ค ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ด ํŽ˜์ด์ง€๋ฅผ ๋ฐฉ๋ฌธํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๋ฌธ์ œ ์‹ ๊ณ 

gRPC ๊ณ„์ธก

New Relic Ruby ์—์ด์ „ํŠธ ๋Š” grpc gem(๋ฒ„์ „ 1.0.0 ์ด์ƒ)์„ ์‚ฌ์šฉํ•˜๋Š” gRPC ํด๋ผ์ด์–ธํŠธ ๋ฐ ์„œ๋ฒ„๋ฅผ ์ž๋™์œผ๋กœ ๊ณ„์ธกํ•ฉ๋‹ˆ๋‹ค. ๋‹จํ•ญ, ์–‘๋ฐฉํ–ฅ, ํด๋ผ์ด์–ธํŠธ ์ŠคํŠธ๋ฆฌ๋ฐ ๋ฐ ์„œ๋ฒ„ ์ŠคํŠธ๋ฆฌ๋ฐ๊ณผ ๊ฐ™์€ ๋ชจ๋“  ํ†ต์‹  ์œ ํ˜•์ด ์ง€์›๋ฉ๋‹ˆ๋‹ค.

์ค‘์š”

gRPC ๊ณ„์ธก์—๋Š” Ruby ์—์ด์ „ํŠธ ๋ฒ„์ „ 8.10.0 ์ด์ƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๊ตฌ์„ฑ(๋ชจ๋“  ์„ค์ •์€ ์„ ํƒ ์‚ฌํ•ญ์ž„)

gRPC ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„์˜ ๊ณ„์ธก์„ ๋ณ„๋„๋กœ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‘ ๊ตฌ์„ฑ ์˜ต์…˜ ๋ชจ๋‘ automatic ์˜ ์•ฝ์ž์ธ auto ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ๊ฐ๊ฐ์— ๋Œ€ํ•œ ์—์ด์ „ํŠธ์˜ ์ž๋™ ๋™์ž‘์€ ์ฒ˜์Œ์—๋Š” Ruby ๋ชจ๋“ˆ ์•ž์— ์ถ”๊ฐ€ ๋™์ž‘์„ ํ™œ์šฉํ•˜๊ณ  ์•Œ๋ ค์ง„ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ Ruby ๋ฉ”์„œ๋“œ ์—ฐ๊ฒฐ ๋™์ž‘์œผ๋กœ ํด๋ฐฑํ•˜์—ฌ ๊ณ„์ธก์„ ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ ์„น์…˜์—์„œ ์ถ”๊ฐ€ ์˜ต์…˜๊ณผ ์˜ˆ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

ํด๋ผ์ด์–ธํŠธ ๋ฐ ์„œ๋ฒ„ ์˜ต์…˜

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

  • auto: ์ž๋™ Ruby ๋ฉ”์†Œ๋“œ ๋™์ž‘ ์„ ํƒ์„ ํ†ตํ•ด ํ™œ์„ฑํ™”๋˜๋Š” ๊ธฐ๋ณธ๊ฐ’
  • disabled: ๊ณ„์ธก ๋น„ํ™œ์„ฑํ™”
  • prepend: ์•ž์— Ruby ๋ฉ”์„œ๋“œ๋ฅผ ๊ฐ•์ œ๋กœ ์‚ฌ์šฉ
  • chain: Ruby ๋ฉ”์†Œ๋“œ ์ฒด์ด๋‹ ๊ฐ•์ œ ์‚ฌ์šฉ

ํด๋ผ์ด์–ธํŠธ๋ณ„ ์˜ต์…˜

ํด๋ผ์ด์–ธํŠธ์— ๋Œ€ํ•ด์„œ๋งŒ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

  • ๊ตฌ์„ฑ ํŒŒ์ผ ๋งค๊ฐœ๋ณ€์ˆ˜: instrumentation.grpc_client
  • ํ™˜๊ฒฝ ๋ณ€์ˆ˜: NEW_RELIC_INSTRUMENTATION_GRPC_CLIENT

์„œ๋ฒ„๋ณ„ ์˜ต์…˜

์„œ๋ฒ„์— ๋Œ€ํ•ด์„œ๋งŒ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

  • ๊ตฌ์„ฑ ํŒŒ์ผ ๋งค๊ฐœ๋ณ€์ˆ˜: instrumentation.grpc_server
  • ํ™˜๊ฒฝ ๋ณ€์ˆ˜: NEW_RELIC_INSTRUMENTATION_GRPC_SERVER

ํด๋ผ์ด์–ธํŠธ ๋ฐ ์„œ๋ฒ„ ๊ตฌ์„ฑ์˜ ์˜ˆ

๊ตฌ์„ฑ ํŒŒ์ผ์„ ํ†ตํ•ด gRPC ์„œ๋ฒ„ ๊ณ„์ธก์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด:

# newrelic.yml
instrumentation.grpc_server: disabled

ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด gRPC ํด๋ผ์ด์–ธํŠธ ๊ณ„์ธก์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

export NEW_RELIC_INSTRUMENTATION_GRPC_CLIENT=disabled

ํ™•์ธ

New Relic Ruby ์—์ด์ „ํŠธ๊ฐ€ ์‹œ์ž‘๋˜๋ฉด ๋กœ๋“œ๋œ grpc gem์˜ ์กด์žฌ๋ฅผ ๊ฐ์ง€ํ•œ ๋‹ค์Œ gRPC ๊ณ„์ธก ์ ์šฉ์„ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. gRPC ํด๋ผ์ด์–ธํŠธ ๋ฐ ์„œ๋ฒ„ ๊ตฌ์„ฑ ์š”์†Œ์— ๋Œ€ํ•ด ์ด ๊ณ„์ธก์„ ์„ฑ๊ณต์ ์œผ๋กœ ์ ์šฉํ•˜๋ฉด ์—์ด์ „ํŠธ๋Š” ๋กœ๊ทธ ํŒŒ์ผ(๊ธฐ๋ณธ์ ์œผ๋กœ log/newrelic_agent.log )์— ๋‹ค์Œ ์ค„์„ ์”๋‹ˆ๋‹ค.

INFO : Installing New Relic supported gRPC_Client instrumentation using Prepend
INFO : Installing New Relic supported gRPC_Server instrumentation using Prepend

์šฉ๋ฒ•

๊ณ„์ธก์ด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๋Š” ํ•œ(์œ„์˜ ํ™•์ธ ์„ ์ฐธ์กฐํ•˜์—ฌ ํ™•์ธ) New Relic Ruby ์—์ด์ „ํŠธ๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ชจ๋“  ๊ณ„์ธก์€ ์™„์ „ ์ž๋™์ด์–ด์•ผ ํ•˜๋ฉฐ ๊ธฐ์กด gRPC ํด๋ผ์ด์–ธํŠธ ๋ฐ/๋˜๋Š” ์„œ๋ฒ„ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

New Relic Ruby ์—์ด์ „ํŠธ์˜ gRPC ๊ณ„์ธก์—๋Š” ์ŠคํŒฌ์— ๋ถ„์‚ฐ ์ถ”์  ํ—ค๋”๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์–ด gRPC ํด๋ผ์ด์–ธํŠธ ๋ฐ ์„œ๋ฒ„ ํ˜ธ์ถœ์„ W3C ๋ถ„์‚ฐ ์ถ”์ ์„ ์ง€์›ํ•˜๋Š” ๋‹ค๋ฅธ ์„œ๋น„์Šค์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. gRPC ์š”์ฒญ์€ Ruby ๊ธฐ๋ฐ˜ ํด๋ผ์ด์–ธํŠธ์—์„œ ๋‹ค๋ฅธ ์–ธ์–ด ๊ธฐ๋ฐ˜ ์„œ๋ฒ„๋กœ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ Ruby ๊ธฐ๋ฐ˜ ์„œ๋ฒ„๋Š” ๋‹ค๋ฅธ ์–ธ์–ด ๊ธฐ๋ฐ˜ ํด๋ผ์ด์–ธํŠธ์—์„œ ์˜ค๋Š” ์š”์ฒญ์„ ํ•„๋“œ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ค‘์š”

gRPC ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์€ ๊ธฐ์กด New Relic ํŠธ๋žœ์žญ์…˜์ด ์žˆ์„ ๋•Œ ์ƒ์„ฑ๋˜์ง€ ์•Š๋Š” ํ•œ New Relic์— ๋ณด๊ณ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๊ฒƒ์€ Rails ์ปจํŠธ๋กค๋Ÿฌ ๋ฉ”์†Œ๋“œ ๋˜๋Š” ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ž‘์—… ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ™œ์„ฑ ์ƒํƒœ์ด๊ณ  gRPC ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ ํ˜ธ์ถœ์„ ๋‹ด๋‹นํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์š”์ฒญ์€ New Relic ์›น UI์—์„œ ํ•ด๋‹น ์™ธ๋ถ€ ๋ž˜ํผ์˜ ํŠธ๋žœ์žญ์…˜ ์•„๋ž˜์— ๋กค์—…๋ฉ๋‹ˆ๋‹ค.

gRPC ์„œ๋ฒ„ ์š”์ฒญ์€ ํ•ญ์ƒ ์ƒˆ๋กœ์šด New Relic ํŠธ๋žœ์žญ์…˜์„ ์ƒ์„ฑํ•˜๋ฉฐ ๊ธฐ์กด New Relic ํŠธ๋žœ์žญ์…˜์„ ์š”๊ตฌํ•˜๊ฑฐ๋‚˜ ๋กค์—…ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ๋ณด๊ธฐ

New Relic UI์˜ ์—ฌ๋Ÿฌ ํŽ˜์ด์ง€์—์„œ ์ˆ˜์ง‘๋œ gRPC ๋ฐ์ดํ„ฐ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์š”์•ฝ ํŽ˜์ด์ง€

UI ์š”์•ฝ ํŽ˜์ด์ง€ ์—์„œ gRPC ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์€ ์›น ํŠธ๋žœ์žญ์…˜์œผ๋กœ ๋‚˜ํƒ€๋‚˜๋ฉฐ ์›น ํŠธ๋žœ์žญ์…˜ ์‹œ๊ฐ„ , ์ฒ˜๋ฆฌ๋Ÿ‰ ๋ฐ ์˜ค๋ฅ˜์œจ ์ฐจํŠธ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋ถ„์‚ฐ ์ถ”์  ํŽ˜์ด์ง€

ํŒ

๋ถ„์‚ฐ ์ถ”์ ์€ ์ƒˆ Ruby ์—์ด์ „ํŠธ์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ผœ์ ธ ์žˆ์ง€๋งŒ ์งˆ๋ฌธ์ด ์žˆ๋Š” ๊ฒฝ์šฐ Ruby ์„œ๋น„์Šค์— ๋Œ€ํ•œ ๋ถ„์‚ฐ ์ถ”์ ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

UI์˜ ๋ถ„์‚ฐ ์ถ”์  ํŽ˜์ด์ง€์—์„œ gRPC ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

  1. one.newrelic.com > All capabilities > APM & services ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

  2. ์—”ํ„ฐํ‹ฐ(์„œ๋น„์Šค)๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  3. ์™ผ์ชฝ ์ฐฝ์˜ ๋ชจ๋‹ˆํ„ฐ ์„น์…˜์—์„œ ๋ถ„์‚ฐ ์ถ”์  ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  4. ์ถ”์  ๊ทธ๋ฃน์„ ํด๋ฆญํ•˜์‹ญ์‹œ์˜ค.

  5. ๋ชฉ๋ก์—์„œ ํŠธ๋ ˆ์ด์Šค๋ฅผ ์„ ํƒํ•˜๊ณ  ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  6. ๋ชจ๋‘ ํ™•์žฅ ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  7. ์ถ”์  ๋ฒ”์œ„์˜ ๊ฒฐ๊ณผ ๋ชฉ๋ก์—์„œ ๊ฐœ๋ณ„ ์ถ”์  ๋ฒ”์œ„๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  8. ์˜ค๋ฅธ์ชฝ ์ฐฝ์—์„œ ์†์„ฑ ํƒญ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    • ํด๋ผ์ด์–ธํŠธ ์ธ์Šคํ„ด์Šค: grpc_status , grpc_type , http.method ๋ฐ http.url ์†์„ฑ์ด ๋ชจ๋‘ ํ‘œ์‹œ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์ด ์‹คํŒจํ•œ ๊ฒฝ์šฐ( 0 ์ด์™ธ์˜ grpc_status ๊ฐ’์„ ๊ฐ€์ง) ์ถ”๊ฐ€ grpc_message ์†์„ฑ์ด gRPC ์ƒํƒœ ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.
    • ์„œ๋ฒ„ ์ธ์Šคํ„ด์Šค: request.grpc_type , request.method ๋ฐ request.uri ์†์„ฑ์ด ๋ชจ๋‘ ํ‘œ์‹œ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ๋ชจ๋‘ gRPC(Ruby ๋˜๋Š” ๋‹ค๋ฅธ ์–ธ์–ด)๋ฅผ ์ง€์›ํ•˜๋Š” New Relic ์—์ด์ „ํŠธ์— ์˜ํ•ด ๋ชจ๋‹ˆํ„ฐ๋ง๋˜๋Š” ํ•œ ๋ถ„์‚ฐ ์ถ”์  ๋งต์€ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ํด๋ผ์ด์–ธํŠธ ๋ฐ ์„œ๋ฒ„ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๋ชจ๋‘ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
  • ๊ทธ๋“ค ์‚ฌ์ด์—์„œ ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ๊ณ ์œ ํ•œ ํ˜ธ์ถœ ์œ ํ˜•์ด ์ˆ˜ํ–‰๋˜์—ˆ๋Š”์ง€ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค.

gRPC ๊ธฐ๋ฐ˜ Ruby ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์˜ˆ์™ธ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ Events > Errors ํŽ˜์ด์ง€์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

์ง€์› ๋ฐ ํ”ผ๋“œ๋ฐฑ

New Relic Ruby ์—์ด์ „ํŠธ์˜ gRPC ๊ณ„์ธก๊ณผ ๊ด€๋ จ๋œ ์ง€์› ๋ฐ/๋˜๋Š” ํ”ผ๋“œ๋ฐฑ์„ ์œ„ํ•ด New Relic์— ์—ฐ๋ฝํ•  ๋•Œ ๋‹ค์Œ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต๋ณ€์„ ์–ป์œผ์‹ญ์‹œ์˜ค.

  • ์–ด๋–ค ๋ฒ„์ „์˜ grpc gem์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?
  • New Relic Infinite Tracing์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ?
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ™˜๊ฒฝ์„ ์–ด๋–ป๊ฒŒ ์„ค๋ช…ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? (Framework, Ruby ๋ฒ„์ „, ๊ธฐํƒ€ ํ•ต์‹ฌ ๊ธฐ์ˆ  ์‚ฌ์šฉ)
  • gRPC๋Š” ๋ฌด์—‡์— ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ?
  • gRPC ํด๋ผ์ด์–ธํŠธ์— Ruby๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ?
  • gRPC ํด๋ผ์ด์–ธํŠธ์— ๋‹ค๋ฅธ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ?
  • gRPC ์„œ๋ฒ„์— Ruby๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ?
  • gRPC ์„œ๋ฒ„์— ๋‹ค๋ฅธ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ?
  • gRPC ํด๋ผ์ด์–ธํŠธ ์ฝ”๋“œ๋ฅผ ์–ด๋””์—์„œ ํ˜ธ์ถœํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? (์ปจํŠธ๋กค๋Ÿฌ, ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ž‘์—… ๋“ฑ์—์„œ)
  • ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๊ธฐ ์œ„ํ•ด ์–ด๋–ค ์ „๋žต/์ „๋žต์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? (๋‹จํ•ญ, ์–‘๋ฐฉํ–ฅ, ํด๋ผ์ด์–ธํŠธ ์ŠคํŠธ๋ฆฌ๋ฐ, ์„œ๋ฒ„ ์ŠคํŠธ๋ฆฌ๋ฐ)
Copyright ยฉ 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.