오늘 뉴렐릭은 Pixie를 New Relic One의 일부로 사용할 수 있게 되었다고 발표했습니다. 쿠버네티스 툴 세트에 대한 중요한 업그레이드의 일환인 Pixie는, 쿠버네티스 환경에서 발생하는 모니터링 간극을 제거하고, 개발자가 더 빠르게 디버깅할 수 있도록 코드 레벨 인사이트를 제공하는 유일한 솔루션입니다.

Pixie 소개

Pixie는 개발자들 사이에서 주목받고 있는 차세대 오픈소스 옵저버벌리티(observability) 툴로, 쿠버네티스 애플리케이션에 대한 탁월한 가시성을 제공합니다.

Pixie는 다음 사항을 자동으로 수집합니다.

  • 애플리케이션 프로필(기능 레벨 세분화 포함)
  • 전체 요청 본문(HTTP, Redis, SQL 및 기타)
  • CPU, I/O, 메모리 사용량 등의 시스템 메트릭
  • 쿠버네티스와 관련된 포드(pod) 및 서비스의 상태
  • 더 많은 데이터

Pixie는 최첨단 자동 계측 기술에 기반하기 때문에, 몇 달이 아닌 몇 분 안에 계측을 시작할 수 있습니다. 코드 변경이나 재배포는 필요하지 않습니다.

2020년 10월 Pixie 팀이 뉴렐릭에 합류한 이후로, 뉴렐릭은 자동화된 텔레메트리 및 고급 쿠버네티스 모니터링의 모든 이점을 뉴렐릭 환경에 적용하는 작업에 매진해 왔습니다. 그리고 Pixie의 모든 기능을 New Relic One UI에 내장해 오늘부로 공식 출시(GA) 했습니다.

쿠버네티스 모니터링 문제 해결

뉴렐릭은 모든 엔지니어가 쿠버네티스 환경에서 처리해야 하는 복잡한 문제들을 해결하기 위해 지속적으로 노력하고 있습니다. 쿠버네티스 환경은 특성상 끊임없이 변화하기 때문에 모니터링의 사각지대가 발생하며, 일반적인 쿠버네티스 모니터링 솔루션은 개발자들을 위해 최적화되지 않았습니다. Pixie는 이 두 가지 문제를 모두 해결할 수 있습니다. Pixie로 쿠버네티스 디버깅을 업그레이드하면 다음과 같은 혜택을 얻을 수 있습니다.

코딩이 필요없는 즉각적인 기준 지표에 대한 가시성

운영 환경에 문제가 발생했지만, 기존 계측 툴로는 문제를 디버깅할 수 없는 상황에 처해 본 경험이 있으실 겁니다. 제한된 가시성으로 인해 개발자는 문제 해결에 시간을 소비하느라, 정작 새로운 기능을 개발하는 데는 시간을 할애할 수 없습니다.

이제, 문제를 해결할 수 있는 쉬운 방법이 생겼습니다. Pixie는 eBPF를 사용해, 쿠버네티스 애플리케이션이 실행되는 즉시 자동으로 계측을 시작합니다. Pixie를 사용하면, 서비스에 대한 최신 텔레메트리 데이터를 확보하기 위해 코드를 재배포하거나 수동으로 계측할 필요가 없습니다. Pixie는 언어에 구애받지 않기 때문에, 계측에 대한 전문 지식도 필요하지 않습니다.

더 빠른 디버깅을 위한 코드 레벨 인사이트

프로메테우스(Prometheus) 같은 놀라운 툴을 비롯해 대부분의 쿠버네티스 모니터링 솔루션이 주로 운영 팀을 위해 설계되었다는 것은 잘 알려진 사실입니다. 이러한 툴들은 클러스터와 그 구성 요소의 상태에 중점을 두기 때문에, 개발자에게 유용한 정보는 부족합니다. 개발자를 위해 특별히 설계된 Pixie는 코드 수준의 인사이트를 제공해 성능 병목 현상을 더 빠르게 식별할 수 있습니다.

Pixie와의 통합은 자동으로 다음을 제공합니다.

  • 클러스터의 모든 포드에 대한 Flame 그래프
  • 애플리케이션 성능을 위한 기능 레벨 세분화
  • 샘플링 없이 전체 요청 본문, 레이턴시 및 오류 파악

성능을 상호 연관시켜 주는 애플리케이션 토폴로지 뷰

New Relic One UI 경험을 지원하는 Pixie 데이터를 사용하면, 노드, 포드, 컨테이너 및 애플리케이션이 서로 어떻게 영향을 미치는지 빠르게 이해할 수 있습니다. Pixie와의 통합이 클러스터에 대한 총체적인 뷰를 제공하기 때문에, 무슨 일이 일어나고 있는지 즉각적으로 맥락을 파악할 수 있습니다.

애플리케이션 및 인프라 레벨의 행동을 모두 원활하게 세부 분석할 수 있으므로, 애플리케이션 변경이 인프라에 미치는 영향은 물론, 인프라 변경이 애플리케이션 변경에 미치는 영향도 상호 연관시킬 수 있습니다.

동영상: 코드 수준 인사이트를 통한 디버깅 가속화

코드 업데이트나 샘플링 데이터 없이 코드 레벨의 인사이트를 가질 수 있습니다. 소스 코드 수정없이 서비스로 드릴다운하고, 서비스 맵, 또는 플레임그래프 및 새로운 요청을 사용하여 디버깅합니다.