TECH ARTICLE

오픈텔레메트리란 무엇일까요?

🤓 Open Telemetry 는 Open 과 Telemetry 의 조합어로 말 그대로 모든 것이 열려있는 개방적인 모니터링 도구라고 이해하면 쉽습니다. 개별 모니터링 제품 벤더가 내부적으로 개발하는 폐쇄적인 방식이 아닌 오픈소스로 개방되어 수많은 개발자들이 만들어가는 모니터링 도구입니다.

국내외를 비롯해 수많은 모니터링 관련 제품 회사가 있습니다. 모니터링 제품의 춘추전국 시대라고 해도 과언이 아닙니다. 제니퍼도 그 중 하나이지요. 각자가 다른 방식을 이용하여 구현하고 제품의 기능 추가와 버그 수정은 그 벤더만이 할 수 있습니다.

제니퍼의 경우 과거 다음과 같은 사례가 있었습니다. (물론 약간의 각색이 포함된 예입니다.)

🧑 제니퍼3 버전을 사용 중인 K: 새로운 APM 땡땡땡이 나왔다던데, 우리도 그거 한 번 써보면 안 될까?

👩 제니퍼 3 버전을 사용 중인 Y: 오!! 좋아요. 그럼 현재 우리가 사용 중인 제니퍼 에이전트를 제거하고 땡땡땡 에이전트를 설치할게요.

Y는 새로운 에이전트를 설치하고 서비스를 재시작했습니다. 그런데 말입니다. 재시작된 서비스는 정상적으로 동작하지 않았고 수 많은 에러가 발생했습니다. 단지 새로운 모니터링 도구를 적용하고 재시작했을 뿐인데 말이죠. 장애의 이유가 무엇이었을까요?

무엇이 문제였을까요?

당시 제니퍼3 버전을 이용하여 모니터링하기 위해서는 사용자의 프로그램에 제니퍼의 코드를 넣어야 했습니다. 물론 사용자의 프로그램 일부를 수정해야만 했고, 이 코드는 제니퍼 에이전트가 있어야 정상적으로 동작할 수 있었습니다.

그런데 제니퍼 에이전트를 제거하고 나니, 사용자의 프로그램에 기록된 제니퍼의 코드가 실행될 수 없어 서비스가 정상적으로 동작하지 않았던 것입니다.

🤓 제니퍼 에이전트를 그대로 두었다면, 별다른 문제는 일어나지 않았겠죠?

국내에서 사용 중인 거의 모든 전자 제품은 220V를 이용합니다. 또한 220V 를 위한 전기 콘센트는 어디를 가든 동일한 크기, 간격을 갖는 2개의 구멍이 있습니다. 기업은 이 표준 규격에만 맞추어 여러 가지 제품을 생산하면 됩니다. 전기가 어떻게 생산되어 전자제품으로 유입되는지는 신경 쓸 필요가 없는 것이지요.

🤓 위에서 예로든 제니퍼 고객사에서 사용 중인 에이전트가 이와 같은 표준을 가진 전기와 같은 존재라면 어땠을까요?

저장소만 바꾸면 사용자가 원하는 새로운 모니터링 도구를 이용할 수 있었을 것입니다. 특히 사내 모니터링 도구를 직접 만들어 쓰는 환경에서는 이러한 니즈가 더욱 클 수밖에 없습니다. 계속해서 변화하는 시스템에 맞추어 한정된 인원으로 계속해서 모니터링 에이전트를 유지보수하고 새롭게 만드는 것은 굉장히 어렵고 괴로운 일이기 때문입니다. (이것만을 하는 개발자의 입장은 아무래도.. 😂)

해외 다수의 기업 역시 이와 동일한 문제를 겪고 있었습니다. 이에 따라 모니터링의 기반이 되는 에이전트 부분을 오픈소스로 만들어 표준화하고자 하는 시도를 하게 됩니다.

번거롭기만 한 모니터링 코드를 넣는 행위를 한 번만 하고 나면 어떠한 벤더의 모니터링 도구든 자유롭게 이용할 수 있게 하자.

🤓 이것이 오픈텔레메트리의 시작이라고 할 수 있습니다.

모니터링 제품 벤더에게 있어 오픈텔레메트리란?

오픈텔레메트리는 오픈소스이며, 모니터링 가능한 플랫폼도 제니퍼가 제공하는 범위보다 훨씬 넓습니다.


