Monitoring

πŸ”­λͺ¨λ‹ˆν„°λ§ 데이터 μˆ˜μ§‘κ³Ό 전달을 ν•˜λ‚˜μ˜ 툴둜? - OpenTelemetry

λ‹€μ–‘ν•œ λͺ¨λ‹ˆν„°λ§ νˆ΄μ— 데이터λ₯Ό 전달할 수 μžˆλŠ” OpenTelemetry ν”„λ ˆμž„μ›Œν¬λ₯Ό μ†Œκ°œν•©λ‹ˆλ‹€.

2024.04.22 | 쑰회 357 |
0
|

DevOps 여행을 μœ„ν•œ μ†Œμ‹μ§€

DevOps, ν΄λΌμš°λ“œ, IT 기술 κ΄€λ ¨ μ΅œμ‹  μ†Œμ‹κ³Ό 정보λ₯Ό μ •λ¦¬ν•΄μ„œ μ£Ό 1회 μ΄λ©”μΌλ‘œ μ „ν•΄λ“œλ¦½λ‹ˆλ‹€πŸ˜Ί

μ•ˆλ…•ν•˜μ„Έμš” κ΅¬λ…μžλ‹˜, μ΅œμ‹  DevOps μ†Œμ‹μ„ μ •λ¦¬ν•΄μ„œ κ³΅μœ ν•΄λ“œλ¦¬λŠ” DevOps 여행을 μœ„ν•œ μ†Œμ‹μ§€μž…λ‹ˆλ‹€.

μ–΄λŠμƒˆ λ²šκ½ƒμ΄ κ°€κ³  ν‘Έλ₯Έ 잎이 κ°€λ“ν•œ μš”μ¦˜, κ³„μ ˆμ΄ μ„œμ„œνžˆ λ°”λ€Œκ³  μžˆμŒμ„ λŠλΌλŠ”λ°μš”.

이번 μ†Œμ‹μ§€μ—μ„  μ˜€ν”ˆμ†ŒμŠ€ κ΄€μΈ‘μ„±(Observability) ν”„λ ˆμž„μ›Œν¬, OpenTelemetry에 λŒ€ν•΄ μ†Œκ°œν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

 

πŸ”Žμ‹œμŠ€ν…œ κ΄€μΈ‘ ν”„λ ˆμž„μ›Œν¬, OpenTelemetry

OpenTelemetryλŠ” νŠΉμ • μ†”λ£¨μ…˜μ— μ’…μ†λ˜μ§€ μ•ŠλŠ”(Open) λͺ¨λ‹ˆν„°λ§(Telemetry)을 ν‘œλ°©ν•©λ‹ˆλ‹€.
OpenTelemetryλŠ” νŠΉμ • μ†”λ£¨μ…˜μ— μ’…μ†λ˜μ§€ μ•ŠλŠ”(Open) λͺ¨λ‹ˆν„°λ§(Telemetry)을 ν‘œλ°©ν•©λ‹ˆλ‹€.

μ˜€λŠ˜λ‚  λͺ¨λ‹ˆν„°λ§ μ†”λ£¨μ…˜μœΌλ‘œ λ‹€μ–‘ν•œ ν”„λ‘œμ νŠΈκ°€ μ‘΄μž¬ν•©λ‹ˆλ‹€. μ˜€ν”ˆμ†ŒμŠ€ μ§„μ˜μ—μ„  λŒ€ν‘œμ μœΌλ‘œ Grafana와 Kibana등이 있죠.  

ν•˜μ§€λ§Œ μ΄λŸ¬ν•œ μ†”λ£¨μ…˜λ§ˆλ‹€ 데이터λ₯Ό μˆ˜μ§‘ν•˜κ³  μ „λ‹¬λ°›λŠ” μ „μš© 툴이 각각 μ‘΄μž¬ν•©λ‹ˆλ‹€. GrafanaλŠ” PrometheusλΌλŠ” νˆ΄μ„, KibanaλŠ” FilebeatλΌλŠ” νˆ΄μ„ μ‚¬μš©ν•˜λŠ” 식이죠.

(Grafanaλ₯Ό μ‚¬μš©ν•˜λŠ” PLG μŠ€νƒκ³Ό Kibanaλ₯Ό μ‚¬μš©ν•˜λŠ” ELK μŠ€νƒμ˜ 차이점이 κΆκΈˆν•˜μ‹œλ‹€λ©΄ κ΄€λ ¨ 주제λ₯Ό λ‹€λ€˜λ˜ μ§€λ‚œ μ†Œμ‹μ§€μ—μ„œ ν™•μΈν•΄λ³΄μ„Έμš”.πŸ˜‰)

