TECH ARTICLE

제니퍼 AI를 활용한 실시간 성능 관리의 새로운 가능성 탐색 2

제니퍼 AI를 활용한 실시간 성능 관리의 새로운 가능성 탐색 1편 잘 읽어보셨나요?

오늘은 제니퍼 APM의 생성형 AI 기반 신기능인 제니퍼 챗봇과 대화형 분석, 제니퍼 엑스 뷰 패턴 인식, 애플리케이션 인사이트 기능을 소개해 드립니다. 실시간으로 시스템을 분석하고, 이상 징후를 자동으로 감지하는 제니퍼 AI를 활용한 실시간 시스템 성능 관리 방법! 지금 바로 확인해 보세요~

트랜잭션 분석

X뷰 차트 소개

이러한 매트릭 분석은 시스템 전반의 성능을 다루며, 반면 트랜잭션 분석은 개별 사용자 경험을 다룹니다. X뷰 차트는 제니퍼 트랜잭션 분석의 핵심입니다. X뷰에서 사용자의 요청 하나는 점 하나로 표시되며, x축은 사용자 요청이 완료된 시점을, y축은 그 요청을 수행하는 데 걸린 시간을 표시합니다.

X뷰 상단에 점이 많이 분포되어 있다면 지연되는 트랜잭션이 많다는 의미이며, 이는 성능 개선의 여지가 있음을 시사합니다. 반면 X뷰 하단에 점이 고르게 분포되어 있다면 시스템이 안정적으로 트래픽을 처리하고 있는 상황으로 해석할 수 있습니다. 또한 이 X뷰 차트는 개별 트랜잭션 분석으로 이어지는 진입점 역할을 합니다.

X뷰에서 트랜잭션을 선택하면 타임라인, 플레임 그래프, 콜트리와 같은 개별 트랜잭션 분석 도구에 접근할 수 있습니다. X뷰는 매우 강력한 분석 도구이지만, 제니퍼를 처음 사용하거나 이 도메인에 익숙하지 않은 사용자들은 X뷰 차트를 해석하는 데 어려움을 겪을 수 있습니다.

X뷰 패턴 인식 기능

그 이유는 산점도에서 보이는 점 모양과 시스템의 트래픽 처리 현황을 연관 짓는 것이 제니퍼 외에서는 다소 드문 일이기 때문입니다. 이러한 간극을 좁히고자 X뷰 패턴 인식 기능을 개발하였습니다. X뷰 패턴 인식 기능은 현재 X뷰 상태를 분석하여 시스템 상황의 정상 여부를 판단하고, 비정상적인 경우 그 원인을 추정하여 X뷰 차트를 해석할 수 있는 방안을 제공합니다.

지연 트랜잭션이나 에러 트랜잭션이 다수 발생하면 현재 상황을 비정상적인 것으로 인식합니다.

비정상 상황이 감지되면 X뷰에서 현재 상황이 파도치기 패턴이나 폭포수 패턴과 같은 X뷰의 일반적인 장애 패턴과 일치하는지 확인합니다. 또한 사용자 정의 패턴을 등록한 경우, 이를 통해 과거 시스템이 겪었던 상황과 현재 상황의 유사성을 비교할 수 있습니다.

X뷰 차트의 모양이 측정 패턴을 따른다는 것을 이해하면 그에 따른 증상이나 원인을 파악할 수 있어 문제 해결에 매우 유용합니다. 예를 들어, 파도치기 패턴의 경우 트래픽의 증감에 따라 응답 시간이 민감하게 반응하는 상태를 의미합니다. 트래픽이 증가해도 시스템은 이를 지연 없이 안정적으로 처리해야 합니다. 그러나 트래픽 증가에 따라 응답 시간이 지연되는 상황에서 병목 지점을 찾아 해결하지 못한다면, 트래픽이 일정 임계치를 초과했을 때 더욱 심각한 장애 상황으로 발전할 수 있습니다