자바, 닷넷, PHP, Python 은 기본이고 기타 등등 지원하는 대상이 굉장히 많습니다.

🤓 이렇게 다양한 언어들로 개발된 애플리케이션이 오픈소스로 모니터링 할 수 있다니 정말 놀랍습니다. 전 세계 유수의 개발자들이 여기에 기능을 추가하고 개선하고 있으니.. 사용자는 그저 가져다 쓰기만 하면 되는 것이죠.

🤓 그렇다면 오픈텔레메트리의 세계가 확장되는 것은 상용 제품을 만드는 기업에게 위기로 다가올까요?

아니요, 그렇게 생각하지 않습니다. 저는 오히려 오픈텔레메트리스의 확장이 기회가 될 수 있다고 생각하는데요, 그 이유는 다음과 같은 오픈텔레메트리의 구성 요소를 보면 바로 이해할 수 있습니다.

오픈텔레메트리의 구성요소

  • 데이터를 수집하는 에이전트
  • 에이전트의 데이터를 받아서 가공, 다른 곳으로 전송하는 컬렉터

음?🤓 그런데 구성 요소를 잘 보면 데이터를 저장하거나 표현하는 역할을 담당하는 파트가 없습니다. 왜 그럴까요?

그것은 오픈텔레메트리가 가지는 데이터 수집의 표준을 만들고자 하는 이념(비전) 때문입니다. 오픈텔레메트리는 에이전트를 이용하여 데이터를 수집하고 컬렉터로 간단한 처리(걸러내기, 모아처리하기, 일부 데이터를 더 집어넣기) 를 한 뒤, 데이터를 저장하고자 하는 목적지로 전송만 담당합니다. 그리고 그 외의 영역인 데이터의 통계, 시각화와 같은 다양한 특색화 된 구현은 수 많은 모니터링 벤더에게 의도적으로(!) 위임을 합니다.

의도적으로 전체를 커버하는 것보다는 선택과 집중을 통해 모니터링의 근간이 되는 부분의 표준만 만들어간다는 것이지요. 🤓

과거 모니터링 제품은 데이터를 수집하는 에이전트의 기술이 핵심 기술이었다면 이제는 데이터를 어떻게 표현하고 이것을 이용해 문제의 원인 파악을 쉽게 해 줄 수 방법을 제공하는 것이 더 중요해지고 있습니다. 데이터의 수집 기술의 장벽이 낮아진 만큼 더 많은 모니터링 제품들이 우후죽순으로 만들어지고 있습니다.

구글에서 opentelemetry 로 검색을 하면 제일 상단에 오픈텔레메트리의 공식 홈페이지가 아닌 다이나트레이스의 링크 페이지가 제일 위에 보여집니다.

세계적인 거대 모니터링이 기업인 다이나트레이스조차 오픈텔레메트리에 갖는 관심을 간접적으로 알 수 있는 부분입니다. (그리고 실제로 다이나트레이스는 오픈텔레메트리의 Top Contributor 입니다.)

국내의 경우는 어떨까요? 필자가 파악하기론 국내에서는 아직 큰 영향을 일으키지는 못하고 있는 것으로 파악하고 있습니다. 아무래도 모니터링의 특성상 직접적으로 에이전트를 설치하고 운영할 때 발생할 수 있는 여러 문제에 대한 위험성, 책임 등으로부터 자유로울 수 없기에, 꺼려질 수 밖에 없을 것이라 생각합니다.

제니퍼의 경우에도 대부분의 고객이 미션 크리틱한 업무를 모니터링하는 기업이 주이기 때문에 좀 더 신중할 수밖에 없으리라 생각합니다. 늘 그렇듯 새로운 개념을 도입하는 데에는 리스크가 따르기 마련이니까요.

하지만, 네이버, 라인, 카카오와 같은 직접 모니터링을 하고자 하는 의지가 있는 기업들은 추후 충분히 사용할 가능성이 높습니다. 오픈텔레메트리 기반으로 수집한 데이터를 오픈소스로 모니터링하는 이들에게 그 제품보다 나은 모니터링 방법을 제공한다면 이들 또한 제니퍼의 고객으로 만들 수 있는 한 가지 수단이 될 수 있을 것입니다.

오픈텔레메트리를 기반으로 하는 모니터링 제품 소개

