샘플 시나리오 살펴보기

Apigee Edge 문서입니다.
Go to the Apigee X documentation.
info

API에서 5xx 문제를 해결하는 방법을 보여주는 샘플 시나리오를 단계별로 살펴보세요.

# 단계 설명
1 최근 API 트래픽 모니터링 지난 1시간 동안 트래픽이 발생한 모든 API 프록시 및 대상의 최근 API 모니터링 데이터를 확인합니다. 오류율이 높은 API 프록시 또는 대상을 드릴다운합니다.
2 API 모니터링 데이터에서 추세 확인 최대 지난 3개월까지의 API 모니터링 데이터의 기록 보기에 액세스하여 더 넓은 관점을 얻습니다.
3 5xx 문제 조사 시간이 지남에 따라 상대적으로 가장 높은 볼륨을 경험하는 오류 코드를 확인하여 5xx 문제의 소스를 추가로 조사합니다. (일반적으로 5xx 상태 코드는 하나 이상의 오류 코드를 사용하여 분류할 수 있습니다.)
4 5xx 알림 설정 5xx 상태 코드 수가 특정 기준점을 초과할 때 알림을 받도록 알림을 설정합니다.
5 클라이언트 세부정보가 포함된 커스텀 보고서 생성 (선택사항) 선택적으로 커스텀 보고서를 생성하여 5xx 오류를 트리거하는 클라이언트에 대한 세부정보를 확인합니다.

참고: 커스텀 보고서를 생성하려면 조직 관리자여야 합니다.

6 API 프록시를 컬렉션으로 그룹화 API 프록시를 그룹화하는 컬렉션을 만들고 그룹의 모든 구성원에 대해 적절한 알림 기준점 값을 설정하여 문제를 더 빠르게 진단합니다.

7 5xx 문제 해결 조사 및 진단을 바탕으로 5xx 문제를 해결하기 위한 적절한 조치를 취합니다.

1단계: 최근 API 트래픽 모니터링

지난 1시간 동안 트래픽이 발생한 API 프록시 및 대상의 API 모니터링 데이터를 보려면 다음 단계를 따르세요.

  1. Edge UI에서 분석 > API 모니터링 > 최근 을 선택하여 최근 대시보드에 액세스합니다.
  2. 지난 1시간 동안 오류율이 높은 API 프록시 및 대상을 확인합니다.

  3. 오류율이 높은 API 프록시 또는 대상을 클릭하여 오른쪽 창에 세부정보를 표시합니다. 이 예에서는 5xx 오류 의 비율이 높습니다.

이 단계에 대한 자세한 내용은 최근 API 트래픽 모니터링을 참고하세요.

2단계: API 모니터링 데이터에서 추세 확인

최대 지난 3개월까지 트래픽이 발생한 API 프록시 및 대상의 API 모니터링 데이터의 기록 보기에 액세스하려면 다음 단계를 따르세요.

  1. 최근 대시보드의 오른쪽 창에서 더보기 메뉴 > 타임라인에서 보기 를 선택하여 타임라인 대시보드에 액세스합니다. 또는 Edge UI에서 분석 > API 모니터링 > 타임라인을 클릭할 수 있습니다.
  2. 시간이 지남에 따라 API 프록시 또는 대상의 추세를 확인합니다. 지난 7일 동안 추세가 일관되었음을 확인합니다.

이 단계에 대한 자세한 내용은 API 모니터링 데이터에서 추세 확인을 참고하세요.

3단계: 5xx 문제 조사

Apigee는 문제를 진단하는 데 도움이 되는 일련의 오류 코드를 제공합니다. 일반적으로 5xx 상태 코드는 하나 이상의 오류 코드를 사용하여 분류할 수 있습니다.

5xx 문제를 조사하려면 다음 단계를 따르세요.

  1. 타임라인 대시보드의 오른쪽 창에서 더보기 메뉴 > 조사에서 보기 를 선택하여 조사 대시보드에 액세스합니다. 또는 Edge UI에서 분석 > API 모니터링 > 조사 를 클릭할 수 있습니다.

    조사 대시보드를 사용하면 오류 코드와 시간과 같은 측정항목 간의 관계형 활동을 비교할 수 있습니다.
  2. 오류 코드 및 시간 비교 매트릭스 를 확인하여 지난 1시간 동안의 오류 코드 활동을 확인하세요. 블록의 색상 음영을 기준으로 상대적으로 가장 높은 볼륨을 경험하는 오류 코드를 확인합니다. 블록이 어두울수록 상대적 볼륨이 높습니다.

    예를 들어 policies.ratelimit.SpikeArrestViolationpolicies.ratelimit.QuotaViolation 오류 코드는 다음 매트릭스에서 상대적으로 더 높은 볼륨을 보여줍니다. 오류 코드

  3. policies.ratelimit.SpikeArrestViolation 행에서 가장 어두운 블록 (첫 번째 블록)을 클릭하여 오른쪽 창에 세부정보를 표시합니다.

  4. 오류 소스가 perfBenchmark_invalid_v1 API 프록시이고 HTTP 상태 코드가 500 임을 확인합니다. 500 상태 코드는 급증 저지 정책 위반의 일반적인 런타임 오류 코드입니다.

  5. 예상 원인 패널 바로 아래에 있는 개발자 앱별 분포를 확인하여 오류율이 가장 높은 개발자 앱을 식별합니다.

