서비스

최종 수정: 2026. 1. 16.

서비스

APM(Application Performance Monitoring) 서비스 모니터링 기능을 사용하는 방법을 안내합니다.


개요

서비스 모니터링은 APM Agent (eBPF)가 자동으로 감지한 애플리케이션 서비스의 성능을 추적합니다.

주요 기능

기능 설명
RED 메트릭 Rate, Errors, Duration 자동 수집
서비스 목록 모든 서비스 한눈에 확인
엔드포인트 분석 API별 성능 분석
에러 추적 서비스별 에러 현황
의존성 확인 서비스 간 호출 관계

서비스 목록 접근

  1. 좌측 메뉴에서 Services 클릭
  2. 모든 서비스 목록이 표시됩니다

화면 구성

service-01.png


서비스 목록

표시 정보

컬럼 설명
Service 서비스 이름
P99 Latency 99번째 백분위수 지연시간
Error Rate 에러 비율 (%)
Requests/s 초당 요청 수
Cluster 서비스가 실행되는 클러스터
Environment 환경 (dev, staging, prod)

필터링

  • 클러스터: 특정 클러스터만 표시
  • 환경: dev, staging, prod
  • 시간 범위: 최근 15분 ~ 7일

정렬

각 컬럼 헤더를 클릭하여 정렬:

  • 지연시간 높은 순 → 성능 문제 서비스 식별
  • 에러율 높은 순 → 안정성 문제 서비스 식별
  • 요청 수 많은 순 → 핵심 서비스 식별

서비스 상세

서비스를 클릭하면 상세 페이지가 표시됩니다.

개요 탭

RED 메트릭 그래프

service-02.png

주요 지표

지표 설명
Avg Latency 평균 지연시간
P50 50번째 백분위수
P95 95번째 백분위수
P99 99번째 백분위수
Total Requests 총 요청 수
Error Count 에러 수

Operations 탭

서비스의 개별 엔드포인트/작업별 분석:

컬럼 설명
Operation 엔드포인트 또는 메서드 이름
Requests 요청 수
P99 지연시간
Errors 에러 수

예시:

Operation              Requests    P99      Errors
GET /api/users         12,345      45ms     12
POST /api/users        3,456       120ms    34
GET /api/users/:id     8,901       35ms     5
DELETE /api/users/:id  234         28ms     0

Traces 탭

해당 서비스의 최근 트레이스 목록:

  • 가장 느린 요청
  • 최근 에러
  • 샘플 트레이스

트레이스를 클릭하면 상세 페이지로 이동합니다.

Logs 탭

해당 서비스의 최근 로그:

  • 자동으로 서비스 이름으로 필터링됨
  • 에러 로그 하이라이트

서비스 의존성

Service Map 연동

서비스 상세 페이지에서 View in Service Map 버튼을 클릭하면:

  • 해당 서비스를 중심으로 한 토폴로지 표시
  • 호출하는 서비스와 호출받는 서비스 확인

업스트림/다운스트림

유형 설명
Upstream 이 서비스를 호출하는 서비스들
Downstream 이 서비스가 호출하는 서비스들

서비스 비교

시간 비교

동일 서비스의 다른 시간대 성능 비교:

  1. 시간 범위 선택
  2. Compare 버튼 클릭
  3. 비교할 시간대 선택
  4. 지표 변화 확인

클러스터 비교

동일 서비스가 여러 클러스터에 배포된 경우:

  1. 서비스 선택
  2. 클러스터별 성능 비교

SLO 설정

Service Level Objectives

서비스별 목표 지표 설정:

  1. 서비스 상세 페이지에서 SLO
  2. Add SLO 클릭
  3. 지표 선택:
    • Latency: P99 < 200ms
    • Error Rate: < 1%
    • Availability: > 99.9%
  4. 저장

SLO 대시보드

설정된 SLO 달성 현황을 한눈에 확인:

  • 목표 대비 현재 상태
  • 에러 버짓 소진율
  • 추세 예측

알림 설정

서비스별 알림 규칙:

지연시간 알림

조건: P99 Latency > 500ms (5분 이상)
알림 채널: Slack #alerts

에러율 알림

조건: Error Rate > 5%
알림 채널: PagerDuty

요청량 알림

조건: Request Rate < 10/s (정상 대비 급감)
알림 채널: Email

자세한 내용은 알림 문서를 참조하세요.


문제 해결

서비스가 표시되지 않음

  1. APM Agent가 해당 파드를 감지했는지 확인:

    kubectl logs -n skuber-observability -l app.kubernetes.io/name=skuber-apm-agent | grep "discovered"
  2. 서비스에 트래픽이 있는지 확인

  3. 시간 범위 확인

서비스 이름이 잘못됨

APM Agent는 다음 순서로 서비스 이름을 결정:

  1. Kubernetes Deployment 이름
  2. Pod 라벨의 app
  3. Pod 이름

서비스 이름 오버라이드:

metadata:
  labels:
    app.kubernetes.io/name: my-custom-service-name

메트릭 누락

  1. 해당 프로토콜이 지원되는지 확인 (HTTP, gRPC 등)
  2. APM Agent 설정에서 제외되지 않았는지 확인

다음 단계

  • 서비스 맵 - 서비스 토폴로지 시각화
  • 트레이스 - 분산 트레이싱 상세
  • 대시보드 - 서비스 대시보드 생성
  • 알림 - 서비스 알림 설정