X뷰 패턴인식 기능은 딥러닝 모델을 학습하여 개발되었습니다. 매우 높은 정확도를 달성할 수 있었으며, 이러한 연산을 서버가 아닌 프론트엔드에서 수행하도록 함으로써 추가적인 서버 자원을 전혀 요구하지 않으면서도 매우 빠른 지연 시간을 확보할 수 있었습니다. X뷰 차트는 1초마다 갱신되는 실시간 차트이므로 매 순간마다 이 패턴의 일치율을 계산하는 것이 매우 중요합니다.

딥러닝 온 브라우저 구조는 그 독창성과 유용성을 인정받아 특허로 등재되어 있습니다. 일반적으로 이러한 패턴이나 카테고리 인식 모델을 학습할 때는 고정된 카테고리에 대해 학습하는 경우가 대부분입니다. 예를 들어, 입력된 사진이 강아지 사진인지 고양이 사진인지 구분하는 인식 모델을 만드는 것을 생각해 볼 수 있습니다.

입력된 이미지가 강아지는 0, 고양이면 1을 응답하는 방식으로 학습할 수 있습니다. 그러나 이러한 전통적인 구조만으로는 사용자 정의 패턴과 같은 확장성을 얻기 어렵습니다. 따라서 우리는 퓨샷 러닝이라는 방법을 사용하여 이 모델을 학습시켰습니다. 퓨샷 러닝에서 이 모델은 하나의 데이터를 입력받아 하나의 카테고리를 출력하는 것이 아니라, 동시에 두 개의 데이터를 입력받아 그 두 데이터 사이의 유사도를 반환하는 방식으로 학습하게 됩니다.

예를 들어, 현재 상황과 사용자 정의 패턴의 경우 그 모양이 눈에 띄게 다르므로 모델은 그만큼 낮은 숫자를 반환하게 됩니다. 폭포수 패턴과도 마찬가지입니다. 반면에 파도치기 패턴과는 유의미한 유사성이 발견되어 모델이 56%라는 유의미하게 높은 숫자를 반환합니다.

처음에는 기본적으로 제공되는 샘플 패턴과 함께 X뷰 사용법을 익히다가, X뷰에 익숙해진 후에는 사용자 정의 패턴을 적극적으로 활용하여 각 서비스 상황에 맞는 정밀한 모니터링을 수행할 수 있습니다. 이러한 유연한 구조 덕분에 가능한 또 다른 기능은 바로 유사 애플리케이션 검색입니다.

유사 애플리케이션 검색

유사 애플리케이션 검색은 응답 패턴이 유사한 다른 애플리케이션을 찾는 기능입니다. 응답 패턴이 유사한 애플리케이션들은 트랜잭션의 세부 사항도 매우 유사한 경우가 많습니다.

따라서 같은 문제나 증상을 공유할 확률이 상당히 높습니다. 시스템 운영 중 특정 애플리케이션에서 문제가 발생했을 때, 이 애플리케이션 검색 기능을 활용하면 문제의 영향 범위나 원인을 파악하는 데 도움을 받을 수 있습니다.

애플리케이션 인사이트

다음으로 소개할 기능은 애플리케이션 인사이트 기능입니다. 애플리케이션 인사이트는 앞서 소개한 메트릭 분석과 트랜잭션 분석을 포괄하는 광범위한 분석을 지원하는 기능입니다. 이 기능은 선택된 도메인이나 인스턴스에 대해 최근 10분간의 실시간 데이터를 활용하여 문제를 자동으로 감지합니다.

여기서 문제는 트랜잭션에서 발생하는 에러와 매트릭에서 발생하는 어노말리로 구분됩니다. 각각의 에러와 어노말리는 분 단위로 그룹화되어 히트맵 차트로 표시되므로, 에러의 발생 추이나 빈도를 한눈에 확인할 수 있습니다. 기존에는 운영자가 직접 트랜잭션이나 매트릭과 같은 데이터를 분석하여 문제를 찾아내고 이를 시각화해야 했으나, 이제는 일종의 전문가 시스템인 애플리케이션 인사이트의 도움을 받아 더욱 신속하게 분석을 수행할 수 있게 되었습니다.