이 단계에 대한 자세한 내용은 문제 식별을 참고하세요.

4단계: 5xx 알림 설정

조사 세부정보 창에서 선택한 컨텍스트를 기반으로 알림을 설정하여 5xx 상태 코드 수가 특정 기준점을 초과할 때 알림을 받습니다.

  1. 조사 대시보드의 오른쪽 창에서 더보기 메뉴 > 알림 만들기를 선택합니다.

  2. 알림 대화상자의 필드를 작성합니다. 조건 필드는 현재 컨텍스트의 데이터로 미리 채워져 있습니다. 예를 들면 다음과 같습니다.

  3. 저장 을 클릭합니다.

향후 perfBenchmark_invalid_v1 API 프록시의 5xx 오류율이 5분 동안 5% 를 초과하면 지정된 이메일로 알림 이 전송되고 UI에 시각적 알림 이 표시됩니다. 예를 들면 다음과 같습니다.

이 단계에 대한 자세한 내용은 알림 및 알림 설정을 참고하세요.

5단계: 클라이언트 세부정보가 포함된 커스텀 보고서 생성 (선택사항)

선택적으로 커스텀 보고서를 생성하여 5xx 오류를 트리거하는 클라이언트에 대한 세부정보를 확인합니다.

보고서 페이지에서 알림을 기반으로 생성된 커스텀 보고서는 다음 형식으로 이름이 지정됩니다. API Monitoring Generated: alert-name

  1. 다음 방법 중 하나로 알림을 설정할 때 생성된 커스텀 보고서에 액세스합니다.

    • 왼쪽 탐색 메뉴에서 분석 > 커스텀 보고서 > 보고서 를 선택하여 보고서 페이지를 표시합니다. 목록에서 보고서 이름 API Monitoring Generated: 5xx Alert 를 클릭합니다.

    • 알림이 생성될 때 표시되는 알림 내에서 클릭합니다. 예를 들면 다음과 같습니다.

  2. 다음 측정기준을 추가합니다.

    • 개발자 앱
    • 클라이언트 ID
    • 클라이언트 IP 주소

  3. 오류율이 높은 특정 개발자 앱을 기반으로 보고서를 보려면 다음과 유사한 필터를 추가합니다.

    and (developer_app eq 'perfBenchmarkApp0')

    참고: 이 경우 측정기준 목록에서 개발자 앱을 삭제합니다.

  4. 저장 을 클릭합니다.

  5. 보고서를 실행하여 5xx 상태 코드를 트리거하는 개발자 앱 및 클라이언트에 대한 세부정보를 확인합니다.

이 단계에 대한 자세한 내용은 커스텀 보고서 만들기를 참고하세요.

6단계: API 프록시를 컬렉션으로 그룹화

API 프록시를 그룹화하는 컬렉션을 만들고 그룹의 모든 구성원에 대해 적절한 알림 기준점 값을 설정하여 문제를 더 빠르게 진단합니다.

  1. Edge UI에서 분석 > API 모니터링 > 컬렉션 을 선택하여 컬렉션 대시보드를 표시합니다.
  2. + 컬렉션 을 클릭합니다.
  3. 프록시 를 선택합니다.
  4. 환경 드롭다운에서 prod 를 선택합니다.
  5. 다음 을 클릭합니다.
  6. 컬렉션 대화상자의 필드를 작성합니다.
  7. 저장 을 클릭합니다.

다음으로 4단계와 유사하게 알림을 설정하고 위에서 정의한 컬렉션으로 측정기준을 설정할 수 있습니다.

이 단계에 대한 자세한 내용은 컬렉션 관리를 참고하세요.

7단계: 5xx 문제 해결

5xx 문제를 해결하기 위한 적절한 조치를 취합니다. 예를 들어 진단에 따라 다음 작업 중 하나를 실행할 수 있습니다.

  • Apigee Sense를 사용하여 요청 급증이 의심스러운지 확인하고 커스텀 보고서에서 식별된 클라이언트 IP 주소를 차단할지 결정합니다.
  • 할당량 정책을 추가하여 개발자 앱이 특정 기간 동안 API 프록시에 연결할 수 있는 연결 수를 제한합니다.
  • API를 수익 창출하여 개발자에게 일정 횟수 이상의 사용량에 대해 요금을 청구합니다.