

# Amazon IVS Real-Time Streaming 모니터링
<a name="stage-health"></a>

이 문서는 IVS Real-Time Streaming 애플리케이션을 모니터링하는 데 사용할 수 있는 옵션에 대한 세부 정보를 제공합니다.

## 스테이지 세션이란 무엇인가요?
<a name="stage-health-session"></a>

첫 번째 참가자가 스테이지에 참가하면 스테이지 *세션*이 시작되고 마지막 참가자가 스테이지에 게시를 중지하면 몇 분 후에 스테이지 세션이 종료됩니다. 스테이지 세션은 이벤트와 참가자를 단기 세션으로 분리하여 장기 세션 디버깅을 지원합니다.

## 스테이지 세션 및 참가자 보기
<a name="stage-health-view-sessions-participants"></a>

### 콘솔 지침
<a name="stage-health-view-sessions-participants-console"></a>

1. [Amazon IVS 콘솔](https://console.aws.amazon.com/ivs)을 엽니다.

   ([AWS Management Console](https://console.aws.amazon.com/)을 통해 Amazon IVS 콘솔에 액세스할 수도 있습니다.)

1. 탐색 창에서 **스테이지를** 선택합니다. (탐색 창이 축소된 경우 먼저 햄버거 아이콘을 선택하여 엽니다.)

1. 스테이지를 선택하여 해당 세부 정보 페이지로 이동합니다.

1. **스테이지 세션 섹션이** 표시될 때까지 페이지를 아래로 스크롤한 다음 세부 정보 페이지를 볼 스테이지 세션을 선택합니다.

1. 세션의 참가자를 보려면 **참가자** 섹션이 표시될 때까지 아래로 스크롤한 다음에 Amazon CloudWatch 지표를 포함한 세부 정보 페이지를 볼 참가자를 선택합니다.

## 참가자에 대한 이벤트 보기
<a name="stage-health-view-participant-events"></a>

스테이지에 참가하거나 스테이지에 게시하는 동안 오류가 발생하는 등 스테이지에서 참가자의 상태가 변경될 때 이벤트가 전송됩니다. 모든 오류가 이벤트를 일으키는 것은 아닙니다. 예를 들어 클라이언트측 네트워크 오류와 토큰 서명 오류는 이벤트로 전송되지 않습니다. 클라이언트 애플리케이션에서 이러한 오류를 처리하려면 [IVS 브로드캐스트 SDK](broadcast.md)를 사용합니다.

### 콘솔 지침
<a name="stage-health-view-participant-events-console"></a>

1. 위의 지침에 따라 참가자 세부 정보 페이지로 이동합니다.

1. **이벤트** 섹션이 표시될 때까지 아래로 스크롤합니다. 그러면 참가자 이벤트의 정렬된 목록이 표시됩니다. 참가자를 위해 방출되는 이벤트에 대한 자세한 내용은 [Amazon IVS에서 Amazon EventBridge 사용](eventbridge.md)을 참조하세요.

### CLI 지침
<a name="stage-health-view-participant-events-cli"></a>

AWS CLI를 사용하여 스테이지 세션 이벤트에 액세스하는 것은 고급 옵션이며, 먼저 머신에서 CLI를 다운로드하고 구성해야 합니다. 자세한 내용은 [AWS Command Line Interface 사용 설명서](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)를 참조하세요.

1. 스테이지 세션을 나열하여 스테이지 세션을 찾습니다.

   ```
   aws ivs-realtime list-stage-sessions --stage-arn <arn>
   ```

1. 스테이지 세션에 대한 참가자를 나열하여 참가자를 찾습니다.

   ```
   aws ivs-realtime list-participants --stage-arn <arn> –session-id <sessionId>
   ```

1. 스테이지 세션과 참가자에 대한 이벤트를 나열합니다.

   ```
   aws ivs-realtime list-participant-events --stage-arn <arn> --session-id <sessionId> –-participant-id <participantId>
   ```

다음은 `list-participant-events` 호출에 대한 샘플 응답입니다.

```
{
    "events": [
        {
            "eventTime": "2023-04-04T22:48:41+00:00",
            "name": "JOINED",
            "participantId": "AdRezBl021t0"
        },
        {
            "eventTime": "2023-04-04T22:48:41+00:00",
            "name": "SUBSCRIBE_STARTED",
            "participantId": "AdRezBl021t0",
            "remoteParticipantId": "Ou5b5n5XLMdC"
        },
        {
            "eventTime": "2023-04-04T22:49:45+00:00",
            "name": "SUBSCRIBE_STOPPED",
            "participantId": "AdRezBl021t0",
            "remoteParticipantId": "Ou5b5n5XLMdC"
        },
        {
            "eventTime": "2023-04-04T22:49:45+00:00",
            "name": "LEFT",
            "participantId": "AdRezBl021t0"
        }
    ]
}
```

## CloudWatch 지표 액세스
<a name="stage-health-access-cloudwatch-metrics"></a>

CloudWatch 지표를 사용하기 위해서는 웹 1.5.0 이상, Android 1.12.0 이상 또는 iOS 1.12.0 이상의 IVS 브로드캐스트 SDK 버전이 필요합니다.

### CloudWatch 콘솔 지침
<a name="stage-health-access-cloudwatch-metrics-console"></a>

1. [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)에서 CloudWatch 콘솔을 엽니다.

1. 측면 탐색에서 **지표** 드롭다운을 확장한 다음 **모든 지표**를 선택합니다.

1. **검색** 탭에서 왼쪽에 있는 레이블이 없는 드롭다운을 사용하여 채널이 생성된 '홈' 리전을 선택합니다. 리전에 대한 자세한 내용은 [글로벌 솔루션, 리전별 제어](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/what-is.html#what-is-aws)를 참조하세요. 지원되는 리전 목록은 *AWS 일반 참조*의 [Amazon IVS 페이지](https://docs.aws.amazon.com/general/latest/gr/ivs.html)를 참조하세요.

1. **검색** 탭 하단 부분에서 **IVSRealTime** 네임스페이스를 선택하세요.

1. 다음 중 하나를 수행하세요.

   1. 검색 창에 리소스 ID(ARN의 일부, `arn:::ivs:stage/<resource id>`)를 입력합니다.

      그리고 나서 **IVSRealTime > 스테이지 지표**를 선택하세요.

   1. **IVSRealTime**이 **AWS 네임스페이스** 아래에서 선택 가능한 서비스로 나타나는 경우 선택하세요. Amazon IVS Real-Time Streaming을 사용하고 Amazon CloudWatch에 지표를 전송하는 경우 나열됩니다. (**IVSRealTime**이 목록에 없으면 Amazon IVS 지표가 없습니다.)

      그리고 나서 필요할 경우 *차원* 그룹화를 선택하세요. 아래의 [CloudWatch 지표](#stage-health-cloudwatch-metrics)에 사용 가능한 차원이 나열되어 있습니다.

1. 지표를 선택하여 그래프에 추가합니다. 아래의 [CloudWatch 지표](#stage-health-cloudwatch-metrics)에 사용 가능한 지표가 나열되어 있습니다.

또한 스트림 세션의 세부 정보 페이지에서 **CloudWatch에서 보기(View in CloudWatch)** 버튼을 선택하여 스트림 세션의 CloudWatch 차트에 액세스할 수 있습니다.

### CLI 지침
<a name="stage-health-access-cloudwatch-metrics-cli"></a>

AWS CLI를 사용하여 지표에 액세스할 수도 있습니다. 그러려면 먼저 시스템에 CLI를 다운로드하여 구성해야 합니다. 자세한 내용은 [AWS 명령줄 인터페이스 사용 설명서](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)를 참조하세요.

그런 다음, AWS CLI를 사용하여 Amazon 실시간 스트리밍 IVS 지표에 액세스하려면 다음을 수행합니다.
+ 명령 프롬프트에서 다음을 실행합니다.

  ```
  aws cloudwatch list-metrics --namespace AWS/IVSRealTime
  ```

자세한 내용은 *Amazon CloudWatch 사용 설명서*에서 [Amazon CloudWatch 지표 사용](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html)을 참조하세요.

## CloudWatch 지표: IVS 실시간 스트리밍
<a name="stage-health-cloudwatch-metrics"></a>

Amazon IVS는 **AWS/IVSRealTime** 네임스페이스에서 다음 지표를 제공합니다.

CloudWatch 지표를 사용하기 위해서는 반드시 웹 브로드캐스트 SDK 1.5.2 이상을 사용해야 합니다.

차원의 유효한 값은 다음과 같을 수 있습니다.
+ `Stage` 차원은 리소스 ID(ARN의 일부, `arn:::stage/<resource id>`)입니다.
+ `Participant` 차원은 `participantID`입니다.
+ `SimulcastLayer`는 "video" `MediaType`의 경우 "hi", "mid", "low" 또는 "none"이고 "audio" `MediaType`의 경우 "none"입니다. 이 값도 비워둘 수 있습니다.
+ `MediaType` 차원은 '비디오' 또는 '오디오'(문자열) 입니다.

참가자 복제의 경우 대상 단계의 경우 기존 단계 상태 지표에는 복제된 모든 참가자(대상 단계의 복제본 참가자인 소스 단계의 게시자)가 포함됩니다.


| 지표 | 측정 기준 | 설명 | 
| --- | --- | --- | 
| `ConcurrentPublishers` | — |  AWS 리전의 모든 스테이지에서 게시할 수 있는 참가자 수입니다. 단위: 수 유효 통계: 평균, 최대, 최소  | 
| `ConcurrentSubscriptions` | — |  AWS 리전의 모든 스테이지에서 가능한 동시 게시자-구독자 연결 수입니다. 단위: 수 유효 통계: 평균, 최대, 최소  | 
| `DownloadPacketLoss` | — |  구독자가 IVS 서버에서 다운로드하는 동안 손실한 패킷의 백분율을 나타냅니다. 단위: 퍼센트 유효 통계: 평균, 최대, 최소 - 구성된 간격 동안 패킷 손실의 평균 수, 가장 많은 수 또는 가장 적은 수(각각)입니다.  | 
| `DownloadPacketLoss` | `Platform` |  구독자 플랫폼을 기준으로 `DownloadPacketLoss`를 필터링합니다. 단위: 퍼센트 유효 통계: 평균, 최대, 최소 - 구성된 간격 동안 패킷 손실의 평균 수, 가장 많은 수 또는 가장 적은 수(각각)입니다.  | 
| `DownloadPacketLoss` | `Platform, SDKVersion` |  구독자 플랫폼 및 SDK 버전을 기준으로 `DownloadPacketLoss`를 필터링합니다. 단위: 퍼센트 유효 통계: 평균, 최대, 최소 - 구성된 간격 동안 패킷 손실의 평균 수, 가장 많은 수 또는 가장 적은 수(각각)입니다.  | 
| `DownloadPacketLoss` | `Stage` |  구독자 스테이지를 기준으로 `DownloadPacketLoss`를 필터링합니다. 단위: 퍼센트 유효 통계: 평균, 최대, 최소 - 구성된 간격 동안 패킷 손실의 평균 수, 가장 많은 수 또는 가장 적은 수(각각)입니다.  | 
| `DownloadPacketLoss` | `Stage, Participant` |  게시자이기도 한 구독자의 경우 참가자별로 `DownloadPacketLoss`를 필터링합니다. 샘플은 구독자가 IVS 서버에서 다운로드하는 동안 손실한 패킷의 백분율을 나타냅니다. 참가자가 게시자이기도 한 경우에만 샘플이 내보내집니다. 단위: 퍼센트 유효 통계: 평균, 최대, 최소 - 구성된 간격 동안 드롭된 프레임의 평균 수, 가장 많은 수 또는 가장 적은 수(각각)입니다.  | 
| `DownloadPacketLoss` | `Stage, Platform` |  구독자 스테이지 및 플랫폼을 기준으로 `DownloadPacketLoss`를 필터링합니다. 단위: 퍼센트 유효 통계: 평균, 최대, 최소 - 구성된 간격 동안 패킷 손실의 평균 수, 가장 많은 수 또는 가장 적은 수(각각)입니다.  | 
| `DownloadPacketLoss` | `Stage, Platform, SDKVersion` |  구독자 스테이지, 플랫폼 및 SDK 버전을 기준으로 `DownloadPacketLoss`를 필터링합니다. 단위: 퍼센트 유효 통계: 평균, 최대, 최소 - 구성된 간격 동안 패킷 손실의 평균 수, 가장 많은 수 또는 가장 적은 수(각각)입니다.  | 
| `DownloadPacketLoss` | `Stage, SubscriberCountryCode` |  구독자 스테이지 및 국가 코드(ISO 3166)를 기준으로 `DownloadPacketLoss`를 필터링합니다. 단위: 퍼센트 유효 통계: 평균, 최대, 최소 - 구성된 간격 동안 패킷 손실의 평균 수, 가장 많은 수 또는 가장 적은 수(각각)입니다.  | 
| `DownloadPacketLoss` | `SubscriberCountryCode` |  구독자 국가 코드(ISO 3166)를 기준으로 `DownloadPacketLoss`를 필터링합니다. 단위: 퍼센트 유효 통계: 평균, 최대, 최소 - 구성된 간격 동안 패킷 손실의 평균 수, 가장 많은 수 또는 가장 적은 수(각각)입니다.  | 
| `DroppedFrames` | `—` |  구독자의 경우: 구독자가 구독하는 모든 게시자에 대해 수신된 프레임과 삭제된 프레임을 집계하여 계산되는 삭제된 비디오 프레임의 비율입니다. 단위: 퍼센트 유효 통계: 평균, 최대, 최소 - 구성된 간격 동안 드롭된 프레임의 평균 수, 가장 많은 수 또는 가장 적은 수(각각)입니다.  | 
| `DroppedFrames` | `Platform` |  구독자의 플랫폼을 기준으로 `DroppedFrames`를 필터링합니다. 단위: 퍼센트 유효 통계: 평균, 최대, 최소 - 구성된 간격 동안 드롭된 프레임의 평균 수, 가장 많은 수 또는 가장 적은 수(각각)입니다.  | 
| `DroppedFrames` | `Platform, SDKVersion` |  구독자의 플랫폼 및 SDK 버전을 기준으로 `DroppedFrames`를 필터링합니다. % 유효 통계: 평균, 최대, 최소 - 구성된 간격 동안 드롭된 프레임의 평균 수, 가장 많은 수 또는 가장 적은 수(각각)입니다.  | 
| `DroppedFrames` | `Stage` |  스테이지를 기준으로 `DroppedFrames`를 필터링합니다. 단위: 퍼센트 유효 통계: 평균, 최대, 최소 - 구성된 간격 동안 드롭된 프레임의 평균 수, 가장 많은 수 또는 가장 적은 수(각각)입니다.  | 
| `DroppedFrames` | `Stage, Participant` |  스테이지 및 참가자를 기준으로 `DroppedFrames`를 필터링합니다. 게시자이기도 한 구독자에게만 생성됩니다. 단위: 퍼센트 유효 통계: 평균, 최대, 최소 - 구성된 간격 동안 드롭된 프레임의 평균 수, 가장 많은 수 또는 가장 적은 수(각각)입니다.  | 
| `DroppedFrames` | `Stage, Platform` |  스테이지 및 구독자의 플랫폼을 기준으로 `DroppedFrames`를 필터링합니다. 단위: 퍼센트 유효 통계: 평균, 최대, 최소 - 구성된 간격 동안 드롭된 프레임의 평균 수, 가장 많은 수 또는 가장 적은 수(각각)입니다.  | 
| `DroppedFrames` | `Stage, Platform, SDKVersion` |  스테이지, 구독자의 플랫폼 및 SDK 버전을 기준으로 `DroppedFrames`를 필터링합니다. 단위: 퍼센트 유효 통계: 평균, 최대, 최소 - 구성된 간격 동안 드롭된 프레임의 평균 수, 가장 많은 수 또는 가장 적은 수(각각)입니다.  | 
| `DroppedFrames` | `Stage, SubscriberCountryCode` |  스테이지 및 구독자의 국가를 기준으로 `DroppedFrames`를 필터링합니다. 단위: 퍼센트 유효 통계: 평균, 최대, 최소 - 구성된 간격 동안 드롭된 프레임의 평균 수, 가장 많은 수 또는 가장 적은 수(각각)입니다.  | 
| `DroppedFrames` | `SubscriberCountryCode` |  구독자의 국가를 기준으로 `DroppedFrames`를 필터링합니다. 단위: 퍼센트 유효 통계: 평균, 최대, 최소 - 구성된 간격 동안 드롭된 프레임의 평균 수, 가장 많은 수 또는 가장 적은 수(각각)입니다.  | 
| `PublishBitrate` | `—` |  게시자가 비디오와 오디오 데이터를 모두 전송하는 전체 속도(모든 동시 방송 계층 전반에서 집계)입니다. 여기에는 재전송된 데이터가 포함됩니다. 게시자가 보내는 것을 반영하고 IVS에서 수신하거나 구독자에게 전달하는 것과 일치하지 않을 수 있으므로, 패킷 손실 및 재전송을 업로드하여 비트 전송률을 부풀릴 수 있습니다. 비트/초 유효 통계: 평균, 최대, 최소 - 구성된 간격 동안 비트레이트의 평균 수, 가장 많은 수 또는 가장 적은 수(각각)입니다.  | 
| `PublishBitrate` | `Platform` |  게시자의 플랫폼을 기준으로 `PublishBitrate`를 필터링합니다. 비트/초 유효 통계: 평균, 최대, 최소 - 구성된 간격 동안 비트레이트의 평균 수, 가장 많은 수 또는 가장 적은 수(각각)입니다.  | 
| `PublishBitrate` | `Stage` |  스테이지를 기준으로 `PublishBitrate`를 필터링합니다. 단위: 비트/초 유효 통계: 평균, 최대, 최소 - 구성된 간격 동안 비트레이트의 평균 수, 가장 많은 수 또는 가장 적은 수(각각)입니다.  | 
| `PublishBitrate` | `Stage, Participant, SimulcastLayer, MediaType` |  스테이지, 참가자, 동시 방송 계층 및 미디어 종류를 기준으로 `PublishBitrate`를 필터링합니다. 동시 방송 계층 ID는 브로드캐스트 SDK에 의해 설정됩니다. 동시 방송이 비활성화된 경우 이 계층 ID는 '비활성화됨'으로 설정됩니다. 미디어 종류는 '비디오' 또는 '오디오'입니다. 단위: 비트/초 유효 통계: 평균, 최대, 최소 - 구성된 간격 동안 비트레이트의 평균 수, 가장 많은 수 또는 가장 적은 수(각각)입니다.  | 
| `Publishers` | `Stage` |  스테이지에 게시하는 참가자의 수입니다. 단위: 수 유효 통계: 평균, 최대, 최소  | 
| `PublishFramerate` | `Stage, Participant` |  주어진 게시자로부터 비디오 프레임이 수신되는 빈도입니다. 이 지표는 RTMP를 통해 게시하는 참가자만 사용할 수 있습니다. 단위: 개수/초 유효한 통계: 평균, 최대, 최소 - 구성된 간격 동안 프레임 속도의 평균 숫자, 가장 큰 숫자 수 또는 가장 작은 숫자(각각)입니다.  | 
| `PublishFramerate` | `Stage, Participant, SimulcastLayer, MediaType` |  주어진 게시자로부터 비디오 프레임이 수신되는 빈도입니다. 이 지표는 RTMP를 통해 게시하는 참가자만 사용할 수 있습니다. 단위: 개수/초 유효한 통계: 평균, 최대, 최소 - 구성된 간격 동안 프레임 속도의 평균 숫자, 가장 큰 숫자 수 또는 가장 작은 숫자(각각)입니다.  | 
| `PublishResolution` | `Stage, Participant, SimulcastLayer, MediaType` |  프레임 너비 또는 높이 중 작은 값 전반의 픽셀 수입니다. 예를 들어 크기가 1920x1080인 가로 프레임의 경우 게시 해상도는 1080입니다. 크기가 720x1280인 세로 프레임의 경우 게시 해상도는 720입니다. 단위: 수 유효 통계: 평균, 최대, 최소  | 
| `SubscribeBitrate` | `—` |  구독자가 비디오와 오디오 데이터를 둘 다 수신하는 전체 속도입니다. 단위: 비트/초 유효 통계: 평균, 최대, 최소 - 구성된 간격 동안 비트레이트의 평균 수, 가장 많은 수 또는 가장 적은 수(각각)입니다.  | 
| `SubscribeBitrate` | `Platform` |  구독자의 플랫폼을 기준으로 `SubscribeBitrate`를 필터링합니다. 단위: 비트/초 유효 통계: 평균, 최대, 최소 - 구성된 간격 동안 비트레이트의 평균 수, 가장 많은 수 또는 가장 적은 수(각각)입니다.  | 
| `SubscribeBitrate` | `Platform, SDKVersion` |  구독자의 플랫폼 및 SDK 버전을 기준으로 `SubscribeBitrate`를 필터링합니다. 단위: 비트/초 유효 통계: 평균, 최대, 최소 - 구성된 간격 동안 비트레이트의 평균 수, 가장 많은 수 또는 가장 적은 수(각각)입니다.  | 
| `SubscribeBitrate` | `Stage` |  스테이지를 기준으로 `SubscribeBitrate`를 필터링합니다. 단위: 비트/초 유효 통계: 평균, 최대, 최소 - 구성된 간격 동안 비트레이트의 평균 수, 가장 많은 수 또는 가장 적은 수(각각)입니다.  | 
| `SubscribeBitrate` | `Stage, Participant, MediaType` |  스테이지, 참가자 및 미디어 종류를 기준으로 `SubscribeBitrate`를 필터링합니다. 미디어 종류는 '비디오' 또는 '오디오'입니다. 구독 참가자가 게시하는 동안에만 지표가 내보내집니다. 단위: 비트/초 유효 통계: 평균, 최대, 최소 - 구성된 간격 동안 비트레이트의 평균 수, 가장 많은 수 또는 가장 적은 수(각각)입니다.  | 
| `SubscribeBitrate` | `Stage, Platform` |  스테이지 및 구독자의 플랫폼을 기준으로 `SubscribeBitrate`를 필터링합니다. 비트/초 유효 통계: 평균, 최대, 최소 - 구성된 간격 동안 비트레이트의 평균 수, 가장 많은 수 또는 가장 적은 수(각각)입니다.  | 
| `SubscribeBitrate` | `Stage, Platform, SDKVersion` |  스테이지, 구독자의 플랫폼 및 SDK 버전을 기준으로 `SubscribeBitrate`를 필터링합니다. 비트/초 유효 통계: 평균, 최대, 최소 - 구성된 간격 동안 비트레이트의 평균 수, 가장 많은 수 또는 가장 적은 수(각각)입니다.  | 
| `SubscribeBitrate` | `Stage, SubscriberCountryCode` |  스테이지 및 구독자의 국가 코드를 기준으로 `SubscribeBitrate`를 필터링합니다. 비트/초 유효 통계: 평균, 최대, 최소 - 구성된 간격 동안 비트레이트의 평균 수, 가장 많은 수 또는 가장 적은 수(각각)입니다.  | 
| `SubscribeBitrate` | `SubscriberCountryCode` |  구독자의 국가 코드(ISO 3166-1 alpha-2)를 기준으로 `SubscribeBitrate`를 필터링합니다. 비트/초 유효 통계: 평균, 최대, 최소 - 구성된 간격 동안 비트레이트의 평균 수, 가장 많은 수 또는 가장 적은 수(각각)입니다.  | 
| `Subscribers` | `Stage` |  스테이지를 구독하는 참가자의 수입니다. 활발하게 게시하고 구독하는 참여자는 게시자 및 구독자로 모두 인정됩니다. 단위: 수 유효 통계: 평균, 최대, 최소  | 