애플리케이션 인사이트 히트맵에서 문제를 선택하면 화면의 요약 카드를 통해 더 상세한 정보를 확인할 수 있습니다. 요약 카드에는 “트랜잭션의 응답 시간이 너무 깁니다”라는 간단한 설명과 함께 “트랜잭션을 분석하거나 제한 시간을 조정해 보세요”라는 추천 행동이 표시됩니다.

해당 트랜잭션의 속도가 중요하지 않은 경우, 화면 이동 없이 이 화면에서 직접 설정 값을 수정하여 에러 발생을 방지할 수 있습니다. 반면, AI가 감지한 에러가 실제로 해결이 필요한 문제라면 트랜잭션 분석을 통해 추가적인 원인을 파악해야 합니다.

배드 리스폰스 타임 에러가 발생하고 있으므로 이 트랜잭션의 지연 지점을 파악할 필요가 있습니다. 스택 트레이스를 분석하기 위해 스택 트레이스 플라이트 레코더 기능을 사용해 보겠습니다.

분석 결과, 슬립 함수가 전체 응답 시간 중 가장 큰 비중을 차지하고 있음을 확인할 수 있습니다. 프로세스가 슬립 상태에 빠진 원인을 파악하기 위해 호출 스택을 따라 더 자세한 분석을 진행하겠습니다. 이 슬립은 DBCP에서 발생하고 있으며, DBCP 키워드로 검색한 결과 전체 응답 시간의 약 74%를 차지하여 응답 지연의 주요 원인인 것으로 확인되었습니다.

톰캣의 DBCP(Database Connection Pool)는 데이터베이스 관련 작업이 시스템 트랜잭션 지연의 주요 원인으로 보입니다.

이 스택 트레이스를 더 분석하면 코드의 어떤 부분에서 데이터베이스 쿼리가 발생하고 있는지, 각 쿼리에서 어떤 요청으로 인해 속도가 저하되는지 파악할 수 있습니다. 이를 통해 해당 코드를 수정하거나 데이터베이스의 사양을 조정하여 문제를 해결할 수 있습니다.

이와 같이 애플리케이션 인사이트는 문제를 발견하여 제시하고, 그 문제 해결의 경로를 제공하였습니다. 데이터 분석에서 일반적으로 가장 시간이 많이 소요되는 작업은 관련 데이터를 한곳에 집중시키는 것입니다. AI의 지원을 받아 이러한 분석의 초기 단계를 조금이라도 신속하게 수행할 수 있다면, 그만큼 문제 파악과 해결을 더욱 빠르게 진행하고 장애 시간을 단축하는 데 기여할 것으로 기대됩니다.

생성형 AI 기반 신기능

다음으로 소개할 내용은 생성형 AI를 활용한 신기능입니다. 이 생성형 AI는 현재 큰 주목을 받고 있습니다. 생성형 AI가 APM과 결합된다면 어떤 가능성이 열릴 수 있을까요? 컴퓨터가 숫자를 자연스럽게 처리하듯이 인간의 언어를 자연스럽게 다룰 수 있다는 사실이 최근에 밝혀졌으며, 저희를 포함한 많은 이들이 이 새로운 능력으로 어떤 일을 할 수 있을지 관심을 가지고 있습니다.

우리도 아직 그 정답을 알지 못하고 있습니다. 다만 연구하고 배우는 과정에서 여러분이 유용하게 사용할 수 있을 만한 서비스와 기능을 개발하였기에 소개해 드리고자 합니다. 제니퍼 챗봇과 대화형 분석이 그것입니다. 제니퍼 도움말 챗봇은 24시간 언제든지 제니퍼 사용 중에 생긴 궁금증을 해결해 주는 서비스입니다.

이 챗봇은 최신 LLM 기술을 활용하여 사용자의 질문 의도를 파악하고 그에 맞는 답변을 생성합니다. 챗봇 사용자는 제니퍼의 복잡한 기능이나 설정에 대한 이해도를 높이는 과정에서 매뉴얼이나 기술 문서를 일일이 살펴볼 필요 없이 즉각적으로 원하는 정보를 얻을 수 있습니다.