λͺ¨λ‹ˆν„°λ§ μ‹œμŠ€ν…œμ„ κ°œλ°œν•˜κ³  μš΄μ˜ν•˜λŠ” μž…μž₯에선 μƒˆλ‘œμš΄ 상황에 λ§žμΆ”κ±°λ‚˜ μ‹œμŠ€ν…œμ„ κ°œμ„ ν•˜κΈ° μœ„ν•΄ μ—¬λŸ¬ μ†”λ£¨μ…˜μ„ μ‚¬μš©ν•˜κΈ°λ„ ν•˜λŠ”λ°μš”. 각 μ†”λ£¨μ…˜λ§ˆλ‹€ 데이터λ₯Ό μ „λ‹¬ν•˜λŠ” μ „μš© νˆ΄μ„ μ“°κ²Œ 되면 λ³„λ„μ˜ ν•™μŠ΅μ΄ ν•„μš”ν•˜κ³ , μš΄μ˜λ„ λ”μš± μ–΄λ €μ›Œμ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.

μ΄λŸ¬ν•œ λ¬Έμ œμ μ„ ν•΄κ²°ν•˜κΈ° μœ„ν•΄ λ‚˜μ˜¨ 것이 λ°”λ‘œ, OpenTelemetryμž…λ‹ˆλ‹€.

 

OpenTelemetryλŠ” λ‹€μ–‘ν•œ λͺ¨λ‹ˆν„°λ§ μ†”λ£¨μ…˜μ„ μ§€μ›ν•©λ‹ˆλ‹€.
OpenTelemetryλŠ” λ‹€μ–‘ν•œ λͺ¨λ‹ˆν„°λ§ μ†”λ£¨μ…˜μ„ μ§€μ›ν•©λ‹ˆλ‹€.

OpenTelemetryλŠ” μ‹œμŠ€ν…œμ—μ„œ λ°œμƒν•˜λŠ” Trace, Metric, Logλ₯Ό ν¬μ°©ν•΄μ„œ λ°μ΄ν„°λ‘œ λ§Œλ“€κ³  λͺ¨λ‹ˆν„°λ§ μ†”λ£¨μ…˜μ— μ „λ‹¬ν•˜κΈ° μœ„ν•΄ λ§Œλ“€μ–΄μ§„ ν”„λ ˆμž„μ›Œν¬μž…λ‹ˆλ‹€.

λ˜ν•œ OpenTelemetryλŠ” νŠΉμ • μ†”λ£¨μ…˜λ§Œμ„ μœ„ν•΄ 개발된 툴이 μ•„λ‹Œ, λ²”μš©μ„±μ„ λͺ©μ μœΌλ‘œ μ„€κ³„λ˜μ—ˆκΈ° λ•Œλ¬Έμ— OpenTelemetry만으둜 λ‹€μ–‘ν•œ λͺ¨λ‹ˆν„°λ§ μ†”λ£¨μ…˜μ— λͺ¨λ‹ˆν„°λ§ 데이터λ₯Ό 전달 κ°€λŠ₯ν•˜λ‹€λŠ” μž₯점이 μžˆμŠ΅λ‹ˆλ‹€.

이λ₯Ό μ†”λ£¨μ…˜ λ„μž… κ΄€μ μ—μ„œ μ΄μ•ΌκΈ°ν•˜λ©΄, μƒˆλ‘œμš΄ λͺ¨λ‹ˆν„°λ§ μ†”λ£¨μ…˜μ„ μ‚¬μš©ν•˜κ²Œ λ˜λ”λΌλ„ 기쑴에 OpenTelemetryλ₯Ό 운영 쀑일 경우 λ³„λ„μ˜ λͺ¨λ‹ˆν„°λ§ 데이터 μˆ˜μ§‘ νˆ΄μ— λŒ€ν•œ ν•™μŠ΅μ΄ ν•„μš”ν•˜μ§€ μ•Šμ€ κ²ƒμž…λ‹ˆλ‹€.

OpenTelemetryλŠ” λͺ¨λ‹ˆν„°λ§ 데이터에 λŒ€ν•œ ν‘œμ€€ ν”„λ‘œν† μ½œ, 그리고 λ‹€μ–‘ν•œ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ₯Ό μ§€μ›ν•˜λŠ” SDK와 APIκ°€ μ€€λΉ„λ˜μ–΄ μžˆλŠ” 덕뢄에 μ—¬λŸ¬ λͺ¨λ‹ˆν„°λ§ μ†”λ£¨μ…˜μ— λŒ€ν•œ μ§€μ›λΏλ§Œ μ•„λ‹ˆλΌ, νŠΉμ • μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ λ°œμƒν•˜λŠ” λͺ¨λ‹ˆν„°λ§ 데이터도 직접 μˆ˜μ§‘ν•  수 μžˆλ„λ‘ μ½”λ“œμƒμ˜ κ΅¬ν˜„μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€.

