μλ νμΈμ ꡬλ μλ, μ΅μ DevOps μμμ μ 리ν΄μ 곡μ ν΄λ리λ DevOps μ¬νμ μν μμμ§μ λλ€.
μ΄λμ λ²κ½μ΄ κ°κ³ νΈλ₯Έ μμ΄ κ°λν μμ¦, κ³μ μ΄ μμν λ°λκ³ μμμ λλΌλλ°μ.
μ΄λ² μμμ§μμ μ€νμμ€ κ΄μΈ‘μ±(Observability) νλ μμν¬, OpenTelemetryμ λν΄ μκ°ν΄λ³΄κ² μ΅λλ€.
πμμ€ν κ΄μΈ‘ νλ μμν¬, OpenTelemetry
μ€λλ λͺ¨λν°λ§ μ루μ μΌλ‘ λ€μν νλ‘μ νΈκ° μ‘΄μ¬ν©λλ€. μ€νμμ€ μ§μμμ λνμ μΌλ‘ Grafanaμ Kibanaλ±μ΄ μμ£ .
νμ§λ§ μ΄λ¬ν μ루μ λ§λ€ λ°μ΄ν°λ₯Ό μμ§νκ³ μ λ¬λ°λ μ μ© ν΄μ΄ κ°κ° μ‘΄μ¬ν©λλ€. Grafanaλ PrometheusλΌλ ν΄μ, Kibanaλ FilebeatλΌλ ν΄μ μ¬μ©νλ μμ΄μ£ .
(Grafanaλ₯Ό μ¬μ©νλ PLG μ€νκ³Ό Kibanaλ₯Ό μ¬μ©νλ ELK μ€νμ μ°¨μ΄μ μ΄ κΆκΈνμλ€λ©΄ κ΄λ ¨ μ£Όμ λ₯Ό λ€λ€λ μ§λ μμμ§μμ νμΈν΄λ³΄μΈμ.π)
λͺ¨λν°λ§ μμ€ν μ κ°λ°νκ³ μ΄μνλ μ μ₯μμ μλ‘μ΄ μν©μ λ§μΆκ±°λ μμ€ν μ κ°μ νκΈ° μν΄ μ¬λ¬ μ루μ μ μ¬μ©νκΈ°λ νλλ°μ. κ° μ루μ λ§λ€ λ°μ΄ν°λ₯Ό μ λ¬νλ μ μ© ν΄μ μ°κ² λλ©΄ λ³λμ νμ΅μ΄ νμνκ³ , μ΄μλ λμ± μ΄λ €μμ§ μ μμ΅λλ€.
μ΄λ¬ν λ¬Έμ μ μ ν΄κ²°νκΈ° μν΄ λμ¨ κ²μ΄ λ°λ‘, OpenTelemetryμ λλ€.
OpenTelemetryλ μμ€ν μμ λ°μνλ Trace, Metric, Logλ₯Ό ν¬μ°©ν΄μ λ°μ΄ν°λ‘ λ§λ€κ³ λͺ¨λν°λ§ μ루μ μ μ λ¬νκΈ° μν΄ λ§λ€μ΄μ§ νλ μμν¬μ λλ€.
λν OpenTelemetryλ νΉμ μ루μ λ§μ μν΄ κ°λ°λ ν΄μ΄ μλ, λ²μ©μ±μ λͺ©μ μΌλ‘ μ€κ³λμκΈ° λλ¬Έμ OpenTelemetryλ§μΌλ‘ λ€μν λͺ¨λν°λ§ μ루μ μ λͺ¨λν°λ§ λ°μ΄ν°λ₯Ό μ λ¬ κ°λ₯νλ€λ μ₯μ μ΄ μμ΅λλ€.
μ΄λ₯Ό μ루μ λμ κ΄μ μμ μ΄μΌκΈ°νλ©΄, μλ‘μ΄ λͺ¨λν°λ§ μ루μ μ μ¬μ©νκ² λλλΌλ κΈ°μ‘΄μ OpenTelemetryλ₯Ό μ΄μ μ€μΌ κ²½μ° λ³λμ λͺ¨λν°λ§ λ°μ΄ν° μμ§ ν΄μ λν νμ΅μ΄ νμνμ§ μμ κ²μ λλ€.
OpenTelemetryλ λͺ¨λν°λ§ λ°μ΄ν°μ λν νμ€ νλ‘ν μ½, κ·Έλ¦¬κ³ λ€μν νλ‘κ·Έλλ° μΈμ΄λ₯Ό μ§μνλ SDKμ APIκ° μ€λΉλμ΄ μλ λλΆμ μ¬λ¬ λͺ¨λν°λ§ μ루μ μ λν μ§μλΏλ§ μλλΌ, νΉμ μ ν리μΌμ΄μ μμ λ°μνλ λͺ¨λν°λ§ λ°μ΄ν°λ μ§μ μμ§ν μ μλλ‘ μ½λμμ ꡬνμ΄ κ°λ₯ν©λλ€.
λ¬Όλ‘ μμ§ μΌλΆ νλ‘κ·Έλλ° μΈμ΄μ λν΄ SDKλ APIκ° μμ§ μμ ν μ΄μ λ¨κ³μ΄κ³ νλ‘μ νΈκ° μ±μν΄μ§λ λ°μ μκ°μ΄ μ’ λ νμν μ μμ΅λλ€.
νμ§λ§ μ΄λ ν μ루μ μ΄λ νλ‘μ νΈμ μ’ μλμ§ μμ λ²μ©μ±μ μλνλ OpenTelemetryλ μ§κΈλ μ μ λ λ§μ μΈκΈ°λ₯Ό μ»κ³ μμ΅λλ€.
πTrace, Metric, Logλ?
λ§μ§λ§μΌλ‘, λͺ¨λν°λ§μ λμμ΄ λλ λ°μ΄ν°μ μ’ λ₯μ λν΄ μμλ³΄κ² μ΅λλ€. μμμλ μ κΉ μΈκΈλμλ κ²μ²λΌ ν¬κ² Trace, Metric, Logλ‘ λλ μ μλλ°μ.
κ° μ νμ λͺ©μ κ³Ό μμλ μλμ κ°μ΅λλ€.
- Trace
- Traceλ μΆμ μ΄λ μλ―Έλ₯Ό κ°μ§κ³ μμ΅λλ€. νλ‘κ·Έλ¨μ΄λ λ°μ΄ν°μ νλ¦μ λ°λΌ νμΈνκΈ° μν΄ Traceλ₯Ό λͺ¨λν°λ§ν©λλ€.
- μλΉμ€κ°μμ λ°μλ μμ²μ΄ μ΄λ»κ² μ²λ¦¬λμλμ§ κΈ°λ‘λ λ‘κ·Έκ° λνμ μΈ Traceμ λλ€.
- Metric
- Metricμ μλΉμ€κ° λμ μ€μΌ λ λ°μνλ μ¬λ¬ μμΉμ λ³νλ₯Ό μλ―Έν©λλ€. μμ€ν μ κ°μ©μ±μ΄λ νΌν¬λ¨Όμ€λ₯Ό νμΈνκΈ° μν΄ Metricμ λͺ¨λν°λ§ν©λλ€.
- νμ¬ λ¦¬μμ€(CPU, λ©λͺ¨λ¦¬ λ±) μ¬μ©λμ΄λ μ΄λ€ μ΄λ²€νΈμ λ°μ μ λ±μ΄ Metricμ΄λΌκ³ ν μ μμ΅λλ€.
- Log
- Logλ μ ν리μΌμ΄μ μ€ν μ€μ λ°μλλ ν μ€νΈ κΈ°λ‘μ λ§ν©λλ€. μ ν리μΌμ΄μ κ°λ° μ μ¬μ©λ λΌμ΄λΈλ¬λ¦¬/νλ μμν¬μμ λ°μλλ λ‘κ·Έμ κ°λ°μκ° μλν΄μ λ°μνλλ‘ ν λ‘κ·Έ λ±, λ‘κ·Έμ λ²μλ λ§€μ° λμ΅λλ€.
- μ€λ₯(Error)λ κ²½κ³ (Warning), νΉμν κ²½μ°(Exception) λ±μ μ΄λ²€νΈ λ°μ μ μ΄μ λν μ 보λ₯Ό μ μ μλλ‘ κΈ°λ‘ν κ²μ΄ Logμ λλ€.
πλ§μΉλ©°...
μ΄λ² μμμ§μμ λ²μ© κ΄μΈ‘μ± νλ μμν¬ OpenTelemetryμ λν΄ μμλ΄€λλ°μ.
νΉμ μ΄λ² λ΄μ© κ΄λ ¨ν΄μ λ κΆκΈν μ μ΄ μμΌμλ€λ©΄ μλ λ©μΌλ¦¬ λκΈ λ¨κ²¨μ£ΌμΈμ.π
κ·ΈλΌ, λ€μ μμμ§μμ λ³΄λ€ μμ°¨κ³ ν₯λ―Έλ‘μ΄ λ΄μ©μΌλ‘ μ°Ύμλ΅κ² μ΅λλ€.
μ€λλ κ°μ¬ν©λλ€, ꡬλ μλ πΊ
πReferences
λκΈ
μ견μ λ¨κ²¨μ£ΌμΈμ