예를 들어 제니퍼 봇에 “웹플럭스 환경에서 비동기 모니터링은 어떻게 하나요”라고 질문하면 이 봇은 제니퍼에서 오픈 텔레메트리를 활성화하여 비동기 모니터링을 설정하는 방법을 안내합니다. 또한, 관련된 도움말 문서로 이동하는 링크도 제공하여 사용자가 추가적인 사항을 확인할 수 있도록 합니다.

챗봇이 정확한 답변을 할 수 있는 비결은 맞춤 RAG 시스템입니다. RAG(Retrieval Augmented Generation)는 일반적인 지식을 가진 LLM에 도메인 특화 자료를 전달하여 답변의 정확도를 높이는 기법입니다. 제니퍼 챗봇은 제니퍼의 매뉴얼 문서를 활용하고 있습니다. 또한, 관련 문서를 찾는 검색 시스템을 자체 용도에 맞게 구현하여 사용하고 있습니다. 이로 인해 OpenAI GPTs나 아마존의 Bedrock과 같은 범용 솔루션을 사용하는 경우에 비해 더 높은 품질의 답변을 얻을 수 있었습니다.

제니퍼 챗봇

이 제니퍼 챗봇은 현재 APM 사용자들에게 공개되어 있습니다. 지난 1년간 운영되면서 100명 이상의 사용자가 제기한 만 개 이상의 질문에 답변하며 그 역할을 충실히 수행하고 있습니다. 만약 이 자리에 계신 여러분 중 제니퍼 APM을 사용하고 계신 고객이 계시다면, 계정 발급을 요청하여 모니터링에 도움을 받아보시는 것이 좋을 것 같습니다.

대화형 분석

여기에 이어지는 대화형 분석은 한층 담대한 시도입니다. 대화형 분석의 목표는 서비스 운영자가 복잡한 쿼리 언어를 사용할 필요 없이 일상적인 자연어로 요청을 하면 그에 맞는 데이터를 제공하거나 분석 결과를 제시하는 것입니다. 예를 들어, 인스턴스를 선택하고 “해당 인스턴스의 응답 시간과 에러 개수를 차트로 그려 주세요”라고 요청하면 AI가 이에 맞는 차트를 생성하게 됩니다.

데이터의 출처가 되는 API를 함께 제공하여 추가 검증이나 추가적인 분석을 진행할 수 있도록 하였습니다. 이 예시에서는 응답 시간과 에러 개수가 함께 증가하는 모습이 관찰됩니다. 더 자세한 숫자를 확인하기 위해 테이블 형태로 같은 데이터를 요청해 보겠습니다.

정확히 동일한 데이터를 요청했기 때문에 동일한 API가 한 번 더 호출되는 것을 확인할 수 있습니다. 요청한 대로 시간별 응답 시간과 에러 개수가 테이블 형태로 표현되어 있습니다.

오전 9시에서 11시 사이에 응답 시간과 에러 개수가 크게 증가하는 정황이 확인되었습니다. 이 시간대에 어떤 일이 있었는지 파악할 필요가 있습니다. AI가 추천 질문을 생성하였으며, 해당 시간대의 주요 트랜잭션 목록을 확인해 볼 것을 제안하고 있습니다. AI는 초기에 메트릭 분석을 통해 시스템의 전반적인 이상 상황을 파악하고, 이어서 트랜잭션 분석을 통해 구체적인 원인을 찾아가는 이 흐름을 잘 이해하고 있는 것으로 보입니다.

AI가 제안한 바에 따라 주요 트랜잭션 목록을 요청해 보겠습니다. 이번에는 다른 API를 호출한 것을 확인할 수 있습니다. AI가 주요 트랜잭션 목록을 요약해서 보여주니 문제 상황이 한눈에 들어오는 것 같습니다. 먼저 응답 시간이 오래 걸려 배드 리스폰스 타임 에러가 발생하는 트랜잭션들이 있고, 그 외에 응답 시간은 더 빨랐지만 서비스 익셉션이 발생하고 있는 트랜잭션도 보입니다.

최소 두 개 이상의 오류가 발생한 상황이며, 기타 트랜잭션들의 응답 시간이 20초 가량으로 상당히 지연되고 있어 이에 대한 해결책을 모색해야 할 것으로 보입니다. 이러한 문제들이 모두 하나의 애플리케이션에서 발생하고 있습니다. 현재는 문제 상황을 재현하기 위해 의도적으로 개발한 애플리케이션이지만, 실제 상황이라면 이 애플리케이션의 이름을 통해 어떤 비즈니스 로직에서 문제가 발생하고 있는지 추측해 볼 수 있을 것입니다.