λ¬Όλ‘  아직 일뢀 ν”„λ‘œκ·Έλž˜λ° 언어에 λŒ€ν•΄ SDKλ‚˜ APIκ°€ 아직 μ•ˆμ •ν™” 이전 단계이고 ν”„λ‘œμ νŠΈκ°€ μ„±μˆ™ν•΄μ§€λŠ” 데엔 μ‹œκ°„μ΄ μ’€ 더 ν•„μš”ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

ν•˜μ§€λ§Œ μ–΄λŠ ν•œ μ†”λ£¨μ…˜μ΄λ‚˜ ν”„λ‘œμ νŠΈμ— μ’…μ†λ˜μ§€ μ•Šμ•„ λ²”μš©μ„±μ„ μžλž‘ν•˜λŠ” OpenTelemetryλŠ” μ§€κΈˆλ„ 점점 더 λ§Žμ€ 인기λ₯Ό μ–»κ³  μžˆμŠ΅λ‹ˆλ‹€.

 

πŸ”†Trace, Metric, Logλž€?

λͺ¨λ‹ˆν„°λ§ λ°μ΄ν„°λŠ” 크게 Trace, Metric, Log둜 λ‚˜λ‰©λ‹ˆλ‹€.
λͺ¨λ‹ˆν„°λ§ λ°μ΄ν„°λŠ” 크게 Trace, Metric, Log둜 λ‚˜λ‰©λ‹ˆλ‹€.

λ§ˆμ§€λ§‰μœΌλ‘œ, λͺ¨λ‹ˆν„°λ§μ˜ λŒ€μƒμ΄ λ˜λŠ” λ°μ΄ν„°μ˜ μ’…λ₯˜μ— λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. μœ„μ—μ„œλ„ 잠깐 μ–ΈκΈ‰λ˜μ—ˆλ˜ κ²ƒμ²˜λŸΌ 크게 Trace, Metric, Log둜 λ‚˜λˆŒ 수 μžˆλŠ”λ°μš”.

각 μœ ν˜•μ˜ λͺ©μ κ³Ό μ˜ˆμ‹œλŠ” μ•„λž˜μ™€ κ°™μŠ΅λ‹ˆλ‹€.

  • Trace
    • TraceλŠ” μΆ”μ μ΄λž€ 의미λ₯Ό 가지고 μžˆμŠ΅λ‹ˆλ‹€. ν”„λ‘œκ·Έλž¨μ΄λ‚˜ λ°μ΄ν„°μ˜ 흐름을 따라 ν™•μΈν•˜κΈ° μœ„ν•΄ Traceλ₯Ό λͺ¨λ‹ˆν„°λ§ν•©λ‹ˆλ‹€.
    • μ„œλΉ„μŠ€κ°„μ—μ„œ λ°œμƒλœ μš”μ²­μ΄ μ–΄λ–»κ²Œ μ²˜λ¦¬λ˜μ—ˆλŠ”μ§€ 기둝된 λ‘œκ·Έκ°€ λŒ€ν‘œμ μΈ Traceμž…λ‹ˆλ‹€.
  • Metric
    • Metric은 μ„œλΉ„μŠ€κ°€ λ™μž‘ 쀑일 λ•Œ λ°œμƒν•˜λŠ” μ—¬λŸ¬ 수치의 λ³€ν™”λ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€. μ‹œμŠ€ν…œμ˜ κ°€μš©μ„±μ΄λ‚˜ 퍼포먼슀λ₯Ό ν™•μΈν•˜κΈ° μœ„ν•΄ Metric을 λͺ¨λ‹ˆν„°λ§ν•©λ‹ˆλ‹€.
    • ν˜„μž¬ λ¦¬μ†ŒμŠ€(CPU, λ©”λͺ¨λ¦¬ λ“±) μ‚¬μš©λŸ‰μ΄λ‚˜ μ–΄λ–€ 이벀트의 λ°œμƒ 수 등이 Metric이라고 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • Log
    • LogλŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ‹€ν–‰ 쀑에 λ°œμƒλ˜λŠ” ν…μŠ€νŠΈ 기둝을 λ§ν•©λ‹ˆλ‹€. μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 개발 μ‹œ μ‚¬μš©λœ 라이브러리/ν”„λ ˆμž„μ›Œν¬μ—μ„œ λ°œμƒλ˜λŠ” λ‘œκ·Έμ™€ κ°œλ°œμžκ°€ μ˜λ„ν•΄μ„œ λ°œμƒν•˜λ„λ‘ ν•œ 둜그 λ“±, 둜그의 λ²”μœ„λŠ” 맀우 λ„“μŠ΅λ‹ˆλ‹€.
    • 였λ₯˜(Error)λ‚˜ κ²½κ³ (Warning), νŠΉμˆ˜ν•œ 경우(Exception) λ“±μ˜ 이벀트 λ°œμƒ μ‹œ 이에 λŒ€ν•œ 정보λ₯Ό μ•Œ 수 μžˆλ„λ‘ κΈ°λ‘ν•œ 것이 Logμž…λ‹ˆλ‹€.  

 

