Datadog Azure Functions 모니터링이란, 호스팅 플랜 전체 지원 확대 정리
한마디로
Datadog이 Linux든 Windows든 Azure Functions 요금제 상관없이 요청 추적과 CPU 병목까지 직접 볼 수 있게 확장했어요
한눈에
Datadog은 인프라, 애플리케이션, 로그를 한곳에서 관측하는 모니터링 플랫폼이에요. 이번에 Serverless Compatibility Layer를 내놓으면서 Azure Functions의 텔레메트리 수집 범위를 Linux와 Windows, 모든 호스팅 플랜으로 넓혔습니다. 그동안 확장 프로그램 방식으로는 Windows 기반 .NET 함수 앱의 Dedicated나 Premium 플랜에서만 데이터를 직접 모을 수 있었는데, 이 공백이 이번 업데이트로 메워진 셈이에요.
AS-IS: 서버리스 환경의 관측성 공백
Azure Functions는 인프라 관리를 추상화해서 배포와 운영을 단순하게 만들어주지만, 배포 후 애플리케이션 내부에서 무슨 일이 일어나는지 파악하기는 오히려 어려워집니다. 에이전트나 확장 프로그램, 사이드카에 의존하는 전통적인 방식은 모든 Azure Functions 호스팅 플랜에서 쓸 수 있는 게 아니라서 종단 간 가시성에 빈틈이 생겼어요. 개발자들은 문제를 해결하려고 서로 다른 소스에서 로그, 지표, 추적 데이터를 일일이 짜맞춰야 했습니다. 특히 Azure Functions on Linux는 확장 프로그램 기반 설치 경로 자체가 제공되지 않아서 이 문제가 더 두드러졌어요.
이번 업데이트: Serverless Compatibility Layer와 확장된 추적
Datadog의 Serverless Compatibility Layer는 .NET, Python, Node.js, Java용 경량 패키지로 함수 코드와 함께 실행됩니다. 시작 시점에 Azure Functions 환경을 감지해서 로컬 집계 지점 역할을 하고, 애플리케이션 텔레메트리 데이터를 모아서 배치로 Datadog에 전송해요. 지원 런타임 전반에서 분산 추적이 정식 출시(GA)됐고, 트레이서를 초기화하면 Datadog이 지원 프레임워크를 자동으로 계측하고 함수 안팎으로 트레이스 컨텍스트를 전파해서 요청 전체의 종단 간 뷰를 구성합니다. Service Map은 함수와 다운스트림 의존성 사이의 관계를 발견해서 모든 연결의 지연시간과 오류율을 보여주고요, Real User Monitoring 세션과 백엔드 트레이스도 연결됩니다. 사용자 행동이 백엔드 함수를 호출하면 Datadog Browser SDK가 요청에 트레이스 헤더를 주입하고, 그 결과 생긴 백엔드 트레이스를 원래의 RUM 세션과 연결해서 세션 ID, 현재 뷰, 사용자 정보 같은 맥락까지 붙여줍니다.
비동기 메시징 환경에서는 요청 컨텍스트가 큐나 이벤트 스트림으로 넘어간 메시지를 따라가지 못해서 추적 연속성이 끊길 수 있는데요, Datadog은 함수가 메시지를 발행할 때 Azure Service Bus와 Azure Event Hubs의 메시지 메타데이터에 트레이스 컨텍스트를 주입하고 다른 함수가 이를 소비할 때 다시 추출합니다. 생산자와 소비자 작업이 서로 다른 트레이스에 속할 경우 스팬 링크로 둘의 관계를 이어줍니다. Azure Cosmos DB의 CRUD 작업도 추론된 스팬으로 분산 트레이스에 함께 나타나서 자동 계측된 함수 스팬과 나란히 보이고, 이를 통해 지연이 데이터베이스 쿼리, 메시지 처리, 애플리케이션 코드 중 어디서 쌓이는지 구분할 수 있어요.
실무 적용 포인트: CPU 지표와 프로파일러
Azure는 자체 CPU 지표를 1분 이상 간격으로 업데이트해서 짧은 CPU 급증을 잡아내기 어려운데, Datadog의 향상된 메트릭은 함수 앱의 CPU 사용량을 1초 단위로 샘플링하고 10초마다 분포 지표를 발행합니다. 이 지표는 azure.functions.enhanced.* 메트릭 접두사를 사용하고 Serverless Compatibility Layer를 최신 버전으로 업데이트하면 활성화할 수 있어요. CPU 사용률이 포화 상태에 가까워질 때 팀에 알리는 모니터를 만들어서 사용자에게 영향이 가기 전에 성능 문제를 미리 조사할 수 있습니다. 여기에 더해 Python과 Node.js용 Continuous Profiler가 프리뷰 단계로 제공되는데, DD_PROFILING_ENABLED=true만 설정하면 코드 변경 없이 프로파일 수집이 시작됩니다. 실행 중인 함수에서 주기적으로 콜 스택을 캡처해서 플레임 그래프로 집계해주니 CPU나 I/O 오버헤드를 줄일 코드 변경 우선순위를 잡는 데 활용하면 됩니다.
체크리스트로 정리하면 다음과 같아요.
- 함수 앱이 Linux인지 Windows인지, 어떤 호스팅 플랜인지부터 확인한다
- Serverless Compatibility Layer 최신 버전으로 업데이트해서 향상된 메트릭을 켠다
- Service Bus, Event Hubs를 쓴다면 스팬 링크로 트레이스 연속성이 유지되는지 점검한다
- Cosmos DB 사용 시 추론된 스팬으로 지연 원인을 구분한다
- Python, Node.js 환경이면 프리뷰 단계인 Continuous Profiler를 시범 적용해본다
자주 묻는 질문
sentry datadog 비교하면 어떤 차이가 있나요
원문에는 Sentry와의 직접 비교 내용이 없어요. 다만 이번 발표만 보면 Datadog은 분산 추적, RUM 연동, 인프라 지표, 코드 수준 프로파일링까지 한 플랫폼에서 묶어 제공하는 점이 특징입니다.
datadog 란 무엇인가요
인프라, 애플리케이션 성능, 로그, 사용자 경험 데이터를 한곳에서 모니터링하는 관측성 플랫폼이에요. 이번 업데이트에서는 Azure Functions 서버리스 환경의 텔레메트리 수집과 분산 추적, CPU 지표, 프로파일링 기능을 확장했습니다.
Azure Functions 모든 호스팅 플랜에서 다 되나요
네, Serverless Compatibility Layer 덕분에 Linux와 Windows, 호스팅 플랜과 상관없이 .NET, Python, Node.js, Java 함수 앱에서 텔레메트리 데이터를 직접 수집할 수 있어요. 기존에는 Windows 기반 .NET 함수 앱의 Dedicated나 Premium 플랜에서만 확장 프로그램 방식이 가능했습니다.
Continuous Profiler는 바로 쓸 수 있나요
Python과 Node.js에 한해 프리뷰 단계로 제공됩니다. DD_PROFILING_ENABLED=true 환경변수만 설정하면 코드 변경 없이 프로파일 수집이 시작돼요.
에디터 노트
확장 프로그램 설치가 안 되던 Linux 기반 서버리스 환경까지 직접 텔레메트리 수집이 가능해졌다는 점은 실무적으로 꽤 실용적인 변화예요. 다만 Continuous Profiler는 아직 프리뷰 단계라 프로덕션 의존도를 높이기 전에 안정성부터 확인해봐야 합니다.
참고 출처 | 원문 보기
태그
- datadog
- 데이터독
- azure-functions
- 애저 펑션스
- 서버리스-모니터링
- 서버리스 모니터링
- 분산-추적
- 분산 추적
이 노트는 자동 검증을 거쳐 발행되었습니다. 오류 제보는 편집팀이 즉시 확인합니다.
관련 마테크
- Datadog Bits Chat이란, Slack에서 장애 조사부터 코드 수정까지 하는 법Datadog Bits AI가 Slack 채널 안에서 장애 원인을 조사하고 수정 코드까지 만들어줘요
- Datadog AI-native SAST란, LLM 앱 취약점 개발 단계서 잡는 법Datadog이 프롬프트 주입 같은 LLM 앱 특유의 보안 취약점을 코드 리뷰 단계에서 미리 찾아주는 AI 기반 정적 분석 도구를 내놨어요
- Datadog Azure 연동 secretless authentication이란, 시크릿 관리 없애는 방법Datadog가 Azure 연동에서 클라이언트 시크릿 대신 신원 기반 인증을 쓰는 secretless authentication을 도입했어요