관찰 가능성(소프트웨어)
Observability (software)분산 시스템에서 관찰 가능성은 프로그램의 실행, 모듈의 내부 상태 및 [1][2]구성 요소 간 통신에 대한 데이터를 수집하는 기능입니다.관찰 가능성을 향상시키기 위해 소프트웨어 엔지니어는 광범위한 로깅 및 추적 기술을 사용하여 원격 측정 정보를 수집하고 분석 및 사용할 수 있는 도구를 사용합니다.
어원, 용어 및 정의
이 용어는 시스템의 "관측 가능성"이 출력으로부터 상태를 얼마나 잘 결정할 수 있는지를 측정하는 제어 이론에서 차용되었습니다.마찬가지로 소프트웨어 관찰 가능성은 획득한 원격 측정(메트릭, 로그, 추적, 프로파일링)에서 시스템의 상태를 얼마나 잘 이해할 수 있는지 측정합니다.
관찰 가능성의 정의는 공급업체에 따라 다릅니다.
새로운 코드를 발송할 필요 없이 시스템이 아무리 신기하거나 이상하더라도 상태를 얼마나 잘 이해하고 설명할 수 있는지를 나타내는 척도 [...
— "Observability Engineering" (2022)[3]
분산된 애플리케이션에서 실행되는 하드웨어 및 네트워크와 함께 지속적인 성능 데이터 스트림을 집계, 상관 관계 분석하기 위한 소프트웨어 도구 및 관행
— IBM[4]
로그, 메트릭 및 추적과 같이 시스템이 생성하는 데이터를 기반으로 시스템의 현재 상태를 측정하는 기능
— dynatrace[5]
관찰 가능성은 팀이 시스템을 능동적으로 디버그할 수 있도록 하는 도구 또는 기술 솔루션입니다.관측 가능성은 미리 정의되지 않은 특성 및 패턴을 탐색하는 것을 기반으로 합니다.
— Google[6]
모든 메트릭, 이벤트, 로그 및 추적에 인텔리전스를 능동적으로 수집, 시각화 및 적용하여 복잡한 디지털 시스템의 동작을 파악할 수 있습니다.
— New Relic [7]
이 용어는 종종 그 이름의 O11y (여기서 11은 단어의 첫 글자와 마지막 글자 사이의 글자 수를 나타냅니다)라고 불립니다.이것은 i18n [8]및 L10n과 같은 다른 컴퓨터 과학 약어와 유사합니다.
관측 가능성 대 모니터링
관찰 가능성과 모니터링은 때때로 [9]상호 교환적으로 사용됩니다.툴링, 상용 서비스 및 관행이 복잡해짐에 따라 새로운 툴을 기존 툴과 차별화하기 위해 "모니터링"이 관찰 가능성으로 재브랜드화되었습니다.
이 용어는 사전 정의된 원격 [6]측정 세트를 사용하여 시스템을 모니터링하고 모니터링되는 시스템을 관찰할 [10]수 있다는 점에서 일반적으로 대조됩니다.
메이저 등은 모니터링 도구만 있는 엔지니어링 팀은 전문 지식(선배)에 의존하게 되는 반면, 관찰 도구를 가진 팀은 탐색적 분석([3]호기심)에 의존하게 된다고 제안합니다.
원격 측정 유형
관측 가능성은 메트릭, 로그 및 [5][6][11]추적이라는 세 가지 주요 원격 측정 데이터 유형에 의존합니다.이를 종종 "관측 [12]가능성의 기둥"이라고 합니다.
측정지표
응용프로그램 개발자는 소프트웨어가 출시되기 전에 어떤 종류의 메트릭으로 소프트웨어를 계측할지 선택합니다.일반적인 메트릭의 예는 다음과 같습니다.
- 초당 HTTP 요청 수입니다.
- 총 쿼리 실패 횟수
- 데이터베이스 크기(바이트);
- 마지막 가비지 수집 이후의 시간(초)입니다.
모니터링 도구는 일반적으로 특정 메트릭 값이 설정된 임계값을 초과할 때 경고를 내보내도록 구성됩니다.임계값은 정상 작동 조건 및 경험에 대한 지식을 기반으로 설정됩니다.
메트릭에는 제한이 있습니다. 이전에 알 수 없는 문제가 발생하면 새 코드를 발송하지 않고 새 메트릭을 추가할 수 없습니다.게다가, 그들의 카디널리티는 원격 측정 데이터의 크기를 빠르게 폭발시킬 수 있습니다.
로그
![]() | 이 섹션은 비어 있습니다.추가하면 도움이 됩니다. (2023년 3월) |
흔적
![]() | 이 섹션은 비어 있습니다.추가하면 도움이 됩니다. (2023년 3월) |
지속적인 프로파일링
연속 프로파일링은 응용 프로그램이 [13]리소스를 사용하는 방식을 정확하게 결정하는 데 사용되는 또 다른 원격 측정 유형입니다.
"관측 가능성의 기둥"
메트릭, 로그 및 추적은 가장 일반적으로 관측 가능성의 [12]기둥으로 나열됩니다.메이저 등은 관측 가능성의 기둥이 높은 카디널리티, 고차원성 및 [3]탐색성이라고 제안합니다.
참고 항목
- 애플리케이션 성능 관리(APM)
- 데브옵스
- 사이트 안정성 엔지니어링(SRE)
- 사회공학적 체계
서지학
- Boten, Alex; Majors, Charity (2022). Cloud-Native Observability with OpenTelemetry. Packt Publishing. ISBN 978-1-80107-190-1. OCLC 1314053525.
- Majors, Charity (2022). Observability engineering : achieving production excellence. Liz Fong-Jones, George Miranda (1st ed.). Sebastopol, CA: O'Reilly Media, Inc. ISBN 9781492076445. OCLC 1315555871.
- Sridharan, Cindy (2018). Distributed systems observability : a guide to building robust systems (1st ed.). Sebastopol, CA: O'Reilly Media, Inc. ISBN 978-1-4920-3342-4. OCLC 1044741317.
- Hausenblas, Michael (2023). Cloud Observability in Action. Manning. ISBN 9781633439597. OCLC 1359045370.
레퍼런스
- ^ Fellows, Geoff (1998). "High-Performance Client/Server: A Guide to Building and Managing Robust Distributed Systems". Internet Research. 8 (5). doi:10.1108/intr.1998.17208eaf.007. ISSN 1066-2243.
- ^ Cantrill, Bryan (2006). "Hidden in Plain Sight: Improvements in the observability of software can help you diagnose your most crippling performance problems". Queue. 4 (1): 26–36. doi:10.1145/1117389.1117401. ISSN 1542-7730. S2CID 14505819.
- ^ a b c Majors, Charity (2022). Observability engineering : achieving production excellence. Liz Fong-Jones, George Miranda (1st ed.). Sebastopol, CA. ISBN 9781492076445. OCLC 1315555871.
- ^ "What is observability". IBM. Retrieved 9 March 2023.
- ^ a b Livens, Jay (October 2021). "What is observability?". dynatrace. Retrieved 9 March 2023.
- ^ a b c "DevOps measurement: Monitoring and observability". Google Cloud. Retrieved 9 March 2023.
- ^ Reinholds, Amy. "What is observability?". New Relic. Retrieved 9 March 2023.
- ^ "How Are Structured Logs Different from Events?". 26 June 2018.
- ^ Hadfield, Ally (29 June 2022). "Observability vs. Monitoring: What's The Difference in DevOps?". Instana. Retrieved 15 March 2023.
- ^ Kidd, Chrissy. "Monitoring, Observability & Telemetry: Everything You Need To Know for Observable Work". Retrieved 15 March 2023.
- ^ "What is Observability? A Beginner's Guide". Splunk. Retrieved 9 March 2023.
- ^ a b Sridharan, Cindy (2018). "Chapter 4. The Three Pillars of Observability". Distributed systems observability : a guide to building robust systems (1st ed.). Sebastopol, CA: O'Reilly Media, Inc. ISBN 978-1-4920-3342-4. OCLC 1044741317.
- ^ "What is continuous profiling?". Cloud Native Computing Foundation. 31 May 2022. Retrieved 9 March 2023.