πŸ”­λ§ˆμΉ˜λ©°...

이번 μ†Œμ‹μ§€μ—μ„  λ²”μš© κ΄€μΈ‘μ„± ν”„λ ˆμž„μ›Œν¬ OpenTelemetry에 λŒ€ν•΄ μ•Œμ•„λ΄€λŠ”λ°μš”.

ν˜Ήμ‹œ 이번 λ‚΄μš© κ΄€λ ¨ν•΄μ„œ 더 κΆκΈˆν•œ 점이 μžˆμœΌμ‹œλ‹€λ©΄ μ•„λž˜ 메일리 λŒ“κΈ€ λ‚¨κ²¨μ£Όμ„Έμš”.πŸ˜€

그럼, λ‹€μŒ μ†Œμ‹μ§€μ—μ„œ 보닀 μ•Œμ°¨κ³  ν₯미둜운 λ‚΄μš©μœΌλ‘œ μ°Ύμ•„λ΅™κ² μŠ΅λ‹ˆλ‹€.

μ˜€λŠ˜λ„ κ°μ‚¬ν•©λ‹ˆλ‹€, κ΅¬λ…μžλ‹˜ 😺

 

πŸ”—References

 

λ‹€κ°€μ˜¬ λ‰΄μŠ€λ ˆν„°κ°€ κΆκΈˆν•˜μ‹ κ°€μš”?

μ§€κΈˆ κ΅¬λ…ν•΄μ„œ μƒˆλ‘œμš΄ λ ˆν„°λ₯Ό λ°›μ•„λ³΄μ„Έμš”

βœ‰οΈ

이번 λ‰΄μŠ€λ ˆν„° μ–΄λ– μ…¨λ‚˜μš”?

DevOps 여행을 μœ„ν•œ μ†Œμ‹μ§€ λ‹˜μ—κ²Œ β˜•οΈ 컀피와 βœ‰οΈ μͺ½μ§€λ₯Ό λ³΄λ‚΄λ³΄μ„Έμš”!

λŒ“κΈ€

μ˜κ²¬μ„ λ‚¨κ²¨μ£Όμ„Έμš”

확인
의견이 μžˆμœΌμ‹ κ°€μš”? 제일 λ¨Όμ € λŒ“κΈ€μ„ λ‹¬μ•„λ³΄μ„Έμš” !
Β© 2024 DevOps 여행을 μœ„ν•œ μ†Œμ‹μ§€

DevOps, ν΄λΌμš°λ“œ, IT 기술 κ΄€λ ¨ μ΅œμ‹  μ†Œμ‹κ³Ό 정보λ₯Ό μ •λ¦¬ν•΄μ„œ μ£Ό 1회 μ΄λ©”μΌλ‘œ μ „ν•΄λ“œλ¦½λ‹ˆλ‹€πŸ˜Ί

λ‰΄μŠ€λ ˆν„° 문의eduukulelekim@gmail.com

자주 λ¬»λŠ” 질문 μ„œλΉ„μŠ€ μ†Œκ°œμ„œ 였λ₯˜ 및 κΈ°λŠ₯ κ΄€λ ¨ 제보

μ„œλΉ„μŠ€ 이용 문의admin@team.maily.so

메일리 μ‚¬μ—…μž 정보

메일리 (λŒ€ν‘œμž: μ΄ν•œκ²°) | μ‚¬μ—…μžλ²ˆν˜Έ: 717-47-00705 | μ„œμšΈ μ„œμ΄ˆκ΅¬ κ°•λ‚¨λŒ€λ‘œ53κΈΈ 8, 8μΈ΅ 11-7호

μ΄μš©μ•½κ΄€ | κ°œμΈμ •λ³΄μ²˜λ¦¬λ°©μΉ¨ | μ •κΈ°κ²°μ œ μ΄μš©μ•½κ΄€