대화형 분석은 이러한 다재다능한 특성으로 인해 데이터 추출 및 표시뿐만 아니라 오류 분석에도 매우 효과적입니다. 트랜잭션 분석 중 오류가 발생한 트랜잭션을 발견한 경우, 즉시 대화형 분석을 통해 해당 오류에 대한 질의를 수행할 수 있습니다.

대화형 분석은 LLM이 보유한 일반적인 IT 지식에 더하여 트랜잭션 데이터의 스택 트레이스나 에러 메시지와 같은 정보를 활용하여 문제를 진단하고 해결 방법을 제시할 수 있습니다. 예를 들어, 배드 리스폰스 타임 에러가 발생한 트랜잭션에 대해 질문하면 AI가 “응답 속도 저하의 원인은 SQL 쿼리에 있다”라고 진단해 줍니다.

프로파일 데이터로부터 SQL 실행에 소요된 정확한 시간을 추출하여 제공할 수 있습니다. 또한, LLM이 보유한 일반적인 IT 지식을 활용하여 SQL 쿼리 최적화 기법을 소개하고 있습니다. 이러한 기능은 알림 창에서 대화형 분석으로 즉시 이동하여 동일하게 수행할 수 있습니다.

이러한 기능은 급박한 상황에서 더욱 유용할 것입니다. 서비스 운영자들이 보다 신속하게 문제 상황을 파악하고 유효한 조치를 찾아낼 수 있다면, 그만큼 장애 시간을 단축하고 운영을 효율화하는 데 도움이 될 것입니다.

현재의 한계와 전망

생성형 AI와 APM의 결합으로 다양한 혁신적 아이디어가 창출될 수 있습니다. 그러나 현재 이러한 기능들은 다소 제한적으로 제공되고 있습니다. 가장 큰 한계점은 대화형 분석과 제니퍼 챗봇이 우수한 결과물을 제공하기 위해 최상급 LLM에 의존하고 있다는 점입니다.

이는 OpenAI 등의 외부 API 호출이 필요하다는 것을 의미합니다. 따라서 제니퍼 챗봇의 경우 현재 APM과 별도의 서비스로 제공되고 있으며, 대화형 분석은 외부 API 호출이 가능한 경우에만 사용할 수 있습니다.

마무리

오늘은 시스템의 복잡성 증가가 운영비용의 증가로 이어질 수 있다는 점을 시작으로, 제니퍼와 AI를 활용하여 이러한 복잡성을 어떻게 관리할 수 있는지 설명하였습니다. 주지하시다시피, 앞으로도 시스템의 복잡성은 급격히 증가할 것으로 전망됩니다.

서버를 클라우드에 구축하고 쿠버네티스로 리소스를 관리하며 클라우드 네이티브 아키텍처에 맞춰 시스템을 개발하는 일이 점점 더 증가하고 있습니다. 이는 하나의 시스템을 여러 개의 작은 시스템으로, 그리고 하나의 거대한 조직을 여러 개의 작은 조직으로 분할하여 개별 시스템과 조직을 더욱 단순화하고 유지보수를 용이하게 하려는 추세입니다.

덕분에 이전에는 구현하기 힘들었던 더 큰 규모의 시스템을 구현할 수 있게 되었다는 장점이 있습니다. 반면에 시스템이 대형화되고 복잡해짐에 따라 전체적인 구조를 파악하기가 점점 더 어려워지고 있습니다. 저희를 포함한 모니터링 도구들은 이러한 변화하는 환경에서 적응하기 위해 지속적으로 발전하고 있습니다.

지금까지 제니퍼소프트의 AI 적용 사례를 소개해 드렸습니다. 앞으로도 더욱 발전된 APM을 제공하기 위해 노력하겠습니다. 감사합니다.

Next

Contact Us

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

  • Chris
  • Irene

메일을 보냈습니다.

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