본문으로 이동
애플리케이션의 성능을 자동으로 계측하는 APM Python Agent 개발기 / if(kakaoAI)2024
컨퍼런스

애플리케이션의 성능을 자동으로 계측하는 APM Python Agent 개발기 / if(kakaoAI)2024

if kakao 카카오 · YouTube

원문 보기

AI 핵심 요약

카카오 모니터링 솔루션 MATRIX의 Python APM Agent는 애플리케이션 코드를 직접 수정하지 않고 성능 데이터를 수집하도록, 몽키 패치와 `sitecustomize.py`를 활용한 자동 계측 방식으로 개발됐다. 개발 과정에서 Gunicorn의 포크 워커가 부모 프로세스의 전송 스레드를 이어받지 못하는 문제는 UDP로 워커 데이터를 메인 프로세스에 전달해 해결했고, 비동기 환경의 요청별 상태 유실은 `contextvars`로 보완했다. 에이전트는 TCP 전송 큐, 메트릭 집계 스레드, 명령 처리 스레드, UDP 서버로 구성되며, 애플리케이션에 미치는 영향을 줄이기 위해 내부 자료 구조에 크기 제한을 둔다. 발표의 핵심 교훈은 자동 계측 기능만큼 안정성과 호환성 검증이 중요하며, 향후에는 데코레이터 기반 SDK와 테스트 자동화를 강화할 계획이라는 점이다.

  • 파이썬 함수와 모듈을 런타임에 감싸는 몽키 패치로 계측 코드를 삽입하고, `sitecustomize.py`를 이용해 애플리케이션 시작 시 자동 적용할 수 있다.
  • 포크된 워커는 부모 프로세스의 스레드와 TCP 연결을 그대로 사용할 수 없으므로, 워커의 데이터를 UDP로 메인 프로세스에 전달하는 구조를 고려한다.
  • 비동기 작업에서는 스레드 로컬만으로 요청별 상태를 분리하기 어렵다. `contextvars`로 태스크마다 독립적인 컨텍스트를 유지한다.
  • 에이전트가 애플리케이션에 부담을 주지 않도록 큐와 자료 구조에 크기 제한을 두고, 전송 실패 시 데이터가 무한히 쌓이지 않게 한다.
  • 자동 계측 범위를 넓히는 것뿐 아니라, 지원 모듈의 호환성을 검증하는 테스트 자동화와 사용자가 직접 계측할 SDK도 중요하다.

소개

애플리케이션 성능 모니터링과 애플리케이션 성능 측정 코드 추가에 필요한 주요 개념을 설명합니다. 더불어 Python 애플리케이션의 성능을 자동으로 계측하는 Python Agent 개발 과정에서 마주한 도전 과제들을 공유하며, Agent의 아키텍처에 대해 소개합니다. #monitoring #apm 카카오의 모니터링 시스템 MATRIX에서 APM, TRACING 라인업을 개발하고 있는 Allen입니다. OpenTelemetry, Clymene 오픈소스의 Contributor로 활동하고 있습니다. 발표자료 보기 👉 https://speakerdeck.com/kakao/ifkakao24-43 if(kakaoAI)2024에 대한 자세한 정보는 👉 https://if.kakao.com #카카오 #이프카카오 #개발자컨퍼런스 #AI #기술 #개발 #ifkakaoAI2024

비슷한 학습 자료

컨퍼런스 if kakao

숏폼, 휘발성 컨텐츠 서비스인 “카카오톡 펑” 개발 과정을 소개합니다. 성능 최적화, 비디오/이미지 데이터 처리 등을 위한 경험을 공유합니다. #카카오톡펑 #개발기 #최적화전략 #실시간데이터 카카오톡 플랫폼 개발하는 Ocean입니다. 카카오톡 플랫폼을 개발하는 Hoodie입니다. 발표자료 보기 👉 https://speakerdeck.com/kakao/ifkakao24-87 if(kakaoAI)2024에 대한 자세한 정보는 👉 https://if.kakao.com #카카오 #이프카카오 #개발자컨퍼런스 #AI #기술 #개발 #ifkakaoAI2024

웹 개발 백엔드

컨퍼런스 if kakao

