blog

MSA 환경에서의 버그 트래킹

날짜: 2025-02-24

목록으로


MSA 환경에서 버그 트래킹 및 모니터링을 구축하려면 분산 시스템의 특성을 고려한 모니터링 체계를 구성해야 한다. 주요 구성 요소와 유의할 점을 설명해줄게.


🔍 1. MSA 환경에서 버그 트래킹 및 모니터링 구성 방법

1️⃣ 로그 수집 및 분석

📌 추천 기술 스택


2️⃣ 실시간 메트릭 및 알람 설정

📌 추천 기술 스택


3️⃣ 예외 및 에러 트래킹

📌 추천 기술 스택


⚠️ 2. 유의할 점

✅ 1️⃣ Trace ID 관리 (분산 트레이싱 필수)

📌 예시 (Django DRF)

from django.utils.deprecation import MiddlewareMixin
import uuid

class TraceMiddleware(MiddlewareMixin):
    def process_request(self, request):
        request.trace_id = request.headers.get('X-Trace-ID', str(uuid.uuid4()))

    def process_response(self, request, response):
        response['X-Trace-ID'] = getattr(request, 'trace_id', 'N/A')
        return response

✅ 2️⃣ 로그 레벨 전략

📌 예시 (Django)

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'file': {
            'level': 'ERROR',
            'class': 'logging.FileHandler',
            'filename': '/var/log/app/error.log',
        },
    },
    'loggers': {
        'django': {
            'handlers': ['file'],
            'level': 'ERROR',
            'propagate': True,
        },
    },
}

✅ 3️⃣ 서비스 헬스 체크 & 장애 대응

📌 헬스 체크 엔드포인트 예제 (Django)

from django.http import JsonResponse

def health_check(request):
    return JsonResponse({"status": "ok"}, status=200)

🚀 결론

  1. 로그 중앙화 (Loki, Elasticsearch, CloudWatch Logs) → Trace ID 포함
  2. 실시간 모니터링 & 알람 (Prometheus, Datadog, Alertmanager) → 에러 감지
  3. 분산 트레이싱 (OpenTelemetry, Jaeger, AWS X-Ray) → 서비스 흐름 추적
  4. 예외 추적 (Sentry, Rollbar) → 자동 이슈 생성
  5. 헬스 체크 & 장애 대응 (K8s, ASG, ECS) → 자동 복구

목록으로