ElasticSearch, Jaeger 등의 오픈소스를 그대로 내장하고 일부 자신들만의 특징적인 기능들을 구현하여 서비스를 하는 모습을 보이고 있습니다.

  • https://logz.io/ : 매트릭 모니터링을 기본으로 제공하고 나머지는 여러 오픈소스를 묶어 서비스로 제공 (UI 를 아예 통채로 집어넣었네요), Log 모니터링 – Open Search (Elastic Search 의 무료버전), Tracing – Jaeger

개발자에게 있어 오픈텔레메트리란?

🤓과거 필자는 APM 개발을 처음 참여하게 되었을 때 여러 사용자가 작성한 애플리케이션의 동작을 보여주는 에이전트 개발에 큰 호기심과 꿈을 가졌습니다. 하지만 막상 다양한 고객사가 사용 중인 에이전트를 홀로 유지보수 하는 시점이 오니 두려움이 앞서기도 했습니다. 혹시 내가 넣은 잘못된 코드 한 줄이 고객에게 금전적인 피해로 이어질 수 있다는 생각 때문에, 개발은 최대한 영향이 없는 선에서 보수적인 방식으로 이어질 수밖에 없었고 변화하는 환경에 대한 대응이 쉽지 않았습니다.

🤓 한편 수많은 개발자들이 참여하고 있는 오픈소스 오픈텔레메트리의 에이전트는 어떨까요?다양한 개발자들을 통해 검증되었음은 물론이고 내가 원하는 기능이 없다면 직접 기여할 수도 있습니다. 또한 이러한 기여의 과정에는 세계의 실력있는 개발자들의 코드리뷰가 필연적으로 따르게 되어 있습니다. (자바 에이전트 깃헙 프로젝트 경우 별이 1300개, 기여자가 161 명에 이릅니다.)

국내와 달리 오픈텔레메트리는 Go, .Net, JavaScript 에이전트가 자바 에이전트보다 수요가 많은 듯 합니다. (프로젝트에 달린 별의 개수 기준..^^)

  • 개선과 버그 수정이 쉴 새 없이 이루어지는 안정된 도구를 이용할 수 있으면서 🤩
  • 내가 원하는 기능을 넣을 수 있고 😋
  • 코드 리뷰를 통해 실력 향상에 도움을 받을 수 있고 ☺️
  • 전 세계에서 사용 중인 도구에 내 이름을 한 줄 올릴 수 있고!! 😎

무려 1석 4조의 효과를 얻을 수 있다고 생각합니다. 제품을 개발하면서 여러가지 오픈소스들을 이용하곤 하는데 그 과정에서 종종 필요한 기능이 없을 때 기여를 하고 버그가 있으면 수정하는 경험을 했습니다. 자신이 개발한 부분이 유명한 깃헙 프로젝트에 포함되고 자신의 이름 한 줄 올라간다는 것은 굉장한 성취감을 주었습니다. (하지만 저 스스로는 모니터링 도구를 개발하는 벤더에 속한 개발자이기에 굳이 오픈텔레메트리에 기여는 하지 않고 있습니다. 😅 반성… )

저와 같은 평범한 개발자조차 이렇게 기여를 할 수 있는데 세계적으로 이름난 개발자들이 기여하는 오픈소스 에이전트는 발전하지 않을 수 없을 것입니다. 오픈텔레메트리는 소프트웨어 개발을 사랑하고 즐기는 개발자에게 무한한 기회의 장이 될 것입니다.

제니퍼가 쉽게 설명하는 알아두면 쓸모있는 모니터링 잡학사전_ 오픈텔레메트리 편 많이 기대해 주세요. 😘

Next

Contact Us

안녕하세요? 제니퍼소프트입니다.
기술 문의의 경우 질문자의 회사/이름/연락처를 본문에 기술해 주셔야만 원할한 지원이 가능합니다.
보내주신 문의 사항을 검토하여 빠른 시일 내에 답변해 드리겠습니다.

  • Chris
  • Irene

메일을 보냈습니다.

메일 전송이 완료되었습니다.
빠른 시일 내에 답변드리겠습니다.
감사합니다.
제니퍼소프트 웹사이트는 쿠키를 사용합니다. 쿠키에 대한 자세한 정보 및 삭제 방법은 제니퍼소프트의 개인정보처리방침을 참고하시기 바라며 본 사이트를 계속해서 이용하는 것은 제니퍼소프트의 쿠키 사용에 동의함을 의미합니다.