대규모 실시간 유저 활동 데이터 서빙 시스템, ActionBase를 소개합니다. #데이터처리 #실시간시스템 #빅데이터 #유저행동분석 #데이터베이스 늘 더 나은 방법을 고민하는 개발자 Emeth입니다. 발표자료 보기 👉 https://speakerdeck.com/kakao/ifkakao24-78 if(kakaoAI)2024에 대한 자세한 정보는 👉 https://if.kakao.com #카카오 #이프카카오 #개발자컨퍼런스 #AI #기술 #개발 #ifkakaoAI2024

데이터베이스

컨퍼런스 if kakao

카카오내비의 카플레이(CarPlay) 및 안드로이드 오토(Android Auto) 개발 과정을 다룹니다. 각 플랫폼에서의 구조적 고민, HUD 및 클러스터 기능 구현 등의 도전 과제와 개발 경험을 소개합니다. #Carplay #Android-Auto #Navigation 카카오내비 클라이언트앱 개발 담당하는 Jin입니다. 카카오내비 iOS 카플레이 개발 담당하는 David입니다. 카카오내비 Android-Auto 개발 담당하는 Beom입니다. 발표자료 보기 👉 https://speakerdeck.com/kakao/ifkakao24-53 if(kakaoAI)2024에 대한 자세한 정보는 👉 https://if.kakao.com #카카오 #이프카카오 #개발자컨퍼런스 #AI #기술 #개발 #ifkakaoAI2024

모바일 앱 개발

컨퍼런스 if kakao

카카오 내에 수많은 데이터에서 원하는 데이터를 빠르게 찾아주는 '0depth 사내봇 개발기'를 공유합니다. #Data #AI #LLM #RAG 카카오 데이터 조직의 Tory입니다. 실용적이고 사용자 친화적인 AI Application을 만드는 것에 관심이 많습니다. 카카오 내에 다양한 AI 프로덕트를 생산하는 Jennie입니다. 발표자료 보기 👉 https://speakerdeck.com/kakao/ifkakao24-27 if(kakaoAI)2024에 대한 자세한 정보는 👉 https://if.kakao.com #카카오 #이프카카오 #개발자컨퍼런스 #AI #기술 #개발 #ifkakaoAI2024

AI에이전트 개발

컨퍼런스 if kakao

카카오클라우드 위에서 AI를 위한 데이터 수집부터 모델 개발, 학습, 튜닝, 서빙까지의 파이프라인 구성과 활용 방안에 대해 소개합니다. #빅데이터 #MLops #AI #Cloud 카카오클라우드에서 Data 및 Machine Learning 플랫폼 PM을 담당하고 있는 Evan입니다. 발표자료 보기 👉 https://speakerdeck.com/kakao/ifkakao24-22 if(kakaoAI)2024에 대한 자세한 정보는 👉 https://if.kakao.com #카카오 #이프카카오 #개발자컨퍼런스 #AI #기술 #개발 #ifkakaoAI2024

데브옵스 · 인프라 딥러닝 · 머신러닝 클라우드

컨퍼런스 if kakao

카카오가 AI 서비스 개발과 운영을 위해 구축한 Kakao AI Platform (KAP)에 대해 소개합니다. KAP은 AI Ops 에 필요한 핵심 기능들(Store, Serving, Training, Agent)을 통합 제공하는 AI 플랫폼입니다. 플랫폼 엔지니어링적 접근으로 KAP을 활용해 AI 기술의 빠른 확산과 업무 생산성을 향상시킨 사례들을 소개합니다. #AI #Platform #Cloud #SaaS #AIOps #ModelOps #Data 카카오에서 AI 플랫폼을 개발하고 있는 Dennis입니다. AI 와 클라우드를 활용한 개발 라이프 사이클 자동화에 관심이 많습니다. 발표자료 보기 👉 https://speakerdeck.com/kakao/ifkakao24-17 if(kakaoAI)2024에 대한 자세한 정보는 👉 https://if.kakao.com #카카오 #이프카카오 #개발자컨퍼런스 #AI #기술 #개발 #ifkakaoAI2024

데브옵스 · 인프라 인공지능 기타