STON Media Server - LIVE Sketch¶
저자: | STON 개발팀 |
---|
Draft¶
프로토콜/URL¶
이 장에서는 프로토콜에 따른 URL표현에 대해 설명한다. URL은 VOD(Video On Demand)와 LIVE 공통이다.
# vhosts.xml
<Vhosts>
<Vhost Name="www.example.com/bar">
...
</Vhost>
</Vhosts>
Adobe RTMP¶
STON 미디어 서버는 RTMP(Real Time Messaging Protocol)를 이용해 VOD/LIVE를 전송한다. Adobe Flash Player의 NetConnection 객체를 이용해 연결하고 NetStream 객체를 통해 스트리밍한다. RTMP URL 형식은 다음과 같다.
rtmp://{virtual-host}/{stream-name}
rtmp://{ston-ip-address}/{virtual-host}/{stream-name}
{virtual-host}
가상호스트Name
{stream-name}
Prefix(“mp4:”, 생략가능)가 붙은 재생할 스트림{ston-ip-address}
STON 미디어 서버의 IP주소
NetConnection.connect 에서 사용해야 하는 URL은 가상호스트 Name
표현에 따라 달라진다.
<Vhost Name=”...”> | NetConnection.connect |
---|---|
www.example.com/bar | rtmp://www.example.com/bar |
www.example.com | rtmp://www.example.com |
/foo | rtmp://{ston-ip-address}/foo |
LIVE인 경우 원본서버 URL과 동일하며, VOD인 경우 Stream주소는 아래와 같다.
mp4:mov/trip.mp4
주석
NetConnection 연결에서 별도의 설정없이 {virtual-host}
다음에 오는 _definst_
표현을 인식한다.
rtmp://www.example.com/bar/_definst_
rtmp://www.example.com/_definst_
rtmp://{ston-ip-address}/foo/_definst_
HTTP Pseudo-Streaming¶
STON 미디어 서버는 VOD 콘텐츠를 HTTP Pseudo-Streaming으로 전송할 수 있다. HTTP Pseudo-Streaming의 URL형식은 다음과 같다.
http://{virtual-host}/{stream-name}
http://{ston-ip-address}/{virtual-host}/{stream-name}
{virtual-host}
가상호스트Name
{stream-name}
Prefix(“mp4:”, 생략가능)가 붙은 재생할 스트림{ston-ip-address}
STON 미디어 서버의 IP주소
URL은 가상호스트 Name
표현에 따라 달라진다.
예를 들어 원본서버 URL이 /mov/trip.mp4인 경우 URL는 다음과 같다.
<Vhost Name=”...”> | VOD URL |
---|---|
www.example.com/bar | http://www.example.com/bar/mp4:mov/trip.mp4 |
www.example.com | http://www.example.com/mp4:mov/trip.mp4 |
/foo | http://{ston-ip-address}/foo/mp4:mov/trip.mp4 |
주석
URL에서 별도의 설정없이 {virtual-host}
다음에 오는 _definst_
표현을 인식한다.
http://www.example.com/bar/_definst_/mp4:mov/trip.mp4
http://www.example.com/_definst_/mp4:mov/trip.mp4
http://{ston-ip-address}/foo/_definst_/mp4:mov/trip.mp4
Apple HLS¶
STON 미디어 서버는 LIVE/VOD를 HLS(HTTP Live Streaming)로 전송할 수 있다. HLS는 “Cupertino” 스트리밍이라고도 알려져 있지만 정확히 말하면 스트리밍이 아닌 HTTP 기반의 Chunk전송방식이다.

Apple이 제공하는 iOS 기반의 디바이스(iPhone, iPad, iPod touch iOS version 3.0 이상), QuickTime 플레이어 (버전 10이상), Safari 브라우저 (버전 4.0 이상)에서 폭넓게 지원된다.
주석
Apple HLS는 Android에서도 지원되지만 일부 구버전 호환성 문제가 있다. JWPlayer - The Pain of Live Streaming on Android 참고.
STON 미디어 서버는 약속된 주소를 이용해 LIVE스트림/VOD파일로부터 인덱스/메타 파일과 MPEG2-TS Chunk를 만들어낸다. HLS의 URL 형식은 다음과 같다.
http://{virtual-host}/{stream-name}/playlist.m3u8
http://{ston-ip-address}/{virtual-host}/{stream-name}/playlist.m3u8
{virtual-host}
가상호스트Name
{stream-name}
Prefix(“mp4:”, 생략가능)가 붙은 재생할 스트림{ston-ip-address}
STON 미디어 서버의 IP주소
URL은 가상호스트 Name
표현에 따라 달라진다.
예를 들어 원본서버 LIVE URL이 /myLiveStream, VOD URL이 /mov/trip.mp4인 경우 URL는 다음과 같다.
<Vhost Name=”...”> | LIVE URL |
---|---|
www.example.com/bar | http://www.example.com/bar/myLiveStream/playlist.m3u8 |
www.example.com | http://www.example.com/myLiveStream/playlist.m3u8 |
/foo | http://{ston-ip-address}/myLiveStream/playlist.m3u8 |
<Vhost Name=”...”> | VOD URL |
---|---|
www.example.com/bar | http://www.example.com/bar/mp4:mov/trip.mp4/playlist.m3u8 |
www.example.com | http://www.example.com/mp4:mov/trip.mp4/playlist.m3u8 |
/foo | http://{ston-ip-address}/foo/mp4:mov/trip.mp4/playlist.m3u8 |
모든 인덱스/Chunk 파일은 동적으로 생성되며 별도의 저장공간을 소비하지 않는다. 서비스 즉시 임시적으로 생성되며 서비스되지 않을 때 자동으로 없어진다.
주석
URL에서 별도의 설정없이 {virtual-host}
다음에 오는 _definst_
표현을 인식한다.
// LIVE
http://www.example.com/bar/_definst_/myLiveStream/playlist.m3u8
http://www.example.com/_definst_/myLiveStream/playlist.m3u8
http://{ston-ip-address}/foo/_definst_/myLiveStream/playlist.m3u8
// VOD
http://www.example.com/bar/_definst_/mp4:mov/trip.mp4/playlist.m3u8
http://www.example.com/_definst_/mp4:mov/trip.mp4/playlist.m3u8
http://{ston-ip-address}/foo/_definst_/mp4:mov/trip.mp4/playlist.m3u8
MPEG-DASH¶
현재는 캐싱기반의 릴레이 전송만 지원하며 향후 Packetizing과 전용 설정을 제공할 계획이다. MPEG-DASH에서 사용하는 확장자(.mpd, mp4v, mp4a, m4s)와 관련된 전송은 별도의 MPEG-DASH 통계로 수집된다.
VOD¶
이 장에서는 STON 미디어 서버의 VOD 서비스 구성에 대해 설명한다. STON 미디어 서버는 원본서버로부터 HTTP로 다운로드(=캐싱)한 콘텐츠를 동시에 멀티 프로토콜로 전송한다. 프로토콜별 URL 표현은 프로토콜/URL 을 참고한다.

가상호스트의 기본 서비스 Type은 VOD
이다. (기본 값이므로 특별히 설정하지 않아도 괜찮다.)
# vhosts.xml
<Vhosts>
<Vhost Name="www.example.com/bar" Type="VOD">
...
</Vhost>
</Vhosts>
캐싱된 콘텐츠는 공유된다. 예를 들어 동시에 HTTP, RTMP, HLS로 같은 영상을 요청할 경우 원본서버로부터의 다운로드는 한번만 진행된다.
Adobe RTMP¶
원본서버에서 HTTP로 다운로드한 영상을 RTMP로 전송한다.

세션¶
RTMP 클라이언트 세션에 대해 설정한다.
# server.xml - <Server><VHostDefault><Options><Rtmp>
# vhosts.xml - <Vhosts><Vhost><Options><Rtmp>
<BufferSize>3</BufferSize>
<ClientKeepAliveSec>10</ClientKeepAliveSec>
<BufferSize> (기본: 3초)
PLAY가 시작되면 설정된 시간(초)만큼을 대역폭 제한없이 클라이언트에게 전송한다.<ClientKeepAliveSec> (기본: 10초)
아무런 통신이 없는 상태로 설정된 시간(초)이 경과하면 RTMP 클라이언트에게 Ping Request을 보낸다. RTMP 클라이언트가 Ping Response를 보내지 않으면 연결을 종료한다.
Apple HLS¶
원본서버에서 HTTP로 다운로드한 영상을 HLS(HTTP Live Streaming)으로 전송한다.

모든 인덱스/Chunk 파일은 동적으로 생성되며 별도의 저장공간을 소비하지 않는다. 서비스 시점에 임시적으로 생성되며 서비스가 끝나면 사라진다.
세션¶
# server.xml - <Server><VHostDefault><Options><Hls>
# vhosts.xml - <Vhosts><Vhost><Options><Hls>
<ClientKeepAliveSec>30</ClientKeepAliveSec>
<ClientKeepAliveSec> (기본: 30초)
아무런 통신이 없는 상태로 설정된 시간이 경과하면 연결을 종료한다.
Packetizing¶
MPEG2-TS(Transport Stream)로 Packetizing하고 인덱스 파일을 구성하는 정책을 설정한다.
# server.xml - <Server><VHostDefault><Options><Hls>
# vhosts.xml - <Vhosts><Vhost><Options><Hls>
<Packetizing Status="Active">
<Index Ver="3" Alternates="ON">index.m3u8</Index>
<Sequence>0</Sequence>
<Duration>10</Duration>
<AlternatesName>playlist.m3u8</AlternatesName>
<MP3SegmentType>TS</MP3SegmentType>
</Packetizing>
<Packetizing>
Status (기본: Active)
값이Inactive
라면 Packetizing하지 않고 원본서버의 HLS 파일들을 릴레이한다.
<Index> (기본: index.m3u8)
HLS 인덱스(.m3u8) 파일명Ver (기본 3)
인덱스 파일 버전. 3인 경우#EXT-X-VERSION:3
헤더가 명시되며#EXTINF
의 시간 값이 소수점 3째 자리까지 표시된다. 1인 경우#EXT-X-VERSION
헤더가 없으며,#EXTINF
의 시간 값이 정수(반올림)로 표시된다.Alternates (기본: ON)
Stream Alternates 사용여부.ON.
<AlternatesName>
에서 TS목록을 서비스한다.OFF.
<Index>
에서 TS목록을 서비스한다.
<Sequence> (기본: 0)
.ts 파일의 시작 번호. 이 수를 기준으로 순차적으로 증가한다.<Duration> (기본: 10초)
콘텐츠를 분할(Segmentation)하는 기준 시간(초). 분할의 기준은 Video/Audio의 KeyFrame이다. KeyFrame은 들쭉날쭉할 수 있으므로 정확히 분할되지 않을 수 있다. 만약 10초로 분할하려는데 KeyFrame이 9초와 12초에 있다면 가까운 값(9초)을 선택한다.<AlternatesName> (기본: playlist.m3u8)
Stream Alternates 파일명.http://www.example.com/bar/mp4:trip.mp4/playlist.m3u8
<MP3SegmentType> (기본: TS)
MP3라면 Chunk포맷을 설정한다. (TS 또는 MP3)
다음 URL이 호출되면 HTTP 원본서버의 /trip.mp4로부터 인덱스 파일을 생성한다.
http://www.example.com/bar/mp4:trip.mp4/index.m3u8
Alternates
속성이 ON이라면 <Index>
파일은 <AlternatesName>
파일을 서비스한다.
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=200000,RESOLUTION=720x480
/bar/mp4:trip.mp4/playlist.m3u8
#EXT-X-STREAM-INF
의 Bandwidth와 Resolution은 영상을 분석하여 동적으로 제공한다.
최종적으로 생성된 .ts 목록(버전 3)은 다음과 같다.
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:11.637,
/bar/mp4:trip.mp4/0.ts
#EXTINF:10.092,
/bar/mp4:trip.mp4/1.ts
#EXTINF:10.112,
/bar/mp4:trip.mp4/2.ts
... (중략)...
#EXTINF:10.847,
/bar/mp4:trip.mp4/161.ts
#EXTINF:9.078,
/bar/mp4:trip.mp4/162.ts
#EXT-X-ENDLIST
키 프레임과 <Duration>¶
분할(Segmentation)의 경우 <Duration>
보다 Key Frame 간격이 우선한다. 아래 3가지 경우에서 분할이 어떻게 되는지 설명한다.
- KeyFrame 간격보다
<Duration>
설정이 큰 경우 KeyFrame이 3초,<Duration>
이 20초라면 20초를 넘지 않는 KeyFrame의 배수인 18초로 분할된다. - KeyFrame 간격과
<Duration>
이 비슷한 경우 KeyFrame이 9초,<Duration>
이 10초라면 10초를 넘지 않는 KeyFrame의 배수인 9초로 분할된다. - KeyFrame 간격이
<Duration>
설정보다 큰 경우 KeyFrame단위로 분할된다.
다음 클라이언트 요청에 대해 STON 미디어 서버가 어떻게 동작하는지 이해해보자.
GET /bar/mp4:trip.mp4/99.ts HTTP/1.1
Range: bytes=0-512000
Host: www.example.com
- STON Media Server : 최초 로딩 (아무 것도 캐싱되어 있지 않음.)
- HTTP/HLS Client : HTTP Range 요청 (100번째 파일의 최초 500KB 요청)
- STON Media Server : /trip.mp4 파일 캐싱객체 생성
- STON Media Server : /trip.mp4 파일 분석을 위해 필요한 부분만을 원본서버에서 다운로드
- STON Media Server : 100번째(99.ts)파일 서비스를 위해 필요한 부분만을 원본서버에서 다운로드
- STON Media Server : 100번째(99.ts)파일 생성 후 Range 서비스
- STON Media Server : 서비스가 완료되면 99.ts파일 파괴
주석
MP4Trimming
기능이 ON
이라면 Trimming된 MP4를 HLS로 변환할 수 있다. (HLS영상을 Trimming할 수 없다. HLS는 MP4가 아니라 MPEG2-TS 임에 주의하자.)
영상을 Trimming한 뒤, HLS로 변환하기 때문에 다음과 같이 표현하는 것이 자연스럽다.
/bar/mp4:trip.mp4?start=0&end=60/playlist.m3u8
동작에는 문제가 없지만 QueryString을 맨 뒤에 붙이는 HTTP 규격에 어긋난다. 다음과 같은 표현해도 동작은 동일하다.
/bar/mp4:trip.mp4/playlist.m3u8?start=0&end=60
/bar/mp4:trip.mp4?start=0/playlist.m3u8?end=60
HTTP Pseudo-Streaming¶
원본서버에서 HTTP로 다운로드한 영상을 HTTP Pseudo-Streaming으로 전송한다.

서비스 효율을 높이는 다양한 기능이 제공된다.
- 콘텐츠를 분석, 가장 경제적인 대역폭으로 전송
- 헤더가 뒤에 있어도 전송 단계에서 앞으로 재배치
- 요청 즉시 캐싱/전송되는 빠른 반응성과 성능
세션¶
HTTP 클라이언트가 요청을 보내고 응답이 완료되기 까지를 HTTP 트랜잭션이라고 부른다. HTTP 클라이언트는 하나의 연결을 통해 여러 번의 HTTP 트랜잭션을 진행한다.
# server.xml - <Server><VHostDefault><Options><Http>
# vhosts.xml - <Vhosts><Vhost><Options><Http>
<ClientKeepAliveSec>10</ClientKeepAliveSec>
<ConnectionHeader>keep-alive</ConnectionHeader>
<KeepAliveHeader Max="0">ON</KeepAliveHeader>
<ClientKeepAliveSec> (기본: 10초)
아무런 통신이 없는 상태로 설정된 시간이 경과하면 연결을 종료한다.<ConnectionHeader> (기본: keep-alive)
HTTP 클라이언트에게 보내는 응답의 Connection헤더(keep-alive
또는close
)를 설정한다.<KeepAliveHeader>
ON (기본)
HTTP응답에 Keep-Alive헤더를 명시한다.Max (기본: 0)
를 0보다 크게 설정하면 Keep-Alive헤더의 값으로Max
값이 명시된다. 이후 HTTP 트랜잭션이 진행될때마다 1씩 차감된다.OFF
HTTP응답에 Keep-Alive헤더를 생략한다.
연결 유지정책¶
HTTP 연결 유지정책은 Apache의 정책을 따른다. HTTP 헤더 값에 따른 변수가 많아 다소 복잡하다.
- HTTP 클라이언트 요청에 명시된 Connection헤더 (“Keep-Alive” 또는 “Close”)
- 가상호스트
<ConnectionHeader>
설정 - 가상호스트 연결 Keep-Alive시간 설정
- 가상호스트
<Keep-Alive>
설정
HTTP 클라이언트 요청에 “Connection: Close”로 명시되어 있는 경우
GET / HTTP/1.1 ...(생략)... Connection: Close
이같은 요청에 대해서는 가상호스트 설정여부와 상관없이 “Connection: Close”로 응답한다. Keep-Alive헤더는 명시되지 않는다.
HTTP/1.1 200 OK ...(생략)... Connection: Close
이 HTTP 트랜잭션이 완료되면 HTTP 연결을 종료한다.
<ConnectionHeader>
가Close
로 설정된 경우# server.xml - <Server><VHostDefault><Options><Http> # vhosts.xml - <Vhosts><Vhost><Options><Http> <ConnectionHeader>Close</ConnectionHeader>
HTTP 클라이언트 요청과 상관없이 “Connection: Close”로 응답한다. Keep-Alive헤더는 명시되지 않는다.
HTTP/1.1 200 OK ...(생략)... Connection: Close
<KeepAliveHeader>
가OFF
로 설정된 경우# server.xml - <Server><VHostDefault><Options><Http> # vhosts.xml - <Vhosts><Vhost><Options><Http> <ConnectionHeader>Keep-Alive</ConnectionHeader> <KeepAliveHeader>OFF</KeepAliveHeader>
Keep-Alive헤더가 명시되지 않는다. HTTP 연결은 지속적으로 재사용가능하다.
HTTP/1.1 200 OK ...(생략)... Connection: Keep-Alive
<KeepAliveHeader>
가ON
으로 설정된 경우# server.xml - <Server><VHostDefault><Options><Http> # vhosts.xml - <Vhosts><Vhost><Options><Http> <HttpClientKeepAliveSec>10</HttpClientKeepAliveSec> <ConnectionHeader>Keep-Alive</ConnectionHeader> <KeepAliveHeader>ON</KeepAliveHeader>
Keep-Alive헤더가 명시된다. timeout값은 연결 Keep-Alive시간 설정을 사용한다.
HTTP/1.1 200 OK ...(생략)... Connection: Keep-Alive Keep-Alive: timeout=10
<KeepAliveHeader>
의Max
속성이 설정된 경우# server.xml - <Server><VHostDefault><Options><Http> # vhosts.xml - <Vhosts><Vhost><Options><Http> <HttpClientKeepAliveSec>10</HttpClientKeepAliveSec> <ConnectionHeader>Keep-Alive</ConnectionHeader> <KeepAliveHeader Max="50">ON</KeepAliveHeader>
Keep-Alive헤더에 max값을 명시한다. 이 연결은 max회만큼 사용이 가능하며 HTTP 트랜잭션이 진행될때마다 1씩 감소된다.
HTTP/1.1 200 OK ...(생략)... Connection: Keep-Alive Keep-Alive: timeout=10, max=50
Keep-Alive의 max가 만료된 경우
위의 설정대로 max가 설정되었다면 max는 점차 줄어 다음처럼 1까지 도달하게 된다.
HTTP/1.1 200 OK ...(생략)... Connection: Keep-Alive Keep-Alive: timeout=10, max=1
이 응답은 현재 연결으로 앞으로 1번 HTTP 트랜잭션 진행이 가능하다는 의미이다. 이 연결으로 HTTP 요청이 한번 더 진행될 경우 다음과 같이 “Connection: Close”로 응답한다.
HTTP/1.1 200 OK ...(생략)... Connection: Close
MP4 헤더위치 변경¶
MP4파일의 헤더가 뒤에 있다면 플레이어에 따라 HTTP Pseudo-Streaming이 원활하지 않을 수 있다. 전송 단계에서 헤더 위치를 앞으로 배치하면 이런 문제를 해결할 수 있다.
# server.xml - <Server><VHostDefault><Options><Http>
# vhosts.xml - <Vhosts><Vhost><Options><Http>
<UpfrontMP4Header>ON</UpfrontMP4Header>
<UpfrontMP4Header>
ON (기본)
확장자가 .mp4, .m4a인 파일의 헤더가 뒤에 있다면 앞으로 옮겨서 전송한다.OFF
아무 것도 하지 않는다.
처음 요청되는 콘텐츠의 헤더를 앞으로 옮겨야 한다면 필요한 부분을 우선적으로 다운로드 받는다. 헤더위치 변경은 전송단계에서만 발생할 뿐 원본의 형태를 변경하거나 별도의 저장공간을 사용하지 않는다.
주석
분석할 수 없거나 깨진 파일이라면 원본형태 그대로 서비스된다.
Bandwidth Throttling¶
Bandwidth Throttling(이하 쓰로틀링)이란 (각 연결마다) 대역폭을 최적화하여 전송하는 기능이다. 일반적인 미디어 파일의 내부는 다음과 같이 헤더, V(Video), A(Audio)로 구성되어 있다.

헤더는 쓰로틀링의 대상이 아니다.
헤더는 재생시간이 길거나 키 프레임(Key Frame)주기가 짧을수록 커진다. 그러므로 인식할 수 있는 미디어 파일이라면 원활한 재생을 위해 헤더는 대역폭 제한없이 전송한다. 다음 그림처럼 헤더가 완전히 전송된 뒤 쓰로틀링이 시작된다.

최적화된 대역폭 활용
# server.xml - <Server><VHostDefault><Options><Http>
# vhosts.xml - <Vhosts><Vhost><Options><Http>
<BandwidthThrottling>
<Settings>
<Bandwidth Unit="kbps">2000</Bandwidth>
<Ratio>150</Ratio>
<Boost>5</Boost>
</Settings>
<Throttling>ON</Throttling>
</BandwidthThrottling>
<BandwidthThrottling>
태그 하위에 기본동작을 설정한다.
<Settings>
기본 동작을 설정한다.
<Bandwidth> (기본: 2000 Kbps)
클라이언트 전송 대역폭을 설정한다.Unit
속성을 통해 기본 단위(kbps
,mbps
,bytes
,kb
,mb
)를 설정한다.<Ratio> (기본: 150 %)
<Bandwidth>
설정에 비율을 반영하여 대역폭을 설정한다.<Boost> (기본: 5 초)
일정 시간만큼의 데이터를 속도제한 없이 클라이언트에게 전송한다. 데이터의 양은<Boost>
X<Bandwidth>
X<Ratio>
공식으로 계산한다.
<Throttling>
ON (기본)
조건목록과 일치하면 쓰로틀링을 적용한다.OFF
쓰로틀링을 적용하지 않는다. 최대 속도로 전송한다.
쓰로틀링은 조건목록을 설정해야 동작한다. 설정된 순서대로 우선순위를 가진다. 전송 정책은 /svc/{가상호스트 이름}/http_throttling.txt 에 설정한다.
# /svc/www.example.com/http_throttling.txt
# 구분자는 콤마(,)이며 {조건},{Bandwidth},{Ratio},{Boost} 순서로 표기한다.
# {조건}을 제외한 모든 필드는 생략가능하다.
# 생략된 필드는 ``<Settings>`` 에 설정된 기본 값을 사용한다.
# 모든 조건표현은 acl.txt설정과 동일하다.
# {Bandwidth} 단위는 ``<Settings>`` ``<Bandwidth>`` 의 ``Unit`` 속성을 사용한다.
# 3초의 데이터를 속도 제한없이 전송한 후 3Mbps(3000Kbps = 2000Kbps X 150%)로 클라이언트에게 전송한다.
$IP[192.168.1.1], 2000, 150, 3
# bandwidth만 정의. 5(기본)초의 데이터를 속도 제한없이 전송한 후 800 Kbps로 클라이언트에게 전송한다.
!HEADER[referer], 800
# boost만 정의. 10초의 데이터를 속도 제한없이 전송한 후 1000 Kbps로 클라이언트에게 전송한다.
HEADER[cookie], , , 10
# 확장자가 m4a인 경우 쓰로틀링을 적용하지 않는다.
$URL[*.m4a], no
미디어 파일(MP4, M4A, MP3)을 분석하면 Encoding Rate로부터 Bandwidth를 얻을 수 있다. 접근되는 콘텐츠의 확장자는 반드시 .mp4, .m4a, .mp3 중 하나여야 한다. 동적으로 Bandwidth를 추출하려면 다음과 같이 Bandwidth뒤에 x 를 붙인다.
# /vod/*.mp4 파일에 대한 접근이라면 bandwidth를 구한다. 구할 수 없다면 1000Kbps을 bandwidth로 사용한다.
$URL[/vod/*.mp4], 1000x, 120, 5
# user-agent헤더가 없다면 bandwidth를 구한다. 구할 수 없다면 500Kbps을 bandwidth로 사용한다.
!HEADER[user-agent], 500x
# /low_quality/* 파일에 대한 접근이라면 bandwidth를 구한다. 구할 수 없다면 기본 값을 bandwidth로 사용한다.
$URL[/low_quality/*], x, 200
HTTP QueryString을 사용하여 <Bandwidth>
, <Ratio>
, <Boost>
를 URL로 지정할 수 있다.
QueryString 조건은 http_throttling.txt보다 우선한다.
# server.xml - <Server><VHostDefault><Options><Http>
# vhosts.xml - <Vhosts><Vhost><Options><Http>
<BandwidthThrottling>
<Settings>
<Bandwidth Param="mybandwidth" Unit="mbps">2</Bandwidth>
<Ratio Param="myratio">100</Ratio>
<Boost Param="myboost">3</Boost>
</Settings>
<Throttling QueryString="ON">ON</Throttling>
</BandwidthThrottling>
<Bandwidth>
,<Ratio>
,<Boost>
의Param
용도별 HTTP QueryString 키를 설정한다.
<Throttling>
의QueryString
ON (기본)
QueryString으로 조건을 재정의한다.OFF
QueryString으로 조건을 재정의하지 않는다.
위와 같이 설정되어 있다면 다음과 같이 클라이언트가 요청한 URL에 따라 쓰로틀링이 동적으로 설정된다.
# 10초의 데이터를 속도 제한없이 전송한 후 1.3Mbps(1mbps X 130%)로 클라이언트에게 전송한다.
http://www.example.com/bar/mp4:trip.mp4?myboost=10&mybandwidth=1&myratio=130
반드시 모든 파라미터를 명시할 필요는 없다.
http://www.example.com/bar/mp4:trip.mp4?myratio=150
위와 같이 일부 조건이 생략된 경우 나머지 조건(여기서는 bandwidth, boost)을 결정하기 위해 조건목록을 검색한다.
여기서도 적합한 조건을 찾지 못하는 경우 <Settings>
에 설정된 기본 값을 사용한다.
QueryString이 일부 존재하더라도 조건목록에서 미적용 옵션(no)이 설정되어 있다면 쓰로틀링은 적용되지 않는다.
QueryString을 사용하므로 자칫 caching-policy-applyquerystring 과 혼동을 일으킬 소지가 있다.
caching-policy-applyquerystring 이 ON
인 경우 클라이언트가 요청한 URL의 QueryString이
모두 인식되지만 BoostParam
, BandwidthParam
, RatioParam
은 제외된다.
GET /bar/mp4:trip.mp4?mybandwidth=2000&myratio=130&myboost=10
GET /bar/mp4:trip.mp4?tag=3277&myboost=10&date=20170331
예를 들어 위와 같은 입력은 쓰로틀링 정책을 결정하는데 쓰일 뿐 Caching-Key를 생성하거나 HTTP 원본서버로 요청을 보낼 때는 제거된다. 즉 각각 다음과 같이 인식된다.
GET /trip.mp4
GET /trip.mp4?tag=3277&date=20170331
요청/응답 헤더변경¶
HTTP 클라이언트 요청과 응답을 특정 조건에 따라 변경한다.
# server.xml - <Server><VHostDefault><Options><Http>
# vhosts.xml - <Vhosts><Vhost><Options><Http>
<ModifyHeader FirstOnly="OFF">OFF</ModifyHeader>
<ModifyHeader>
OFF (기본)
변경하지 않는다.ON
헤더 변경조건에 따라 헤더를 변경한다.
헤더 변경시점을 정확히 이해하자.
HTTP 요청헤더 변경시점
HTTP 요청을 최초로 인식하는 시점에 헤더를 변경한다. 헤더가 변경되었다면 변경된 상태로 Cache 모듈에서 처리된다. 단, Host헤더와 URI는 변경할 수 없다.
HTTP 응답헤더 변경시점
HTTP 응답 직전에 헤더를 변경한다. 단, Content-Length는 변경할 수 없다.
헤더 변경조건은 /svc/{가상호스트 이름}/http_headers.txt에 설정한다. 헤더는 멀티로 설정이 가능하므로 조건과 일치한다면 모든 변경설정이 순차적으로 모두 적용된다.
최초 조건에만 변경을 원할 경우 FirstOnly
속성을 ON
으로 설정한다.
서로 다른 조건이 같은 헤더를 변경하는 경우 set
에 의해 Last-Win이 되거나 명시적으로 put
append
할 수 있다.
# /svc/www.example.com/http_headers.txt
# 구분자는 콤마(,)이다.
# 요청변경
# {Match}, {$REQ}, {Action(set|put|append|unset)} 순서로 표기한다.
$IP[192.168.1.1], $REQ[SOAPAction], unset
$IP[192.168.2.1-255], $REQ[accept-encoding: gzip], set
$IP[192.168.3.0/24], $REQ[cache-control: no-cache], append
$IP[192.168.4.0/255.255.255.0], $REQ[x-custom-header], unset
$IP[AP], $REQ[X-Forwarded-For], unset
$HEADER[user-agent: *IE6*], $REQ[accept-encoding], unset
$HEADER[via], $REQ[via], unset
$URL[/source/*.zip], $REQ[accept-encoding: deflate], set
# 응답변경
# {Match}, {$RES}, {Action(set|put|append|unset)}, {condition} 순서로 표기한다.
# {condition}은 특정 응답코드에 한하여 헤더를 변경할 수 있지만 필수는 아니다.
$IP[192.168.1.1], $RES[via: STON for CDN], set
$IP[192.168.2.1-255], $RES[X-Cache], unset, 200
$IP[192.168.3.0/24], $RES[cache-control: no-cache, private], append, 3xx
$IP[192.168.4.0/255.255.255.0], $RES[x-custom-header], unset
$HEADER[user-agent: *IE6*], $RES[vary], unset
$HEADER[x-custom-header], $RES[cache-control: no-cache, private], append, 5xx
$URL[/source/*], $RES[cache-control: no-cache], set, 404
/secure/*.dat, $RES[x-custom], unset, 200
/*.mp4, $RES[Access-Control-Allow-Origin: example1.com], set
/*.mp4, $RES[Access-Control-Allow-Origin: example2.com], put
{Match}는 IP, GeoIP, Header, URL 4가지로 설정이 가능하다.
- IP $IP[...]로 표기하며 IP, IP Range, Bitmask, Subnet 네 가지 형식을 지원한다.
- GeoIP $IP[...]로 표기하며 반드시 GeoIP 가 설정되어 있어야 한다. 국가코드는 ISO 3166-1 alpha-2 와 ISO 3166-1 alpha-3 를 지원한다.
- Header $HEADER[Key : Value]로 표기한다. Value는 명확한 표현과 패턴을 지원한다. Value가 생략된 경우에는 Key에 해당하는 헤더의 존재유무를 조건으로 판단한다.
- URL $URL[...]로 표기하며 생략이 가능하다. 명확한 표현과 패턴을 인식한다.
{$REQ}와 {$RES}는 헤더변경 방법을 설정한다.
set
put
append
의 경우 {Key: Value}로 설정하며,
Value가 입력되지 않은 경우 빈 값(“”)이 입력된다.
unset
의 경우 {Key}만 입력한다.
{Action}은 set
, put
, append
, unset
4가지로 설정이 가능하다.
set
요청/응답 헤더에 설정되어 있는 Key와 Value를 헤더에 추가한다. 이미 같은 Key의 Value 존재한다면 새로운 Value로 덮어쓴다.put
(set
과 유사하나) 같은 Key가 존재하면, 덮어쓰지 않고 새로운 라인으로 붙여 넣는다.append
(set
과 유사하나) 같은 Key가 존재하면, 기존의 Value와 설정된 Value사이에 Comma(,)로 구분하여 값을 결합한다.unset
요청/응답 헤더에 설정되어 있는 Key에 해당하는 헤더를 삭제한다.
{Condition}은 200이나 304같은 구체적인 응답 코드외에 2xx, 3xx, 4xx, 5xx처럼 응답코드 계열조건으로 설정한다. {Match}와 일치하더라도 {Condition}과 일치하지 않는다면 변경이 반영되지 않는다. {Condition}이 생략된 경우 응답코드를 검사하지 않는다.
Accept-Encoding 헤더¶
같은 URL에 대한 HTTP요청이라도 Accept-Encoding헤더의 존재 유무에 따라 다른 콘텐츠가 캐싱될 수 있다. 원본서버에 요청을 보내는 시점에 압축여부를 알 수 없다. 응답을 받았다고해도 압축여부를 매번 비교할 수도 없다.
![]()
URL은 같지만 다른 파일로 인식하여 중복캐싱될 수 있다.
# server.xml - <Server><VHostDefault><Options><Http>
# vhosts.xml - <Vhosts><Vhost><Options><Http>
<AcceptEncoding>ON</AcceptEncoding>
<AcceptEncoding>
ON (기본)
HTTP 클라이언트가 보내는 Accept-Encoding 헤더를 인식한다.OFF
HTTP 클라이언트가 보내는 Accept-Encoding 헤더를 무시한다.
원본서버에서 압축을 지원하지 않거나, 압축이 필요없는 대용량 파일의 경우 OFF
로 설정하는 것이 바람직하다.
Server 헤더¶
HTTP 클라이언트에게 보내는 HTTP 응답에 Server 헤더 명시여부를 설정한다.
# server.xml - <Server><VHostDefault><Options><Http>
# vhosts.xml - <Vhosts><Vhost><Options><Http>
<ServerHeader>ON</ServerHeader>
<ServerHeader>
ON (기본)
원본서버의 Server헤더를 명시한다.OFF
Server헤더를 생략한다.
원본 비표준 헤더¶
성능과 보안상의 이유로 원본서버가 보내는 헤더 중 표준헤더만을 선택적으로 인식한다.
# server.xml - <Server><VHostDefault><Options><Http>
# vhosts.xml - <Vhosts><Vhost><Options><Http>
<OriginalHeader>OFF</OriginalHeader>
<OriginalHeader>
OFF (기본)
표준헤더가 아니라면 무시한다.ON
cookie, set-cookie, set-cookie2를 제외한 모든 헤더를 저장하여 클라이언트에게 전달한다. 단, 메모리와 저장비용을 좀 더 소비한다.
LIVE¶
이 장에서는 STON 미디어 서버의 LIVE 서비스 구성에 대해 설명한다. STON 미디어 서버는 원본 LIVE 스트림으로부터 Push받거나, 게시된 원본 LIVE 스트림을 Pull방식으로 수신할 수 있다. 두 방식을 혼용하면 쉽게 확장이 가능한 LIVE 서비스를 구성할 수 있다.

가상호스트의 Type
속성이 반드시 Live로 설정되어 있어야 한다.
# vhosts.xml
<Vhosts>
<Vhost Name="www.example.com/bar" Type="LIVE">
...
</Vhost>
</Vhosts>
주석
STON 미디어 서버는 LIVE 소스를 트랜스코딩(Transcoding)하지 않는다.
프로토콜별 URL 표현은 프로토콜/URL 을 참고한다. 다른 프로토콜간 변환이 발생할 때(RTMP to HLS/HLS to RTMP) 기술적인 제약사항을 고려해야 한다.
경고
VOD와 LIVE는 동적으로 변경될 수 없다. 같은 이름의 가상호스트를 사용하려면 삭제 후 다시 추가해주어야 한다.
채널(Channel)¶
채널(Channel)은 1개의 LIVE 서비스를 의미한다. 채널은 첫번째 참가자(Participant)에 의해 생성되고, 마지막 참가자와의 연결이 종료되면 자동으로 파괴된다. 참가자(Participant)는 LIVE를 시청하는 클라이언트 또는 LIVE 인코더(Encoder)를 의미한다.

채널의 생애(Life Cycle)
하나의 가상호스트는 별도의 설정 없이도 여러 채널을 동시에 서비스할 수 있다.

1가상호스트 - 멀티 채널
단, 가상호스트에 속한 모든 채널의 원본 프로토콜은 동일해야 한다.
주석
채널은 LIVE의 특성상 메모리만을 이용해 동작한다. 따라서 생성할 수 있는 채널의 수는 메모리 크기에 따라 다르다. 예를 들어 사용가능한 메모리 크기가 10GB이고 채널 하나당 10MB를 소비한다면 약 1,000개의 채널이 서비스 가능하다. 메모리 한계를 초과할 경우 채널이 생성되지 않는다.
생성¶
LIVE 소스와 통신할 프로토콜을 지정해주어야 한다.
# vhosts.xml
<Vhosts>
<Vhost Name="www.example.com/bar" Type="LIVE">
<Origin Protocol="RTMP.Push">
...
</Origin>
</Vhost>
</Vhosts>
<Origin>
Protocol (기본: RTMP.Push)
LIVE 채널이 LIVE 소스(인코더 또는 원본서버)와 통신할 프로토콜(RTMP.Push
,RTMP.Pull
,HLS.Pull
)을 설정한다. 채널이 생성되면Protocol
이 변경되어도 반영되지 않는다.
클라이언트 요청 프로토콜과 상관없이 <Origin Protocol="...">
설정으로 원본서버와 통신한다.
채널이 생성되는 경우는 3가지 이다.
RTMP.Push
인코더로부터 LIVE 스트림이 RTMP로 Push되는 경우RTMP.Pull
클라이언트가 LIVE 스트림을 RTMP로 요청(Pull)하는 경우HLS.Pull
클라이언트가 LIVE 스트림을 HLS로 요청(Pull)하는 경우
주석
누구나 채널을 생성(Push 또는 Pull)할 수 있다. 이를 제한하고 싶다면 서버 접근제어 나 가상호스트 접근제어 를 사용한다.
확장¶
채널을 손쉽게 확장하기 위해서는 STON 미디어 서버를 2계층으로 구성할 것을 권장한다.

중규모 채널구성
Relay 서버는 LIVE 소스(주로 인코더)로부터 LIVE 스트림을 Push받는다. Edge 서버는 클라이언트 요청에 의해(=On demand) LIVE 스트림을 Relay 서버로부터 Pull한다.
더 많은 사용자에게 서비스하기 위해 다음과 같이 3계층 구성도 사용된다.

대규모 채널구성
파괴¶
채널에 연결된 참가자가 없을 경우 <ClientKeepAliveSec>
시간(초)만큼 채널을 유지한 뒤 파괴된다.
# server.xml - <Server><VHostDefault><OriginOptions>
# vhosts.xml - <Vhosts><Vhost><OriginOptions>
<Rtmp>
<ClientKeepAliveSec>60</ClientKeepAliveSec>
</Rtmp>
<Hls>
<ClientKeepAliveSec>60</ClientKeepAliveSec>
</Hls>
<ClientKeepAliveSec> (기본: 60초)
마지막 클라이언트의 연결이 종료된 후 설정된 시간(초)만큼 경과 후 채널을 파괴한다.
(HLS처럼) 클라이언트가 항상 채널에 연결되어 있는 것은 아니다. 채널을 즉시 파괴하면 자칫 너무 많은 생성/파괴가 발생할 수 있으며 이는 서비스 품질에 좋지 않은 영향을 줄 수 있다. 따라서 서비스 특성에 맞추어 일정시간 채널을 유지하도록하여 서비스 품질을 보장한다.
Adobe RTMP¶
Adobe RTMP를 이용해 인코더로부터 LIVE 스트림을 Push받거나, 게시된 LIVE 스트림을 RTMP로 Pull한다.

가상호스트는 반드시 Push 또는 Pull 중 한가지 방식을 선택해야 한다. 이하 Push/Pull 사이에 혼동을 방지하기 위해 세부 주제 앞에 동작방식을 명시한다.
[Push] 기본동작¶
LIVE 스트림을 인코더로부터 직접 Push받을 수 있다.
아래와 같이 Protocol="RTMP.push"
설정으로 동작하며 원본서버 주소가 필요하지 않다.
# vhosts.xml
<Vhosts>
<Vhost Name="www.example.com/bar" Type="LIVE">
<Origin Protocol="RTMP.push" />
</Vhost>
</Vhosts>
가상호스트가 생성되었다면 별도의 설정없이 여러 스트림을 동시에 Push받을 수 있다.

Push받을 때 채널이 생성된다.
[Push] 다중화¶
같은 URL로 복수의 Live 스트림이 Push되는 경우 가장 먼저 연결된 스트림이 Active 소스가 되며 나머지는 Standby 소스가 된다.

RTMP Push - 멀티소스 구성
주석
소스는 최대 3개 (1 Active, 2 Standby)까지 구성이 가능하다.
Active 소스와 연결이 종료되면 연결된 순서대로 Standby 소스가 Active 소스로 승격된다.

RTMP Push - Active 장애발생 처리
이때 각 소스간 서로 다른 Timestamp를 사용하여도 최초 Active 소스의 Timestamp가 승계되어 매끄러운(Seamless) 재생환경을 구성한다.
[Push] ABR 스트리밍¶
LIVE 스트림 Push를 통해 ABR(Adaptive bitrate) 스트리밍(streaming)을 구성할 수 있다. 이를 위해서는 개별로 Push되는 스트림을 하나의 ABR 스트림으로 묶어 주어야 한다.
기본적으로 STON 미디어 서버는 같은 소스를 다양한 Bitrate로 Push 해도 이를 알지 못하며, 다음처럼 각기 다른 LIVE 스트림으로 인식한다.

ABR 스트리밍은 사전에 패턴을 등록하여 동작한다.
# vhosts.xml - <Vhosts><Vhost><OriginOptions><Rtmp>
<ABR>
<Stream Name="*_abr">
<Pattern>*_720</Pattern>
<Pattern>*_480</Pattern>
<Pattern>*_360</Pattern>
</Stream>
</ABR>
<ABR>
ABR로 구성할 스트림을 등록한다.<Stream>
하위의 멀티<Pattern>
을 하나의 ABR 스트림으로 구성한다. 구성된 ABR 스트림은Name
을 URL 로써 접근이 가능하다.
위와 같이 구성하고 다음처럼 각기 다른 Bitrate의 스트림들이 Push되었다고 가정해 보자.
/myLiveStream_720
/myLiveStream_480
/myLiveStream_360
“/myLiveStream_” 은 패턴 “*_”와 일치한다. 세 개의 스트림은 아래의 ABR 스트림으로 구성된다.
/myLiveStream_abr -> /myLiveStream_720 + /myLiveStream_480 + /myLiveStream_360
HLS로 제공되었을 경우 주소는 /myLiveStream_abr/playlist.m3u8이 되며 내용은 다음과 같다.
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=1100000,RESOLUTION=1280x720,CODECS="avc1.66.30, mp4a.40.5"
/myLiveStream_720/playlist.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=750000,RESOLUTION=858x480,CODECS="avc1.66.30, mp4a.40.5"
/myLiveStream_480/playlist.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=1100000,RESOLUTION=480x360,CODECS="avc1.66.30, mp4a.40.5"
/myLiveStream_360/playlist.m3u8
그림으로 표현하면 아래와 같다.

조금 더 복잡한 예로, 아래와 같이 동시에 여러 Live 스트림이 입력된 상황을 가정해 보자. (일치하는 패턴은 우측에 명시하였다.)
/myLiveStream_720 (*_720)
/myLiveStream_480 (*_480)
/myLiveStream_360 (*_360)
/AliceLive_720 (*_720)
/AliceLive_360 (*_360)
/JamesLive_720_clips X
/JamesLive_360_clips X
/JohnLive_1080 X
/JohnLive_720 (*_720)
/cctv X
이때 구성되는 ABR 스트림은 다음과 같다.
/myLiveStream_abr -> /myLiveStream_720 + /myLiveStream_480 + /myLiveStream_360
/AliceLive_abr -> /AliceLive_720 + /AliceLive_360
/JohnLive_abr -> /JohnLive_720
그림으로 표현하면 아래와 같다.

이와 같은 방식은 각 스트림 이름을 정확히 알지 못해도 패턴만으로 ABR 스트림 구성을 자동화할 수 있다는 장점이 있다.
[Pull] 기본동작¶
최초 클라이언트 요청이 발생하면 LIVE 스트림을 원본서버로부터 Pull한다.
아래와 같이 Protocol="RTMP.Pull"
설정으로 동작한다.
# vhosts.xml
<Vhosts>
<Vhost Name="www.example.com/bar" Type="LIVE">
<Origin Protocol="RTMP.Pull">
...
</Origin>
</Vhost>
</Vhosts>
가상호스트가 생성되었다면 별도의 설정없이 여러 스트림을 동시에 Pull할 수 있다.

클라이언트 요청에 의해 채널이 생성된다.
[Pull] 다중화¶
Active 소스와 연결이 성립되면(=채널이 정상적으로 생성되면) Standby 소스를 확보하기 위해 모든 원본서버 주소로 LIVE 스트림을 요청한다.

RTMP Pull - 멀티소스 구성
주석
소스는 최대 3개 (1 Active, 2 Standby)까지 구성이 가능하다.
Active 소스와 연결이 종료되면 확보된 순서대로 Standby 소스가 Active 소스로 승격된다.

RTMP Pull - Active 장애발생 처리
이때 각 소스간 서로 다른 Timestamp를 사용하여도 최초 Active 소스의 Timestamp가 승계되어 매끄러운(Seamless) 재생환경을 구성한다.
RTMP to RTMP 전송¶
LIVE 소스로부터 수신 받은 RTMP 스트림을 가공없이 RTMP 클라이언트에게 전송한다.
대부분 세션 설정을 그대로 사용하지만, <BufferSize>
의 의미가 다르다.
# server.xml - <Server><VHostDefault><Options><Rtmp>
# vhosts.xml - <Vhosts><Vhost><Options><Rtmp>
<BufferSize>3</BufferSize>
<BufferSize> (기본: 3초)
클라이언트가 PLAY를 요청했을 때 “현재시점”을 기준으로 설정된 시간(초) 이전부터 전송한다.값이 0이라면 PLAY 요청 시 채널의 “현재시점”을 전송한다.
LIVE 서비스의 특성상 방송 시점과 클라이언트 시청 시점의 차이가 짧을수록 좋다.

BufferSize , 시점, 네트워크 안정성, 원활한 재생의 관계
이때 3G/공용Wi-Fi 등 불안정한 네트워크 환경이라면 영상이 자주 끊기는 등 재생이 원활하지 않을 가능성이 높다. 클라이언트가 일정시간을 버퍼링한다면 순간적인 네트워크 지연에도 끊김없는 재생이 가능하다.
RTMP to HLS 전송¶
HLS 전송을 위해서는 RTMP 스트림을 Packetizing해야 한다. 세션 , Packetizing 설정을 그대로 사용한다. 다른 점에 대해서만 설명한다.
# server.xml - <Server><VHostDefault><Options><Hls>
# vhosts.xml - <Vhosts><Vhost><Options><Hls>
<Packetizing Status="Active">
<Index Ver="3" Alternates="ON">index.m3u8</Index>
<Sequence>0</Sequence>
<Duration ChunkCount="3">10</Duration>
<AlternatesName>playlist.m3u8</AlternatesName>
<MP3SegmentType>TS</MP3SegmentType>
</Packetizing>
<Packetizing>
채널이 이미 생성되었다면<Packetizing>
및 하위 설정의 값을 바꾸어도 적용되지 않는다.<Duration> (기본: 10초)
스트리밍(Streaming)된 데이터가 Duration동안 저장되면 Chunk가 생성되고 인덱스파일(m3u8)이 갱신된다.ChunkCount (기본 3)
인덱스파일(m3u8)에서 제공할 Chunk개수를 지정한다.
RTMP를 HLS로 변환할 때는 Streaming되는 Audio/Video를 Chunk(MPEG2-TS)파일로 만들어야 한다.
(기본 <Duration>
설정인 경우) RTMP를 이용한 LIVE가 진행되면 신규 유저에게 제공되는 HLS는 아래와 같다.

RTMP시점보다 30초 전 시점부터 시청한다.
RTMP의 “현재시점” 과 최대한 맞추기 위해서는 <Duration>
을 줄일 필요가 있다.
# server.xml - <Server><VHostDefault><Options><Hls>
# vhosts.xml - <Vhosts><Vhost><Options><Hls>
<Packetizing>
<Duration ChunkCount="3">2</Duration>
</Packetizing>

RTMP시점보다 6초 전 시점부터 시청한다.
주석
채널이 HLS 클라이언트에 의해 생성되었다면 해당 클라이언트는 최대 <Duration>
만큼 기다려야 한다.
첫번째 Chunk가 생성된 이후부터 HLS 전송이 가능하기 때문이다.
Apple HLS¶
원본서버에서 HTTP로 다운로드한 영상을 HLS(HTTP Live Streaming)으로 전송한다.

모든 인덱스/Chunk 파일은 동적으로 생성되며 별도의 저장공간을 소비하지 않는다. 서비스 시점에 임시적으로 생성되며 서비스가 끝나면 사라진다.
[Pull] 기본동작¶
최초 클라이언트 요청이 발생하면 LIVE 원본서버로부터 Pull한다.
아래와 같이 Protocol="HLS.Pull"
설정으로 동작한다.
# vhosts.xml
<Vhosts>
<Vhost Name="www.example.com/bar" Type="LIVE">
<Origin Protocol="HLS.Pull">
...
</Origin>
</Vhost>
</Vhosts>
가상호스트가 생성되었다면 별도의 설정없이 여러 스트림을 동시에 Pull할 수 있다.

Pull하면 채널이 생성된다.
[Pull] 다중화¶
Active 소스와 연결이 성립되면(=채널이 정상적으로 생성되면) Standby 소스를 확보하기 위해 모든 원본서버 주소로 HLS를 요청한다.

HLS Pull - 멀티소스 구성
주석
소스는 최대 3개 (1 Active, 2 Standby)까지 구성이 가능하다.
Active 소스와 연결이 종료되면 확보된 순서대로 Standby 소스가 Active 소스로 승격된다.

HLS Pull - Active 장애발생 처리
이때 각 소스간 서로 다른 Timestamp를 사용하여도 최초 Active 소스의 Timestamp가 승계되어 매끄러운(Seamless) 재생환경을 구성한다.
HLS to RTMP 전송¶
LIVE 소스로부터 수신 받은 HLS Chunk(MPEG2-TS)를 RTMP 스트림으로 변환하여 전송한다.
신규 RTMP 클라이언트가 시청하는 시점은 플레이리스트(M3U8) 맨 앞에 명시되는 파일이다.

플레이리스트가 갱신될때 신규 시청 시점도 같이 갱신된다.

접근제어¶
이 장에서는 원치않는 VOD/LIVE 접근을 차단하는 방법에 대해 설명한다. 접근차단은 보통 ACL(Access Control List)에 차단목록(Black-list)을 작성하지만 설정편의상 허용목록(White-list)을 작성하기도 한다.
접근제어는 접속단계에서 수행하는 서버 접근제어와 가상호스트마다 설정하는 가상호스트 접근제어로 나뉜다. 수준별로 시점과 판단기준이 다르므로 효과적인 차단시점을 결정해야 한다. 접근제어의 동작은 모두 로그에 기록된다.
주석
통상적으로 클라이언트는 VOD나 LIVE를 시청하는 사용자를 의미하지만, 이 장에서는 STON 미디어 서버에 접근하는 모든 IP연결(클라이언트 또는 인코더 등)을 의미한다.
서버 접근제어¶
클라이언트가 서버에 접속하는 순간 IP정보를 통해 차단여부를 결정한다. 접속단계에서 처리되기 때문에 가장 확실하며 빠르다. 전역설정(server.xml)에 설정하며 가장 높은 우선순위를 가진다.
# server.xml - <Server><Host>
<ServiceAccess Default="Allow">
<Deny>192.168.7.9-255</Deny>
<Deny>192.168.8.10/255.255.255.0</Deny>
</ServiceAccess>
<ServiceAccess>
IP기반의 ACL을 설정한다. IP, IP Range, Bitmask, Subnet 이상 네 가지 형식을 지원한다. 순서를 인식하며 상위에 설정된 표현이 우선한다.Default (기본: Allow)
속성은 일치하는 조건이 없을 때 처리방법이다. 이 속성을Deny
로 설정하면 하위에<Allow>
로 허가할 조건들을 명시해주어야 한다.
차단된 IP는 admin-log-deny 에 기록된다.
GeoIP¶
GeoIP를 사용하여 국가별로 접근을 차단할 수 있다. GeoIP Databases 중 Binary Databases를 GEOIP_MEMORY_CACHE and GEOIP_CHECK_CACHE 로 링크하여 실시간으로 변경내용을 반영한다.
# server.xml - <Server><Host>
<ServiceAccess GeoIP="/var/ston/geoip/">
<Deny>AP</Deny>
<Deny>GIN</Deny>
</ServiceAccess>
<ServiceAccess>
의 GeoIP
속성에 GeoIP Databases 경로를 설정한다.
국가코드는 ISO 3166-1 alpha-2 와
ISO 3166-1 alpha-3 를 지원한다.
주석
GeoIP는 파일명이 예약되어 있으므로 반드시 저장된 로컬경로를 입력하도록 설정한다. 또한 자동으로 변경이 반영되기 때문에 별도로 설정을 Reload하지 않아도 된다.
GeoIP가 설정되어 있다면 해당 디렉토리에 저장된 파일목록을 조회한다. 설정되어 있지 않다면 404 NOT FOUND로 응답한다.
http://127.0.0.1:20040/monitoring/geoiplist
결과는 JSON형식으로 제공된다.
{
"version": "1.2.0",
"method": "geoiplist",
"status": "OK",
"result":
{
"path" : "/usr/ston/geoip/",
"files" :
[
{
"file" : "GeoIP.dat",
"size" : 766255
},
{
"file" : "GeoLiteCity.dat",
"size" : 12826936
}
]
}
}
가상호스트 접근제어¶
가상호스트별로 접근을 제어한다. 클라이언트가 요청(HTTP 또는 RTMP)을 보낼 때 차단여부를 결정한다. 왜냐하면 연결만하고 구체적인 요청을 보내지 않는다면 가상호스트를 찾을 수 없기 때문이다.
# server.xml - <Server><VHostDefault><Options>
# vhosts.xml - <Vhosts><Vhost><Options>
<AccessControl Default="Allow">OFF</AccessControl>
<AccessControl>
OFF (기본)
ACL이 활성화되지 않는다. 모든 클라이언트 요청을 허가한다.ON
ACL이 활성화된다. 차단된 요청에 대해서는 프로토콜에 따른 적절한 응답코드를 제공한다.Default (기본: Allow)
속성이Allow
라면 ACL은 거부목록이 된다. 반대로Deny
라면 ACL은 허가목록이 된다.
Deny된 요청은 admin-log-access 에 TCP_DENY로 기록된다.
Deny 응답¶
각 프로토콜 별로 요청이 차단될 때 보낼 응답을 결정한다.
# server.xml - <Server><VHostDefault><Options><Http>
# vhosts.xml - <Vhosts><Vhost><Options><Http>
<DenialCode>401</DenialCode>
<DenialCode> (기본: 401 Unauthorized)
HTTP 요청이 차단될 때 보낼 응답코드를 설정한다. HTTP 응답코드는 RFC2616 을 참고한다.
주석
HTTP 기반 프로토콜(HLS, MPEG-DASH)은 모두 <HTTP><DenialCode>
를 사용한다.
RTMP 프로토콜에서는 NetStream을 통해 재생하는 단계가 Connect, Play로 나뉘어 있어 각 단계마다 보낼 수 있는 메시지가 다르다.
# server.xml - <Server><VHostDefault><Options><Rtmp>
# vhosts.xml - <Vhosts><Vhost><Options><Rtmp>
<DenialCodeConnect>Rejected</DenialCodeConnect>
<DenialCodePlay>Failed</DenialCodePlay>
<DenialCodeConnect> (기본: Rejected)
NetStream.Connect 요청이 차단될 때 보낼 응답코드를 설정한다.<DenialCodePlay> (기본: Failed)
NetStream.Play 요청이 차단될 때 보낼 응답코드를 설정한다.
ActinScript 3.0 - NetStatusEvent 에서 공식적으로 언급하는 응답 메시지는 다음과 같다.
NetStream 코드 | Level | 의미 |
---|---|---|
Connect.Closed | status | P2P 연결이 성공적으로 종료되었습니다. |
Connect.Failed | error | P2P 연결 시도에 실패했습니다. |
Connect.Rejected | error | P2P 연결 시도에 다른 피어에 대한 액세스 권한이 없습니다. |
Connect.Success | status | P2P 연결 시도에 성공했습니다. |
Play.Failed | error | 이 테이블에 나열되지 않은 원인(예: 구독자에게 읽기 액세스 권한이 없음)으로 인해 재생에 오류가 발생했습니다. |
Play.FileStructureInvalid | error | 응용 프로그램이 잘못된 파일 구조를 감지했습니다. |
Play.InsufficientBW | warning | 클라이언트가 정상적인 속도로 데이터를 재생하기에 충분한 대역폭을 가지고 있지 않습니다. |
Play.NoSupportedTrackFound | status | 응용 프로그램이 지원되는 추적(비디오, 오디오 또는 데이터)을 감지하지 못했습니다. |
Play.PublishNotify | status | 스트림의 첫 배급이 모든 구독자에게 보내집니다. |
Play.Reset | status | 재생 목록 재설정이 원인입니다. 참고: AIR 3.0 for iOS에서는 지원되지 않습니다. |
Play.Start | status | 재생이 시작되었습니다. |
Play.Stop | status | 재생이 중지되었습니다. |
Play.StreamNotFound | error | NetStream.play() 메서드에 전달된 파일을 찾을 수 없습니다. |
Play.Transition | status | 서버가 비트율 스트림의 전환 결과로 다른 스트림으로 전환하는 명령을 받았습니다. |
Play.UnpublishNotify | status | 스트림의 배급 정지가 모든 구독자에게 보내집니다. |
가상호스트 ACL¶
모든 클라이언트 요청에 대하여 허용/거부/Redirect 여부를 판단한다. ACL은 /svc/{가상호스트 이름}/acl.txt에 설정한다.
# /svc/www.example.com/acl.txt
# 구분자는 콤마(,)이며 {조건},{키워드 = allow | deny | redirect} 순서로 표기한다.
# n 개의 조건을 결합(AND)하기 위해서는 &를 사용한다.
$IP[192.168.1.1], allow
$IP[192.168.2.1-255]
$IP[192.168.3.0/24], deny
$IP[192.168.4.0/255.255.255.0]
$IP[AP] & !HEADER[referer], allow
$HEADER[cookie: *ILLEGAL*], deny
$HEADER[via: Apache]
$HEADER[x-custom-header]
!HEADER[referer] & !HEADER[user-agent] & !HEADER[host], deny
$URL[/bar/myLiveStream], allow
$URL[/private/*], deny
/broadcast/*adult*, deny
/secure/*.dat
# Redirect는 HTTP 에서만 동작한다.
# Redirect일 경우 키워드 뒤에 이동시킬 URL을 명시한다. (HTTP 응답의 Location헤더의 값으로 명시)
$IP[GIN], redirect, /page/illegal_access.html
$HEADER[referer:], redirect, http://another-site.com
# referer헤더가 존재하지 않는다면 example.com에 요청 URI를 붙여서 Redirect한다.
# 클라이언트 요청은 /로 시작하기 때문에 #URI 앞에 /를 붙이지 않도록 주의한다.
!HEADER[referer], redirect, http://example.com#URI
설정은 우선순위를 가지며 조건은 IP, GeoIP, Header, URL 4가지로 설정이 가능하다.
IP
$IP[...]로 표기하며 IP, IP Range, Bitmask, Subnet 네 가지 형식을 지원한다.GeoIP
$IP[...]로 표기하며 반드시 GeoIP설정이 되어 있어야 동작한다.Header
$HEADER[Key : Value]로 표기한다. Value는 명확한 표현과 패턴을 인식한다. $HEADER[Key:]처럼 구분자는 있지만 Value가 빈 문자열이라면 요청 헤더의 값이 비어 있는 경우를 의미한다. $HEADER[Key]처럼 구분자 없이 Key만 명시되어 있다면 Key에 해당하는 헤더의 존재유무를 조건으로 판단한다.URL
$URL[...]로 표기하며 생략이 가능하다. 명확한 표현과 패턴을 인식한다.
$는 “조건에 맞다면 ~ 한다”를 의미하지만 !는 “조건에 맞지 않는다면 ~ 한다”를 의미한다. 다음과 같이 부정조건으로 지원한다.
# 국가가 KOR이 아니라면 deny한다.
!IP[KOR], deny
# referer헤더가 존재하지 않는다면 deny한다.
!HEADER[referer], deny
# /secure/ 경로 하위가 아니라면 allow한다.
!URL[/secure/*], allow
주석
HTTP와 RTMP는 형식과 의미가 다르지만 URL이외의 정보를 Key-Value구조로 다룬다는 점에서는 동일하다. 따라서 $HEADER 표현은 RTMP에서 Object의 Property를 검사하는 것으로 사용된다.

RTMP의 Connect 요청 예제
위 요청은 아래 조건으로 차단시킬 수 있다.
$HEADER[flashVer: LNX 9,0,124,2], deny
$HEADER[fpad: false], deny
$HEADER[videoCodecs: 4071], deny
모니터링 & 통계¶
가상호스트 - 종합통계¶
가상호스트 종합통계에 Type속성과 RTMP 원본통계가 추가된다.
"VirtualHost": <VirtualHost
[ Name="www.example.com"
{ Uptime="155986"
"Name":"www.example.com", Type="live"
"Uptime":155996, ... (생략) ...
"Type":"live" MpegDashOriginOutbound="0"
... (생략) ... RtmpOriginSession="0"
"MpegDashOriginOutbound":2509, RtmpOriginActiveSession="0"
"RtmpOriginSession":1, RtmpOriginInbound="0"
"RtmpOriginActiveSession":1, RtmpOriginOutbound="0"
"RtmpOriginInbound":2481, AllClientSession="0"
"RtmpOriginOutbound":8, ... (생략) ...
"AllClientSession":54,
... (생략) ...
RtmpOriginSession
연결된 RTMP 원본 세션 수RtmpOriginActiveSession
전송 중인 RTMP 원본 세션 수RtmpOriginInbound (단위: Bytes, 평균)
RTMP를 이용해 원본으로부터 받은 양RtmpOriginOutbound (단위: Bytes, 평균)
RTMP를 이용해 원본으로 전송한 양
가상호스트 Type이 LIVE
인 경우 각 채널별 상세 통계가 Channel로 추가된다.
"VirtualHost": <VirtualHost
[ Name="www.example.com"
{ Uptime="155986"
"Name":"www.example.com", AllOriginSession="0"
... (생략) ... ... (생략) ...
"RtmpClientOutbound":8, ByteHitRatio="0">
"RequestHitRatio":6387, <Memory>784786700</Memory>
"ByteHitRatio":2926 <SecuredMemory>0</SecuredMemory>
"Memory":785740769, <Disk> ... </Disk>
"SecuredMemory":0, <CacheFileEvent> ... </CacheFileEvent>
"Disk": { ... }, <OriginTraffics> ... </OriginTraffics>
"CacheFileEvent": { ... }, <ClientTraffic> ... </ClientTraffic>
"OriginTraffics": { ... }, <Channel> ... </Channel>
"ClientTraffics": { ... }, <Channel> ... </Channel>
"Channel": { ... } <Channel> ... </Channel>
}, </VirtualHost>
...
]
Channel
개별 LIVE 방송에 대한 상세통계
가상호스트가 LIVE 로 설정되어 있는 경우 가상호스트의 종합통계와 원본/클라이언트 통계는 Channels
통계를 합한 것과 같다.
Channel 통계¶
가상호스트 통계와 마찬가지로 채널 통계가 프로토콜별로 구분되어 제공된다.
"Channel": <Channel
[ Name="/myLiveStream"
{ Uptime="155986"
"Name":"/myLiveStream", AllOriginSession="0"
"Uptime":155996, AllOriginActiveSession="0"
"AllOriginSession":33, AllOriginInbound="0"
"AllOriginActiveSession":20, AllOriginOutbound="0"
"AllOriginInbound":688177, HttpOriginSession="0"
"AllOriginOutbound":14184, HttpOriginActiveSession="0"
"HttpOriginSession":62, HttpOriginInbound="0"
"HttpOriginActiveSession":62, HttpOriginOutbound="0"
"HttpOriginInbound":2375, HlsOriginSession="0"
"HttpOriginOutbound":2509, HlsOriginActiveSession="0"
"HlsOriginSession":62, HlsOriginInbound="0"
"HlsOriginActiveSession":62, HlsOriginOutbound="0"
"HlsOriginInbound":2375, MpegDashOriginSession="0"
"HlsOriginOutbound":2509, MpegDashOriginActiveSession="0"
"MpegDashOriginSession":62, MpegDashOriginInbound="0"
"MpegDashOriginActiveSession":62, MpegDashOriginOutbound="0"
"MpegDashOriginInbound":2375, AllClientSession="0"
"MpegDashOriginOutbound":2509, AllClientActiveSession="0"
"AllClientSession":54, AllClientInbound="0"
"AllClientActiveSession":2327, AllClientOutbound="0"
"AllClientInbound":2481, HttpClientSession="0"
"AllClientOutbound":8, HttpClientActiveSession="0"
"HttpClientSession":54, HttpClientInbound="0"
"HttpClientActiveSession":2327, HttpClientOutbound="0"
"HttpClientInbound":2481, HlsClientSession="0"
"HttpClientOutbound":8, HlsClientActiveSession="0"
"HlsClientSession":54, HlsClientInbound="0"
"HlsClientActiveSession":2327, HlsClientOutbound="0"
"HlsClientInbound":2481, MpegDashClientSession="0"
"HlsClientOutbound":8, MpegDashClientActiveSession="0"
"MpegDashClientSession":54, MpegDashClientInbound="0"
"MpegDashClientActiveSession":2327, MpegDashClientOutbound="0"
"MpegDashClientInbound":2481, RtmpClientSession="0"
"MpegDashClientOutbound":8, RtmpClientActiveSession="0"
"RtmpClientSession":54, RtmpClientInbound="0"
"RtmpClientActiveSession":2327, RtmpClientOutbound="0"
"RtmpClientInbound":2481, RequestHitRatio="0"
"RtmpClientOutbound":8, ByteHitRatio="0">
"RequestHitRatio":6387, <OriginTraffics> ... </OriginTraffics>
"ByteHitRatio":2926 <ClientTraffic> ... </ClientTraffic>
"OriginTraffics": { ... }, </Channel>
"ClientTraffics": { ... }
},
...
]
원본/클라이언트 상세통계는 가상호스트와 동일하다.
채널 통계는 고정된 것이 아니라 동적으로 생성/파괴된다. ( 채널(Channel) 참고) 따라서 채널통계는 생성과 동시에 제공되고 파괴되면 제공되지 않는다.
주석
채널 통계를 고정시키고 싶다면 채널의 <ClientKeepAliveSec>
를 길게 주거나, 가상호스트 당 하나의 채널만 서비스하는 것이 바람직하다.
RRD + Graph¶
5분 이전의 통계는 “평균 Gauge” 로 RRD에 기록되며, Graph API를 통해 제공된다.
시간단위 | 보관날짜(일) | # of lines | Interval | RRA | ||
---|---|---|---|---|---|---|
5 min | 90 | 25920 | 0 | LAST | ||
30 min | 120 | 5760 | 6 | AVERAGE | MINIMUM | MAXIMUM |
1 hour | 180 | 4320 | 12 | AVERAGE | MINIMUM | MAXIMUM |
6 hour | 365 | 1460 | 72 | AVERAGE | MINIMUM | MAXIMUM |
1 day | 730 | 730 | 288 | AVERAGE | MINIMUM | MAXIMUM |
RRD¶
가상호스트/채널마다 RRD를 생성하고 가상호스트가 삭제되면 파기한다.
주석
개발단계에서 RRD 파일 크기가 너무 커지는 경우를 감안하여 최대 라인수는 협의가 필요함
rrdtool create x.rrd
— start 현재 시간
— step 300
DS:variable_name:DST:heartbeat:min:max
RRA:CF:xff:step:rows
- DS 파트 - 데이터 소스를 지정하는 부분
- DST = GAUGE // 현재 STON이 모든 수치를 GAUGE 형태로 RRD Update
- heartbeat = 600 // 현재 5분 (300초) 단위로 업데이트가 이루어지는데, 업데이트가 불가한 경우 (수치를 못 가져왔다는 등의 Wait)에 얼마나 기다릴지를 나타냄.
- min, max = 데이터 업데이트 시의 최소 최대 수치 -> 지정해주는 것이 좋겠음. U는 Unknown. CPU를 예로 든다면, 최소는 0%, 최대는 100% (또는 CPU 갯수에 따라 나눠서 나오는 수치는 100%*CPU 이지만, 적당히 큰수 6400% 등으로 크게 잡아두는 것도 괜찮음)
RRA 파트 데이터의 구조 지정하는 부분
- CF = LAST(마지막 값, 가공없음, 5분 최초 단위는 LAST를 보통 사용함), AVERAGE, MIN, MAX 등
- step = 데이터가 업데이트되는 Inverval - 여기서는 300 (5분)
- rows = 데이터 베이스의 저장 길이 (몇 라인까지 저장할 것인가)
예제
rrdtool create x.rrd
— start 현재시간
— step 300
DS:var1:GAUGE:600:0:6400
DS:var2:GAUGE:600:0:100
DS:var3:GAUGE:600:0:10000000
DS:var4:GAUGE:600:0:U
RRA:LAST:0.5:1:25920
RRA:AVERAGE:0.5:6:5760
RRA:AVERAGE:0.5:12:4320
RRA:AVERAGE:0.5:72:1460
RRA:AVERAGE:0.5:288:730
RRA:MIN:0.5:6:5760
RRA:MIN:0.5:12:4320
RRA:MIN:0.5:72:1460
RRA:MIN:0.5:288:730
RRA:MAX:0.5:6:5760
RRA:MAX:0.5:12:4320
RRA:MAX:0.5:72:1460
RRA:MAX:0.5:288:730
rrdtool update x.rrd {int(현재시간/300)*300}:데이터값 {int(현재시간/300)*300}:데이터값 {int(현재시간/300)*300}:데이터값
{int(현재시간/300)*300}
를 통해서 5분 단위로 업데이터 단위 시간이 딱 잘라지도록 함. (현재시간 -> epoch time)- N으로 시간값이 들어가게 되면, 업데이트 시마다 미묘하게 몇초 간격으로 차이가 날 수 있어서 그래프나 데이터 fetch 시에 좋지 않음.
- 데이터 확인 방법은 rrdtool fetch x.rrd AVERAGE —start 시간 —end 시간
- RRD가 시간이 딱 끊어져서 들어가는 제약이 있는 database이므로 시작 시간과 끝 시간도 300 단위에 맞게 끊어주는것이 좋음.
Graph¶
API를 통해 저장된 RRD를 Graph로 추출한다. 한 그래프에는 최소 1개 이상의 선이 그려지는데 주로 Main 라인은 녹색, Sub 라인은 파란색으로 그려진다.
/graph_global?target=...&step=...&start=...&end=...
/graph_vhost? target=...&step=...&start=...&end=...&vhost=...&protocol=...
공통적으로 지원되는 Key/Value는 아래와 같다.
시간표현은 rrdfetch 에서 제공하는 표현을 그대로 사용한다.
시간표현 | 설명 |
---|---|
Oct 12 | October 12 this year |
-1month or -1m | current time of day, only a month before (may yield surprises, see NOTE3 above). |
noon yesterday -3hours | yesterday morning; can also be specified as 9am-1day. |
23:59 31.12.1999 | 1 minute to the year 2000. |
12/31/99 11:59pm | 1 minute to the year 2000 for imperialists. |
12am 01/01/01 | start of the new millennium |
end-3weeks or e-3w | 3 weeks before end time (may be used as start time specification). |
start+6hours or s+6h | 6 hours after start time (may be used as end time specification). |
931225537 | 18:45 July 5th, 1999 (yes, seconds since 1970 are valid as well). |
19970703 12:45 | 12:45 July 3th, 1997 (my favorite, and its even got an ISO number (8601)). |
다양한 표현을 통해 서비스 모니터링에 최적화된 Graph를 지원한다.
주석
Graph 포맷을 PNG 와 GIF 중 선택할 수 있으나, PNG 가 GIF 보다 20~30% 더 빠르고 40% 더 적은 크기를 가지므로 PNG 만을 지원한다.
전역자원¶
전역자원 Graph는 시스템 상태 또는 STON 미디어 서버가 사용하는 시스템 자원들의 상태를 제공한다. API 호출규격은 다음와 같다.
/graph_global?target=...&step=...&start=...&end=...
지원되는 target
은 다음과 같다.
Target | 설명 | Main line | Sub line |
---|---|---|---|
cpu | CPU 사용량 | Kernel + User | Kernel |
ston_media_server_cpu | STON 미디어 서버 CPU 사용량 | Kernel + User | Kernel |
memory | 메모리 사용량 | 전체 사용량 | STON 미디어 서버 사용량 |
iowait | IO Wait | IO Wait | |
loadavg | Load Average | Load Average | |
ssockevent | 서버소켓 이벤트 (클라이언트 -> STON) | Accepted | Closed |
ssockusage | 서버소켓 사용량 (클라이언트 -> STON) | 전체 | Established |
csockevent | 클라이언트소켓 이벤트 (STON -> 원본서버) | Connected | Closed |
csockusage | 클라이언트소켓 사용량 (STON -> 원본서버) | 전체 | Established |
acldenied | 차단된 IP접근 | 차단된 클라이언트 | |
eq | 이벤트 큐 | 이벤트 큐 | |
wf2w | 쓰기 대기 중인 파일개수 | 쓰기 대기중 | |
tcpsocket | TCP 소켓 상태 | ![]() |
가상호스트¶
가상호스트 Graph는 서비스 전체 또는 개별 가상호스트의 서비스 상태를 제공한다. API 호출규격은 다음와 같다.
/graph_vhost?target=...&step=...&start=...&end=...&vhost=...&protocol=...
vhost
- 특정 가상호스트를 지정할 수 있으며, 생략된 경우 전체 가상호스트의 합을 제공한다.protocol
- 프로토콜별 그래프를 제공한다.all (기본)
,rtmp
,http
,hls
,mpegdash
중 선택한다.
target
마다 protocol
지원이 다르다.
Target | 설명 | Protocol | Main line | Sub line |
---|---|---|---|---|
hitratio | 히트율 | all , rtmp , http , hls , mpegdash |
Request Hit Ratio | Byte Hit Ratio |
client_res_hit | 클라이언트 캐쉬 히트 | all , rtmp , http , hls , mpegdash |
![]() |
|
client_session | 클라이언트 세션 | all , rtmp , http , hls , mpegdash |
전체 세션 | 전송 중 세션 |
client_traffic | 클라이언트 트래픽 | all , rtmp , http , hls , mpegdash |
Inbound | Outbound |
client_res | 클라이언트 응답 | all , rtmp , http , hls , mpegdash |
응답횟수 | 요청횟수 |
client_res_complete | 클라이언트 트랜잭션 | http , hls , mpegdash |
완료된 응답횟수 | 요청횟수 |
client_res_time | 클라이언트 응답시간 | all , rtmp , http , hls , mpegdash |
응답시간 | |
client_res_complete_time | 클라이언트 완료시간 | http , hls , mpegdash |
트랜잭션 완료시간 | |
client_rtmp_res_detail | RTMP 클라이언트 상세응답 | ![]() |
||
client_http_res_detail | HTTP 클라이언트 상세응답 | ![]() |
||
client_hls_res_detail | HLS 클라이언트 상세응답 | ![]() |
||
client_mpegdash_res_detail | MPEG-DASH 클라이언트 상세응답 | ![]() |
||
origin_session | 원본서버 세션 | all , rtmp , http , hls , mpegdash |
전체 세션 | 전송 중 세션 |
origin_traffic | 원본서버 트래픽 | all , rtmp , http , hls , mpegdash |
Inbound | Outbound |
origin_res | 원본서버 응답 | all , rtmp , http , hls , mpegdash |
응답횟수 | 요청횟수 |
origin_res_complete | 원본서버 트랜잭션 | http , hls , mpegdash |
완료된 응답횟수 | 요청횟수 |
origin_res_time | 원본서버 응답시간 | all , rtmp , http , hls , mpegdash |
응답시간 | |
origin_res_complete_time | 원본서버 완료시간 | http , hls , mpegdash |
트랜잭션 완료시간 | |
origin_rtmp_res_detail | RTMP 원본서버 상세응답 | ![]() |
||
origin_http_res_detail | HTTP 원본서버 상세응답 | ![]() |
||
origin_hls_res_detail | HLS 원본서버 상세응답 | ![]() |
||
origin_mpegdash_res_detail | MPEG-DASH 원본서버 상세응답 | ![]() |
||
filecount | 캐싱 콘텐츠 분포 | ![]() |
||
mem | 메모리 캐싱 콘텐츠 크기 |
채널 그래프¶
채널별 그래프를 제공한다.
채널은 vhost
값에 채널명을 붙여서 표현한다.
예를 들어 가상호스트 www.example.com/bar
에 대한 클라이언트 트래픽 조회 API 아래와 같다.
/graph_vhost?target=client_traffic&vhost=www.example.com/bar&...
해당 가상호스트에 속한 /myLiveStream
라는 채널이 있다면 vhost에 추가적으로 채널명을 붙인다.
/graph_vhost?target=client_traffic&vhost=www.example.com/bar/myLiveStream&...
채널은 filecount
와 mem
을 제외한 모든 target
을 가상호스트 와 동일하게 제공한다.
SNMP¶
미디어 서버의 목적과 SNMP의 용도에 맞도록새롭게 구성한다. LIVE 채널 통계에 대해서 추가된다.
변수사용 컨셉이 다음과 같이 대폭 수정되었다.
// Old
service.vhost.contents.memory.[vhostIndex]
// New
service.vhost.[vhostIndex] .contents.memory
특히 다음과 같이 동시에 여러 변수를 사용하던 구조를 삭제하고 한 항목당 하나의 변수만 사용되도록 한다.
// Old
service.vhost.traffic.client.rtmp.inbound.[vhostMin].[vhostIndex]
// New
service.vhost.[vhostIndex].traffic.client.rtmp.inbound.0 // 실시간
service.vhost.[vhostIndex].traffic.client.rtmp.inbound.1 // 1분 평균
service.vhost.[vhostIndex].traffic.client.rtmp.inbound.5 // 5분 평균
기존에 제공하던 시간 평균은 실시간(.0), 1분(.1), 5분(.5) 만을 제공하며 각 항목에 별도로 명시한다.

활성화¶
전역설정(server.xml)을 통해 SNMP동작방식과 ACL을 설정한다.
# server.xml - <Server><Host>
<SNMP Port="161" Status="Inactive">
<Allow>192.168.5.1</Allow>
<Allow>192.168.6.0/24</Allow>
</SNMP>
<SNMP>
속성을 통해 SNMP의 동작방식을 설정한다.Port (기본: 161)
SNMP 서비스 포트Status (기본: Inactive)
SNMP를 활성화 하려면 이 값을Active
로 설정한다.
<Allow>
SNMP접근을 허가할 IP주소를 설정한다.- IP지정, IP범위지정, 비트마스크, 서브넷 이상 네 가지 형식을 지원한다. 접속한 소켓이 허가된 IP가 아니면 응답을 주지 않는다.
Community¶
Community를 설정하여 허가된 OID에만 접근/차단되도록 설정한다.
# server.xml - <Server><Host>
<SNMP UnregisteredCommunity="Allow">
<Community Name="example1" OID="Allow">
<OID>1.3.6.1.4.1.40001.2.4.1</OID>
<OID>1.3.6.1.4.1.40001.2.4.2</OID>
<OID>1.3.6.1.4.1.40001.2.4.4</OID>
</Community>
<Community Name="example2" OID="Deny">
<OID>1.3.6.1.4.1.40001.2.4.3.[vhostIndex].11.11.10.1-61</OID>
</Community>
</SNMP>
<SNMP>
의 UnregisteredCommunity
를 “Deny”로 설정하면 등록되지 않은 Community 요청은 차단한다.
<Community>
Community를 설정한다.Name
Community 이름.OID (기본: Allow)
하위<OID>
태그의 값을 설정한다. 속성 값이Allow
라면 하위<OID>
목록만 접근 가능하다. 반대로 속성 값이Deny
라면 하위 <OID>목록에는 접근이 불가능하다.
명시적인 OID(1.3.6.1.4.1.40001.2.4.4)와 범위OID(1.3.6.1.4.1.40001.2.4.3.[vhostIndex].11.11.10.1-61) 표현이 가능하다. OID를 허용/차단할 경우 하위 모든 OID에 대해 같은 규칙이 적용된다.
변수¶
가상호스트나 채널처럼 설정에 따라 추가/삭제될 수 있는 값을 변수로 지칭하며 [...]
로 표기한다.
가상호스트 [vhostIndex]
¶
가상호스트를 가리키는 고유 번호를 [vhostIndex]
로 표기한다.
가상호스트는 10,000 단위로 증가한다.
# vhosts.xml
<Vhosts>
<Vhost Name="www.example.com"> ... </Vhost>
<Vhost Name="/foo"> ... </Vhost>
<Vhost Name="www.example.com/bar"> ... </Vhost>
</Vhosts>
최초 위와 같이 3개의 가상호스트가 로딩되면 10,000부터 순차적으로 [vhostIndex]
가 부여된다.
가상호스트 | vhostIndex |
---|---|
www.example.com | 10,000 |
/foo | 20,000 |
www.example.com/bar | 30,000 |
가상호스트에 [vhostIndex]
가 부여되면 해당 가상호스트가 삭제되기 전까지 변경되지 않는다.
예를 들어 /foo 가 삭제되어도 아래와 같이 [vhostIndex]
는 유지된다.
가상호스트 | vhostIndex |
---|---|
www.example.com | 10,000 |
www.example.com/bar | 30,000 |
가상호스트의 삭제와 추가가 동시에 발생할 경우 삭제가 먼저 동작하며, 신규 추가된 가상호스트는 비어있는 [vhostIndex]
를 부여 받는다.
가상호스트 /trip 이 추가되면 비어 있는 [vhostIndex]
인 20,000을 할당 받는다.
가상호스트 | vhostIndex |
---|---|
www.example.com | 10,000 |
/trip | 20,000 |
www.example.com/bar | 30,000 |
채널 [vhostIndex]
¶
채널도 가상호스트와 마찬가지로 [vhostIndex]
로 표기하고 동일한 통계지표를 제공한다.
하지만 가질 수 있는 값의 범위가 다음과 같이 ‘천(1~9,999)’ 단위로 제한된다.
분류 | Name | vhostIndex |
---|---|---|
가상호스트 | /trip | 20,000 |
채널 | /trip/myLive_1080p | 20,001 |
채널 | /trip/myLive_720p | 20,002 |
채널 | /trip/myLive_360p | 20,003 |
가상호스트 | www.example.com/bar | 30,000 |
[vhostIndex]
를 할당받는 정책은 가상호스트와 동일하다.
가상호스트가 삭제되면 하위에 소속된 모든 채널도 같이 삭제된다.
주석
채널의 개수제한은 없지만 SNMP에서는 최대 9,999개의 채널만 수치제공이 가능하다.
설정 [confIndex]
¶
설정이 업데이트 내역을 SNMP를 통해 열람할 수 있다.
# server.xml - <Server><Host>
<SNMP ConfCount="10" />
ConfCount (기본: 10)
설정목록을 n개까지 열람한다. 1~100사이에서 지정 가능하다. 1은 현재 반영된 설정을 의미하며 2는 이전 설정을 의미한다. 100은 현재를 기준으로 99번 이전의 설정을 의미한다.
meta.conf 를 참조한다.
디스크 [diskIndex]
¶
디스크는 자주 바뀌는 자원은 아니지만 시스템마다 다를 수 있다.
이 경우 각 디스크를 가리키는 고유 번호가 필요하며 이를 [diskIndex]
로 표기한다.
설정된 순서대로 1부터 할당된다.
# server.xml - <Server><Cache>
<Storage>
<Disk>/cache1</Disk>
<Disk>/cache2</Disk>
<Disk>/cache3</Disk>
</Storage>
위와 같이 3개의 디스크가 설정된 환경에서 /cache1의 [diskIndex]
는 1, /cache3의 [diskIndex]
는 3을 가진다.
예를 들어 /cache1의 전체용량에 해당하는 OID는 system.diskInfo.1.diskInfoTotalSize (1.3.6.1.4.1.40001.2.2.18.1.3) 이 된다.
.1.diskInfoTotalSize 는 첫번째 디스크의 전체용량을 의미한다.
meta¶
OID = 1.3.6.1.4.1.40001.2.1
메타정보를 제공한다.
OID | Name | Type | Description |
---|---|---|---|
.1 | manufacture | String | “WineSOFT Inc.” |
.2 | software | String | “STON Media Server” |
.3 | version | String | 버전 |
.4 | hostname | String | 호스트 이름 |
.5 | state | String | “Healthy” 또는 “Inactive” 또는 “Emergency” |
.6 | uptime | Integer | 실행시간 (초) |
.7 | admin | String | <Admin> ... </Admin> |
.10 | Conf | OID | 설정 (확장) |
meta.conf¶
OID = 1.3.6.1.4.1.40001.2.1.10.[confIndex]
[confIndex]
는 <SNMP>
의 ConfCount
속성에서 설정한다.
[confIndex]
가 1인 경우는 항상 현재 적용된 설정 값을,
2인 경우는 이전 설정 값을 의미한다.
10 이라면 현재(1)로부터 9번째 이전의 설정을 의미한다.
OID | Name | Type | Description |
---|---|---|---|
.1 | ID | Integer | 설정 ID |
.2 | Time | Integer | 설정시간 (Unix 시간) |
.3 | Type | Integer | 설정형태 (0: Unknown, 1: 구동, 2: reload, 3: upload, 4: restore) |
.4 | Size | Integer | 설정파일 크기 |
.5 | Hash | String | 설정파일 Hash문자열 |
.6 | Path | String | 설정파일 저장경로 |
.7 | Ver | String | 설정할 때의 STON 미디어 서버 버전 |
system¶
OID = 1.3.6.1.4.1.40001.2.2
STON 미디어 서버가 동작하는 시스템 정보를 실시간(.0), 1분평균(.1), 5분평균(.5)으로 제공한다.
OID | Name | Type | Description |
---|---|---|---|
.1 | cpuTotal | Integer | 전체 CPU 사용률 (100%) |
.2 | 전체 CPU 사용률 (10000%) | ||
.3 | cpuKernel | Integer | CPU(Kernel) 사용률 (100%) |
.4 | CPU(Kernel) 사용률 (10000%) | ||
.5 | cpuUser | Integer | CPU(User) 사용률 (100%) |
.6 | CPU(User) 사용률 (10000%) | ||
.7 | cpuIdle | Integer | CPU(Idle) 사용률 (100%) |
.8 | CPU(Idle) 사용률 (10000%) | ||
.9 | memTotal | Integer | 시스템 전체 메모리 (KB) |
.10 | memUse | Integer | 시스템 사용 메모리 (KB) |
.11 | memFree | Integer | 시스템 여유 메모리 (KB) |
.12 | memSTON | Integer | STON 미디어 서버 사용 메모리 (KB) |
.13 | memUseRatio | Integer | 시스템 메모리 사용률 (100%) |
.14 | 시스템 메모리 사용률 (10000%) | ||
.15 | memSTONRatio | Integer | STON 미디어 서버 메모리 사용률 (100%) |
.16 | STON 미디어 서버 메모리 사용률 (10000%) | ||
.17 | diskCount | Integer | disk개수 |
.18 | diskInfo | OID | diskInfo (확장) |
.19 | diskPerf | OID | diskPerf (확장) |
.20 | cpuProcKernel | Integer | STON 미디어 서버가 사용하는 CPU(Kernel) 사용률 (100%) |
.21 | STON 미디어 서버가 사용하는 CPU(Kernel) 사용률 (10000%) | ||
.22 | cpuProcUser | Integer | STON 미디어 서버가 사용하는 CPU(User) 사용률 (100%) |
.23 | STON 미디어 서버가 사용하는 CPU(User) 사용률 (10000%) | ||
.24 | sysLoadAverage | Integer | Load Average 1분 평균 (0.01) |
.25 | Load Average 5분 평균 (0.01) | ||
.26 | Load Average 15분 평균 (0.01) | ||
.27 | cpuNice | Integer | CPU(Nice) (100%) |
.28 | CPU(Nice) (10000%) | ||
.29 | cpuIOWait | Integer | CPU(IOWait) (100%) |
.30 | CPU(IOWait) (10000%) | ||
.31 | cpuIRQ | Integer | CPU(IRQ) (100%) |
.32 | CPU(IRQ) (10000%) | ||
.33 | cpuSoftIRQ | Integer | CPU(SoftIRQ) (100%) |
.34 | CPU(SoftIRQ) (10000%) | ||
.35 | cpuSteal | Integer | CPU(Steal) (100%) |
.36 | CPU(Steal) | Integer | (10000%) |
.40 | TCPSocket.Established | Integer | Established상태의 TCP 연결개수 |
.41 | TCPSocket.Timewait | Integer | TIME_WAIT 상태의 TCP 연결개수 |
.42 | TCPSocket.Orphan | Integer | 아직 file handle에 attach되지 않은 TCP 연결 |
.43 | TCPSocket.Alloc | Integer | 할당된 TCP 연결 |
.44 | TCPSocket.Mem | Integer | undocumented |
system.diskInfo¶
OID = 1.3.6.1.4.1.40001.2.2.18.[diskIndex]
현재 디스크 정보를 제공한다.
OID | Name | Type | Description |
---|---|---|---|
.2 | diskInfoPath | String | 디스크 경로 |
.3 | diskInfoTotalSize | Integer | 디스크 전체용량 (MB) |
.4 | diskInfoUseSize | Integer | 디스크 사용량 (MB) |
.5 | diskInfoFreeSize | Integer | 디스크 사용 가능량 (MB) |
.6 | diskInfoUseRatio | Integer | 디스크 사용률 (100%) |
.7 | 디스크 사용률 (10000%) | ||
.8 | diskInfoStatus | String | “Normal” 또는 “Invalid” 또는 “Unmounted” |
system.diskPerf¶
OID = 1.3.6.1.4.1.40001.2.2.19.[diskIndex]
디스크 성능상태 실시간(.0), 1분평균(.1), 5분평균(.5)으로 제공한다.
OID | Name | Type | Description |
---|---|---|---|
.2 | diskPerfReadCount | Integer | 읽기 성공 횟수 |
.3 | diskPerfReadMergedCount | Integer | 읽기가 병합된 횟수 |
.4 | diskPerfReadSectorsCount | Integer | 읽은 섹터 수 |
.5 | diskPerfReadTime | Integer | 읽기 소요시간(ms) |
.6 | diskPerfWriteCount | Integer | 쓰기 성공 횟수 |
.7 | diskPerfWriteMergedCount | Integer | 쓰기가 병합된 횟수 |
.8 | diskPerfWriteSectorsCount | Integer | 써진 섹터 수 |
.9 | diskPerfWriteTime | Integer | 쓰기 소요시간(ms) |
.10 | diskPerfIOProgressCount | Integer | 진행 중인 IO개수 |
.11 | diskPerfIOTime | Integer | IO 소요시간(ms) |
.12 | diskPerfIOTimeWeighted | Integer | IO 소요시간(ms, 가중치 적용) |
global¶
OID = 1.3.6.1.4.1.40001.2.3
STON 미디어 서버의 모든 모듈이 공통적으로 사용하는 자원정보(소켓, 이벤트 등)를 제공한다.
- ServerSocket - 클라이언트 ~ STON구간. STON이 클라이언트의 요청을 처리할 용도로 사용하는 소켓
- ClientSocket - STON ~ 원본서버구간. STON이 원본서버로 요청을 보내는 용도로 사용하는 소켓
OID | Name | Type | Description |
---|---|---|---|
.5 | EQ | Integer | STON Framework에서 아직 처리되지 않은 Event개수 |
.6 | RQ | Integer | 최근 서비스된 컨텐츠 참조 큐에 저장된 Event 개수 |
.7 | waitingFiles2Write | Integer | 쓰기대기 중인 파일개수 |
.10 | ServerSocket.Total | Integer | 전체 서버소켓 수 |
.11 | ServerSocket.Established | Integer | 연결된 상태의 서버소켓 수 |
.12 | ServerSocket.Accepted | Integer | 새롭게 연결된 서버소켓 수 |
.13 | ServerSocket.Closed | Integer | 연결이 종료된 서버소켓 수 |
.20 | ClientSocket.Total | Integer | 전체 클라이언트소켓 수 |
.21 | ClientSocket.Established | Integer | 연결된 상태의 클라이언트소켓 수 |
.22 | ClientSocket.Accepted | Integer | 새롭게 연결된 클라이언트소켓 수 |
.23 | ClientSocket.Closed | Integer | 연결이 종료된 클라이언트소켓 수 |
.30 | ServiceAccess.Allow | Integer | ServiceAccess에 의해 허가(Allow)된 소켓 수 |
.31 | ServiceAccess.Deny | Integer | ServiceAccess에 의해 거부(Deny)된 소켓 수 |
service¶
OID = 1.3.6.1.4.1.40001.2.4
서비스 통계를 가상호스트별로 상세하게 수집/제공된다.
OID | Name | Type | Description |
---|---|---|---|
.1 | host | OID | 호스트 (확장) |
.2 | vhostCount | Integer | 가상호스트 + 채널 개수 |
.3 | vhost | OID | 가상호스트 통계 (확장) |
.4 | vhostOnlyCount | Integer | 설정상의 가상호스트 개수 |
service.host¶
OID = 1.3.6.1.4.1.40001.2.4.1
호스트(=모든 가상호스트)의 정보를 제공한다.
OID | Name | Type | Description |
---|---|---|---|
.2 | name | String | 호스트 이름 |
.3 | status | String | “Healthy” 또는 “Inactive” |
.4 | uptime | Integer | STON 미디어 서버 실행시간 (초) |
.10 | contents | OID | 컨텐츠 정보 (확장) |
.11 | traffic | OID | 통계 (확장) |
service.host.contents¶
OID = 1.3.6.1.4.1.40001.2.4.1.10
호스트(=모든 가상호스트)가 서비스하는 컨텐츠 통계를 제공한다.
OID | Name | Type | Description |
---|---|---|---|
.1 | memory | Integer | 메모리 캐싱 크기(KB) |
.2 | filesTotalCount | Integer | 서비스 중인 파일개수 |
.3 | filesTotalSize | Integer | 서비스 중인 전체 파일량(MB) |
.10 | filesCountU1KB | Integer | 1KB미만 파일개수 |
.11 | filesCountU2KB | Integer | 2KB미만 파일개수 |
.12 | filesCountU4KB | Integer | 4KB미만 파일개수 |
.13 | filesCountU8KB | Integer | 8KB미만 파일개수 |
.14 | filesCountU16KB | Integer | 16KB미만 파일개수 |
.15 | filesCountU32KB | Integer | 32KB미만 파일개수 |
.16 | filesCountU64KB | Integer | 64KB미만 파일개수 |
.17 | filesCountU128KB | Integer | 128KB미만 파일개수 |
.18 | filesCountU256KB | Integer | 256KB미만 파일개수 |
.19 | filesCountU512KB | Integer | 512KB미만 파일개수 |
.20 | filesCountU1MB | Integer | 1MB미만 파일개수 |
.21 | filesCountU2MB | Integer | 2MB미만 파일개수 |
.22 | filesCountU4MB | Integer | 4MB미만 파일개수 |
.23 | filesCountU8MB | Integer | 8MB미만 파일개수 |
.24 | filesCountU16MB | Integer | 16MB미만 파일개수 |
.25 | filesCountU32MB | Integer | 32MB미만 파일개수 |
.26 | filesCountU64MB | Integer | 64MB미만 파일개수 |
.27 | filesCountU128MB | Integer | 128MB미만 파일개수 |
.28 | filesCountU256MB | Integer | 256MB미만 파일개수 |
.29 | filesCountU512MB | Integer | 512MB미만 파일개수 |
.30 | filesCountU1GB | Integer | 1GB미만 파일개수 |
.31 | filesCountU2GB | Integer | 2GB미만 파일개수 |
.32 | filesCountU4GB | Integer | 4GB미만 파일개수 |
.33 | filesCountU8GB | Integer | 8GB미만 파일개수 |
.34 | filesCountU16GB | Integer | 16GB미만 파일개수 |
.35 | filesCountO16GB | Integer | 16GB이상 파일개수 |
service.host.traffic¶
OID = 1.3.6.1.4.1.40001.2.4.1.11
호스트(=모든 가상호스트)의 캐시 서비스와 트래픽 통계를 실시간(.0), 1분 평균(.1), 5분 평균(.5)으로 제공한다.
OID | Name | Type | Description |
---|---|---|---|
.1 | requestHitRatio | Integer | Request Hit Ratio(100%) |
.2 | Request Hit Ratio(10000%) | ||
.3 | bytesHitRatio | Integer | Bytes Hit Ratio(100%) |
.4 | Bytes Hit Ratio(10000%) | ||
.10 | origin | OID | 원본 트래픽 정보 (확장) |
.11 | client | OID | 클라이언트 트래픽 정보 (확장) |
service.host.traffic.origin¶
OID = 1.3.6.1.4.1.40001.2.4.1.11.10
종합적인 원본서버 트래픽 통계를 실시간(.0), 1분 평균(.1), 5분 평균(.5)으로 제공한다.
OID | Name | Type | Description |
---|---|---|---|
.1 | inbound | Integer | 원본서버로부터 받는 평균 트래픽(Bytes) |
.2 | outbound | Integer | 원본서버로 보내는 평균 트래픽(Bytes) |
.3 | allSessionAverage | Integer | 전체 원본서버 평균 세션수 |
.4 | activeSessionAverage | Integer | 전체 원본서버 세션수 중 전송 중인 평균 세션수 |
.10 | http | OID | HTTP 트래픽 (확장) |
.11 | hls | OID | HLS 트래픽 (확장) |
.12 | mpegdash | OID | MPEG-DASH 트래픽 (확장) |
.20 | rtmp | OID | RTMP 트래픽 (확장) |
service.host.traffic.origin.http¶
OID = 1.3.6.1.4.1.40001.2.4.1.11.10.10
HTTP 원본서버 트래픽 통계를 실시간(.0), 1분 평균(.1), 5분 평균(.5)으로 제공한다.
OID | Name | Type | Description |
---|---|---|---|
.1 | inbound | Integer | 원본서버로부터 받는 평균 HTTP 트래픽(Bytes) |
.2 | outbound | Integer | 원본서버로 보내는 평균 HTTP 트래픽(Bytes) |
.3 | allSessionAverage | Integer | 원본서버 평균 HTTP세션 수 |
.4 | activeSessionAverage | Integer | 원본서버 평균 HTTP세션 중 전송 중인 평균 세션수 |
.10 | reqHeaderSize | Integer | 원본서버로 보내는 평균 HTTP Header 트래픽(Bytes) |
.11 | reqBodySize | Integer | 원본서버로 보내는 평균 HTTP Body 트래픽(Bytes) |
.12 | resHeaderSize | Integer | 원본서버로부터 받는 평균 HTTP Header트래픽(Bytes) |
.13 | resBodySize | Integer | 원본서버로부터 받는 평균 HTTP Body트래픽(Bytes) |
.14 | reqAverage | Integer | 원본서버로 보낸 평균 HTTP요청 개수 |
.15 | reqCount | Integer | 원본서버로 보낸 HTTP요청 개수 |
.20 | res2xxAverage | Integer | 원본서버가 보낸 평균 2xx응답 개수 |
.21 | res2xxCompleteAverage | Integer | 원본서버로부터 성공한 평균 2xx 트랜잭션 개수 |
.22 | res2xxTimeRes | Integer | 원본서버로부터 2xx응답 헤더를 받을때까지 평균 소요시간(0.01ms) |
.23 | res2xxTimeComplete | Integer | 원본서버로부터 2xx응답 HTTP 트랜잭션 평균 완료시간(0.01ms) |
.24 | res2xxCount | Integer | 원본서버가 보낸 2xx응답 개수 |
.25 | res2xxCompleteCount | Integer | 원본서버로부터 성공한 2xx 트랜잭션 개수 |
.30 | res3xxAverage | Integer | 원본서버가 보낸 평균 3xx응답 개수 |
.31 | res3xxCompleteAverage | Integer | 원본서버로부터 성공한 평균 3xx 트랜잭션 개수 |
.32 | res3xxTimeRes | Integer | 원본서버로부터 3xx응답 헤더를 받을때까지 평균 소요시간(0.01ms) |
.33 | res3xxTimeComplete | Integer | 원본서버로부터 3xx응답 HTTP 트랜잭션 평균 완료시간(0.01ms) |
.34 | res3xxCount | Integer | 원본서버가 보낸 3xx응답 개수 |
.35 | res3xxCompleteCount | Integer | 원본서버로부터 성공한 3xx 트랜잭션 개수 |
.40 | res4xxAverage | Integer | 원본서버가 보낸 평균 4xx응답 개수 |
.41 | res4xxCompleteAverage | Integer | 원본서버로부터 성공한 평균 4xx 트랜잭션 개수 |
.42 | res4xxTimeRes | Integer | 원본서버로부터 4xx응답 헤더를 받을때까지 평균 소요시간(0.01ms) |
.43 | res4xxTimeComplete | Integer | 원본서버로부터 4xx응답 HTTP 트랜잭션 평균 완료시간(0.01ms) |
.44 | res4xxCount | Integer | 원본서버가 보낸 4xx응답 개수 |
.45 | res4xxCompleteCount | Integer | 원본서버로부터 성공한 4xx 트랜잭션 개수 |
.50 | res5xxAverage | Integer | 원본서버가 보낸 평균 5xx응답 개수 |
.51 | res5xxCompleteAverage | Integer | 원본서버로부터 성공한 평균 5xx 트랜잭션 개수 |
.52 | res5xxTimeRes | Integer | 원본서버로부터 5xx응답 헤더를 받을때까지 평균 소요시간(0.01ms) |
.53 | res5xxTimeComplete | Integer | 원본서버로부터 5xx응답 HTTP 트랜잭션 평균 완료시간(0.01ms) |
.54 | res5xxCount | Integer | 원본서버가 보낸 5xx응답 개수 |
.55 | res5xxCompleteCount | Integer | 원본서버로부터 성공한 5xx 트랜잭션 개수 |
.80 | resTotalAverage | Integer | 원본서버가 보낸 전체 평균 HTTP응답 개수 |
.81 | resTotalCompleteAverage | Integer | 원본서버로부터 성공한 평균 HTTP트랜잭션 개수 |
.82 | resTotalTimeRes | Integer | 원본서버로부터 응답 헤더를 받을때까지 평균 소요시간(0.01ms) |
.83 | resTotalTimeComplete | Integer | 원본서버로부터 응답 HTTP 트랜잭션 평균 완료시간(0.01ms) |
.84 | resTotalCount | Integer | 원본서버가 보낸 전체 HTTP응답 개수 |
.85 | resTotalCompleteCount | Integer | 원본서버로부터 성공한 HTTP트랜잭션 개수 |
.90 | connectTimeoutAverage | Integer | 평균 원본서버 접속실패 횟수 |
.91 | receiveTimeoutAverage | Integer | 평균 원본서버 전송실패 횟수 |
.92 | connectAverage | Integer | 평균 원본서버 접속성공 횟수 |
.93 | dnsQueryTime | Integer | 원본서버 접속 시 평균 DNS쿼리 소요시간 |
.94 | connectTime | Integer | 원본서버 평균 접속 소요시간(0.01ms) |
.95 | connectTimeoutCount | Integer | 원본서버 접속실패 횟수 |
.96 | receiveTimeoutCount | Integer | 원본서버 전송실패 횟수 |
.97 | connectCount | Integer | 원본서버 접속성공 횟수 |
.98 | closeAverage | Integer | 전송 중 원본서버에서 먼저 소켓을 종료한 평균 횟수 |
.99 | closeCount | Integer | 전송 중 원본서버에서 먼저 소켓을 종료한 횟수 |
service.host.traffic.origin.hls¶
OID = 1.3.6.1.4.1.40001.2.4.1.11.10.11
HLS 원본서버 트래픽 통계를 실시간(.0), 1분 평균(.1), 5분 평균(.5)으로 제공한다.
OID | Name | Type | Description |
---|---|---|---|
.1 | inbound | Integer | 원본서버로부터 받는 평균 HLS 트래픽(Bytes) |
.2 | outbound | Integer | 원본서버로 보내는 평균 HLS 트래픽(Bytes) |
.3 | allSessionAverage | Integer | 원본서버 평균 HLS세션 수 |
.4 | activeSessionAverage | Integer | 원본서버 평균 HLS세션 중 전송 중인 평균 세션수 |
.10 | reqHeaderSize | Integer | 원본서버로 보내는 평균 HLS Header 트래픽(Bytes) |
.11 | reqBodySize | Integer | 원본서버로 보내는 평균 HLS Body 트래픽(Bytes) |
.12 | resHeaderSize | Integer | 원본서버로부터 받는 평균 HLS Header트래픽(Bytes) |
.13 | resBodySize | Integer | 원본서버로부터 받는 평균 HLS Body트래픽(Bytes) |
.14 | reqAverage | Integer | 원본서버로 보낸 평균 HLS요청 개수 |
.15 | reqCount | Integer | 원본서버로 보낸 HLS요청 개수 |
.20 | res2xxAverage | Integer | 원본서버가 보낸 평균 2xx응답 개수 |
.21 | res2xxCompleteAverage | Integer | 원본서버로부터 성공한 평균 2xx 트랜잭션 개수 |
.22 | res2xxTimeRes | Integer | 원본서버로부터 2xx응답 헤더를 받을때까지 평균 소요시간(0.01ms) |
.23 | res2xxTimeComplete | Integer | 원본서버로부터 2xx응답 HLS 트랜잭션 평균 완료시간(0.01ms) |
.24 | res2xxCount | Integer | 원본서버가 보낸 2xx응답 개수 |
.25 | res2xxCompleteCount | Integer | 원본서버로부터 성공한 2xx 트랜잭션 개수 |
.30 | res3xxAverage | Integer | 원본서버가 보낸 평균 3xx응답 개수 |
.31 | res3xxCompleteAverage | Integer | 원본서버로부터 성공한 평균 3xx 트랜잭션 개수 |
.32 | res3xxTimeRes | Integer | 원본서버로부터 3xx응답 헤더를 받을때까지 평균 소요시간(0.01ms) |
.33 | res3xxTimeComplete | Integer | 원본서버로부터 3xx응답 HLS 트랜잭션 평균 완료시간(0.01ms) |
.34 | res3xxCount | Integer | 원본서버가 보낸 3xx응답 개수 |
.35 | res3xxCompleteCount | Integer | 원본서버로부터 성공한 3xx 트랜잭션 개수 |
.40 | res4xxAverage | Integer | 원본서버가 보낸 평균 4xx응답 개수 |
.41 | res4xxCompleteAverage | Integer | 원본서버로부터 성공한 평균 4xx 트랜잭션 개수 |
.42 | res4xxTimeRes | Integer | 원본서버로부터 4xx응답 헤더를 받을때까지 평균 소요시간(0.01ms) |
.43 | res4xxTimeComplete | Integer | 원본서버로부터 4xx응답 HLS 트랜잭션 평균 완료시간(0.01ms) |
.44 | res4xxCount | Integer | 원본서버가 보낸 4xx응답 개수 |
.45 | res4xxCompleteCount | Integer | 원본서버로부터 성공한 4xx 트랜잭션 개수 |
.50 | res5xxAverage | Integer | 원본서버가 보낸 평균 5xx응답 개수 |
.51 | res5xxCompleteAverage | Integer | 원본서버로부터 성공한 평균 5xx 트랜잭션 개수 |
.52 | res5xxTimeRes | Integer | 원본서버로부터 5xx응답 헤더를 받을때까지 평균 소요시간(0.01ms) |
.53 | res5xxTimeComplete | Integer | 원본서버로부터 5xx응답 HLS 트랜잭션 평균 완료시간(0.01ms) |
.54 | res5xxCount | Integer | 원본서버가 보낸 5xx응답 개수 |
.55 | res5xxCompleteCount | Integer | 원본서버로부터 성공한 5xx 트랜잭션 개수 |
.80 | resTotalAverage | Integer | 원본서버가 보낸 전체 평균 HLS응답 개수 |
.81 | resTotalCompleteAverage | Integer | 원본서버로부터 성공한 평균 HLS트랜잭션 개수 |
.82 | resTotalTimeRes | Integer | 원본서버로부터 응답 헤더를 받을때까지 평균 소요시간(0.01ms) |
.83 | resTotalTimeComplete | Integer | 원본서버로부터 응답 HLS 트랜잭션 평균 완료시간(0.01ms) |
.84 | resTotalCount | Integer | 원본서버가 보낸 전체 HLS응답 개수 |
.85 | resTotalCompleteCount | Integer | 원본서버로부터 성공한 HLS트랜잭션 개수 |
.90 | connectTimeoutAverage | Integer | 평균 원본서버 접속실패 횟수 |
.91 | receiveTimeoutAverage | Integer | 평균 원본서버 전송실패 횟수 |
.92 | connectAverage | Integer | 평균 원본서버 접속성공 횟수 |
.93 | dnsQueryTime | Integer | 원본서버 접속 시 평균 DNS쿼리 소요시간 |
.94 | connectTime | Integer | 원본서버 평균 접속 소요시간(0.01ms) |
.95 | connectTimeoutCount | Integer | 원본서버 접속실패 횟수 |
.96 | receiveTimeoutCount | Integer | 원본서버 전송실패 횟수 |
.97 | connectCount | Integer | 원본서버 접속성공 횟수 |
.98 | closeAverage | Integer | 전송 중 원본서버에서 먼저 소켓을 종료한 평균 횟수 |
.99 | closeCount | Integer | 전송 중 원본서버에서 먼저 소켓을 종료한 횟수 |
service.host.traffic.origin.mpegdash¶
OID = 1.3.6.1.4.1.40001.2.4.1.11.10.12
MPEG-DASH 원본서버 트래픽 통계를 실시간(.0), 1분 평균(.1), 5분 평균(.5)으로 제공한다.
OID | Name | Type | Description |
---|---|---|---|
.1 | inbound | Integer | 원본서버로부터 받는 평균 MPEG-DASH 트래픽(Bytes) |
.2 | outbound | Integer | 원본서버로 보내는 평균 MPEG-DASH 트래픽(Bytes) |
.3 | allSessionAverage | Integer | 원본서버 평균 MPEG-DASH세션 수 |
.4 | activeSessionAverage | Integer | 원본서버 평균 MPEG-DASH세션 중 전송 중인 평균 세션수 |
.10 | reqHeaderSize | Integer | 원본서버로 보내는 평균 MPEG-DASH Header 트래픽(Bytes) |
.11 | reqBodySize | Integer | 원본서버로 보내는 평균 MPEG-DASH Body 트래픽(Bytes) |
.12 | resHeaderSize | Integer | 원본서버로부터 받는 평균 MPEG-DASH Header트래픽(Bytes) |
.13 | resBodySize | Integer | 원본서버로부터 받는 평균 MPEG-DASH Body트래픽(Bytes) |
.14 | reqAverage | Integer | 원본서버로 보낸 평균 MPEG-DASH요청 개수 |
.15 | reqCount | Integer | 원본서버로 보낸 MPEG-DASH요청 개수 |
.20 | res2xxAverage | Integer | 원본서버가 보낸 평균 2xx응답 개수 |
.21 | res2xxCompleteAverage | Integer | 원본서버로부터 성공한 평균 2xx 트랜잭션 개수 |
.22 | res2xxTimeRes | Integer | 원본서버로부터 2xx응답 헤더를 받을때까지 평균 소요시간(0.01ms) |
.23 | res2xxTimeComplete | Integer | 원본서버로부터 2xx응답 MPEG-DASH 트랜잭션 평균 완료시간(0.01ms) |
.24 | res2xxCount | Integer | 원본서버가 보낸 2xx응답 개수 |
.25 | res2xxCompleteCount | Integer | 원본서버로부터 성공한 2xx 트랜잭션 개수 |
.30 | res3xxAverage | Integer | 원본서버가 보낸 평균 3xx응답 개수 |
.31 | res3xxCompleteAverage | Integer | 원본서버로부터 성공한 평균 3xx 트랜잭션 개수 |
.32 | res3xxTimeRes | Integer | 원본서버로부터 3xx응답 헤더를 받을때까지 평균 소요시간(0.01ms) |
.33 | res3xxTimeComplete | Integer | 원본서버로부터 3xx응답 MPEG-DASH 트랜잭션 평균 완료시간(0.01ms) |
.34 | res3xxCount | Integer | 원본서버가 보낸 3xx응답 개수 |
.35 | res3xxCompleteCount | Integer | 원본서버로부터 성공한 3xx 트랜잭션 개수 |
.40 | res4xxAverage | Integer | 원본서버가 보낸 평균 4xx응답 개수 |
.41 | res4xxCompleteAverage | Integer | 원본서버로부터 성공한 평균 4xx 트랜잭션 개수 |
.42 | res4xxTimeRes | Integer | 원본서버로부터 4xx응답 헤더를 받을때까지 평균 소요시간(0.01ms) |
.43 | res4xxTimeComplete | Integer | 원본서버로부터 4xx응답 MPEG-DASH 트랜잭션 평균 완료시간(0.01ms) |
.44 | res4xxCount | Integer | 원본서버가 보낸 4xx응답 개수 |
.45 | res4xxCompleteCount | Integer | 원본서버로부터 성공한 4xx 트랜잭션 개수 |
.50 | res5xxAverage | Integer | 원본서버가 보낸 평균 5xx응답 개수 |
.51 | res5xxCompleteAverage | Integer | 원본서버로부터 성공한 평균 5xx 트랜잭션 개수 |
.52 | res5xxTimeRes | Integer | 원본서버로부터 5xx응답 헤더를 받을때까지 평균 소요시간(0.01ms) |
.53 | res5xxTimeComplete | Integer | 원본서버로부터 5xx응답 MPEG-DASH 트랜잭션 평균 완료시간(0.01ms) |
.54 | res5xxCount | Integer | 원본서버가 보낸 5xx응답 개수 |
.55 | res5xxCompleteCount | Integer | 원본서버로부터 성공한 5xx 트랜잭션 개수 |
.80 | resTotalAverage | Integer | 원본서버가 보낸 전체 평균 MPEG-DASH응답 개수 |
.81 | resTotalCompleteAverage | Integer | 원본서버로부터 성공한 평균 MPEG-DASH트랜잭션 개수 |
.82 | resTotalTimeRes | Integer | 원본서버로부터 응답 헤더를 받을때까지 평균 소요시간(0.01ms) |
.83 | resTotalTimeComplete | Integer | 원본서버로부터 응답 MPEG-DASH 트랜잭션 평균 완료시간(0.01ms) |
.84 | resTotalCount | Integer | 원본서버가 보낸 전체 MPEG-DASH응답 개수 |
.85 | resTotalCompleteCount | Integer | 원본서버로부터 성공한 MPEG-DASH트랜잭션 개수 |
.90 | connectTimeoutAverage | Integer | 평균 원본서버 접속실패 횟수 |
.91 | receiveTimeoutAverage | Integer | 평균 원본서버 전송실패 횟수 |
.92 | connectAverage | Integer | 평균 원본서버 접속성공 횟수 |
.93 | dnsQueryTime | Integer | 원본서버 접속 시 평균 DNS쿼리 소요시간 |
.94 | connectTime | Integer | 원본서버 평균 접속 소요시간(0.01ms) |
.95 | connectTimeoutCount | Integer | 원본서버 접속실패 횟수 |
.96 | receiveTimeoutCount | Integer | 원본서버 전송실패 횟수 |
.97 | connectCount | Integer | 원본서버 접속성공 횟수 |
.98 | closeAverage | Integer | 전송 중 원본서버에서 먼저 소켓을 종료한 평균 횟수 |
.99 | closeCount | Integer | 전송 중 원본서버에서 먼저 소켓을 종료한 횟수 |
service.host.traffic.origin.rtmp¶
OID = 1.3.6.1.4.1.40001.2.4.1.11.10.20
RTMP 원본서버 트래픽 통계를 실시간(.0), 1분 평균(.1), 5분 평균(.5)으로 제공한다.
경고
우선 클라이언트 RTMP와 동일하게 명시하였다. Push에 필요한 통계로 재정비해야 한다.
OID | Name | Type | Description |
---|---|---|---|
.1 | inbound | Integer | 원본서버로부터 받는 평균 트래픽(Bytes) |
.2 | outbound | Integer | 원본서버로 보내는 평균 트래픽(Bytes) |
.3 | allSessionAverage | Integer | 원본서버 평균 세션수 |
.4 | activeSessionAverage | Integer | 원본서버 중 전송 중인 평균 세션수 |
.10 | reqHeaderSize | Integer | 원본서버로부터 받는 평균 Header 트래픽(Bytes) |
.11 | reqBodySize | Integer | 원본서버로부터 받는 평균 Body 트래픽(Bytes) |
.12 | resHeaderSize | Integer | 원본서버로 보내는 평균 Header트래픽(Bytes) |
.13 | resBodySize | Integer | 원본서버로 보내는 평균 Body트래픽(Bytes) |
.14 | reqAverage | Integer | 원본서버로부터 받은 평균요청 개수 |
.15 | reqCount | Integer | 원본서버로부터 받은 누적요청 개수 |
.20 | NetConnection.Connect | Integer | NetConnection.Connect 응답통계 |
.20.1 | NetConnection.Connect.SuccessAverage | Integer | 성공응답 평균개수 (평균) |
.20.2 | NetConnection.Connect.SuccessCount | Integer | 성공응답 평균개수 |
.20.3 | NetConnection.Connect.FailAverage | Integer | 실패응답 평균개수 (평균) |
.20.4 | NetConnection.Connect.FailCount | Integer | 실패응답 평균개수 |
.20.5 | NetConnection.Connect.TimeRes | Integer | 응답 평균 소요시간(0.01ms) |
.21 | NetConnection.CreateStream | Integer | NetConnection.CreateStream 응답통계 |
.21.1 | NetConnection.CreateStream.SuccessAverage | Integer | 성공응답 평균개수 (평균) |
.21.2 | NetConnection.CreateStream.SuccessCount | Integer | 성공응답 평균개수 |
.21.3 | NetConnection.CreateStream.FailAverage | Integer | 실패응답 평균개수 (평균) |
.21.4 | NetConnection.CreateStream.FailCount | Integer | 실패응답 평균개수 |
.21.5 | NetConnection.CreateStream.TimeRes | Integer | 응답 평균 소요시간(0.01ms) |
.30 | NetStream.Play | Integer | NetStream.Play 응답통계 |
.30.1 | NetStream.Play.SuccessAverage | Integer | 성공응답 평균개수 (평균) |
.30.2 | NetStream.Play.SuccessCount | Integer | 성공응답 평균개수 |
.30.3 | NetStream.Play.FailAverage | Integer | 실패응답 평균개수 (평균) |
.30.4 | NetStream.Play.FailCount | Integer | 실패응답 평균개수 |
.30.5 | NetStream.Play.TimeRes | Integer | 응답 평균 소요시간(0.01ms) |
.31 | NetStream.Close | Integer | NetStream.Close 응답통계 |
.31.1 | NetStream.Close.SuccessAverage | Integer | 성공응답 평균개수 (평균) |
.31.2 | NetStream.Close.SuccessCount | Integer | 성공응답 평균개수 |
.31.3 | NetStream.Close.FailAverage | Integer | 실패응답 평균개수 (평균) |
.31.4 | NetStream.Close.FailCount | Integer | 실패응답 평균개수 |
.31.5 | NetStream.Close.TimeRes | Integer | 응답 평균 소요시간(0.01ms) |
.32 | NetStream.Delete | Integer | NetStream.Delete 응답통계 |
.32.1 | NetStream.Delete.SuccessAverage | Integer | 성공응답 평균개수 (평균) |
.32.2 | NetStream.Delete.SuccessCount | Integer | 성공응답 평균개수 |
.32.3 | NetStream.Delete.FailAverage | Integer | 실패응답 평균개수 (평균) |
.32.4 | NetStream.Delete.FailCount | Integer | 실패응답 평균개수 |
.32.5 | NetStream.Delete.TimeRes | Integer | 응답 평균 소요시간(0.01ms) |
.33 | NetStream.Seek | Integer | NetStream.Seek 응답통계 |
.33.1 | NetStream.Seek.SuccessAverage | Integer | 성공응답 평균개수 (평균) |
.33.2 | NetStream.Seek.SuccessCount | Integer | 성공응답 평균개수 |
.33.3 | NetStream.Seek.FailAverage | Integer | 실패응답 평균개수 (평균) |
.33.4 | NetStream.Seek.FailCount | Integer | 실패응답 평균개수 |
.33.5 | NetStream.Seek.TimeRes | Integer | 응답 평균 소요시간(0.01ms) |
.34 | NetStream.Pause | Integer | NetStream.Pause 응답통계 |
.34.1 | NetStream.Pause.SuccessAverage | Integer | 성공응답 개수 (평균) |
.34.2 | NetStream.Pause.SuccessCount | Integer | 성공응답 개수 |
.34.3 | NetStream.Pause.FailAverage | Integer | 실패응답 개수 (평균) |
.34.4 | NetStream.Pause.FailCount | Integer | 실패응답 개수 |
.34.5 | NetStream.Pause.TimeRes | Integer | 응답 평균 소요시간(0.01ms) |
service.host.traffic.client¶
OID = 1.3.6.1.4.1.40001.2.4.1.11.11
종합적인 클라이언트 트래픽 통계를 실시간(.0), 1분 평균(.1), 5분 평균(.5)으로 제공한다.
OID | Name | Type | Description |
---|---|---|---|
.1 | inbound | Integer | 클라이언트로부터 받는 평균 트래픽(Bytes) |
.2 | outbound | Integer | 클라이언트로 보내는 평균 트래픽(Bytes) |
.3 | allSessionAverage | Integer | 전체 클라이언트 평균 세션수 |
.4 | activeSessionAverage | Integer | 전체 클라이언트 중 전송 중인 평균 세션수 |
.5 | requestHitAverage | OID | 전체 평균 캐시 HIT결과 |
.5.1 | requestHitAverage.TCP_HIT | Integer | TCP_HIT |
.5.2 | requestHitAverage.TCP_IMS_HIT | Integer | TCP_IMS_HIT |
.5.3 | requestHitAverage.TCP_REFRESH_HIT | Integer | TCP_REFRESH_HIT |
.5.4 | requestHitAverage.TCP_REF_FAIL_HIT | Integer | TCP_REF_FAIL_HIT |
.5.5 | requestHitAverage.TCP_NEGATIVE_HIT | Integer | TCP_NEGATIVE_HIT |
.5.6 | requestHitAverage.TCP_MISS | Integer | TCP_MISS |
.5.7 | requestHitAverage.TCP_REFRESH_MISS | Integer | TCP_REFRESH_MISS |
.5.8 | requestHitAverage.TCP_CLIENT_REFRESH_MISS | Integer | TCP_CLIENT_REFRESH_MISS |
.5.9 | requestHitAverage.TCP_DENIED | Integer | TCP_DENIED |
.5.10 | requestHitAverage.TCP_ERROR | Integer | TCP_ERROR |
.5.11 | requestHitAverage.TCP_REDIRECT_HIT | Integer | TCP_REDIRECT_HIT |
.6 | requestHitCount | OID | 캐시 HIT결과 개수 |
.6.1 | requestHitCount.TCP_HIT | Integer | TCP_HIT |
.6.2 | requestHitCount.TCP_IMS_HIT | Integer | TCP_IMS_HIT |
.6.3 | requestHitCount.TCP_REFRESH_HIT | Integer | TCP_REFRESH_HIT |
.6.4 | requestHitCount.TCP_REF_FAIL_HIT | Integer | TCP_REF_FAIL_HIT |
.6.5 | requestHitCount.TCP_NEGATIVE_HIT | Integer | TCP_NEGATIVE_HIT |
.6.6 | requestHitCount.TCP_MISS | Integer | TCP_MISS |
.6.7 | requestHitCount.TCP_REFRESH_MISS | Integer | TCP_REFRESH_MISS |
.6.8 | requestHitCount.TCP_CLIENT_REFRESH_MISS | Integer | TCP_CLIENT_REFRESH_MISS |
.6.9 | requestHitCount.TCP_DENIED | Integer | TCP_DENIED |
.6.10 | requestHitCount.TCP_ERROR | Integer | TCP_ERROR |
.6.11 | requestHitCount.TCP_REDIRECT_HIT | Integer | TCP_REDIRECT_HIT |
.10 | http | OID | HTTP 트래픽 (확장) |
.11 | hls | OID | HLS 트래픽 (확장) |
.12 | mpegdash | OID | MPEG-DASH 트래픽 (확장) |
.20 | rtmp | OID | RTMP 트래픽 (확장) |
service.host.traffic.client.http¶
OID = 1.3.6.1.4.1.40001.2.4.1.11.11.10
HTTP 클라이언트 트래픽 통계를 실시간(.0), 1분 평균(.1), 5분 평균(.5)으로 제공한다.
OID | Name | Type | Description |
---|---|---|---|
.1 | inbound | Integer | 클라이언트로부터 받는 평균 트래픽(Bytes) |
.2 | outbound | Integer | 클라이언트로 보내는 평균 트래픽(Bytes) |
.3 | allSessionAverage | Integer | 클라이언트 평균 세션수 |
.4 | activeSessionAverage | Integer | 클라이언트 중 전송 중인 평균 세션수 |
.5 | requestHitRatio | Integer | Request Hit Ratio(100%) |
.6 | Request Hit Ratio(10000%) | ||
.7 | requestHitAverage | OID | 평균 캐시 HIT결과 |
.7.1 | requestHitAverage.TCP_HIT | Integer | TCP_HIT |
.7.2 | requestHitAverage.TCP_IMS_HIT | Integer | TCP_IMS_HIT |
.7.3 | requestHitAverage.TCP_REFRESH_HIT | Integer | TCP_REFRESH_HIT |
.7.4 | requestHitAverage.TCP_REF_FAIL_HIT | Integer | TCP_REF_FAIL_HIT |
.7.5 | requestHitAverage.TCP_NEGATIVE_HIT | Integer | TCP_NEGATIVE_HIT |
.7.6 | requestHitAverage.TCP_MISS | Integer | TCP_MISS |
.7.7 | requestHitAverage.TCP_REFRESH_MISS | Integer | TCP_REFRESH_MISS |
.7.8 | requestHitAverage.TCP_CLIENT_REFRESH_MISS | Integer | TCP_CLIENT_REFRESH_MISS |
.7.9 | requestHitAverage.TCP_DENIED | Integer | TCP_DENIED |
.7.10 | requestHitAverage.TCP_ERROR | Integer | TCP_ERROR |
.7.11 | requestHitAverage.TCP_REDIRECT_HIT | Integer | TCP_REDIRECT_HIT |
.8 | requestHitCount | OID | 캐시 HIT결과 개수 |
.8.1 | requestHitCount.TCP_HIT | Integer | TCP_HIT |
.8.2 | requestHitCount.TCP_IMS_HIT | Integer | TCP_IMS_HIT |
.8.3 | requestHitCount.TCP_REFRESH_HIT | Integer | TCP_REFRESH_HIT |
.8.4 | requestHitCount.TCP_REF_FAIL_HIT | Integer | TCP_REF_FAIL_HIT |
.8.5 | requestHitCount.TCP_NEGATIVE_HIT | Integer | TCP_NEGATIVE_HIT |
.8.6 | requestHitCount.TCP_MISS | Integer | TCP_MISS |
.8.7 | requestHitCount.TCP_REFRESH_MISS | Integer | TCP_REFRESH_MISS |
.8.8 | requestHitCount.TCP_CLIENT_REFRESH_MISS | Integer | TCP_CLIENT_REFRESH_MISS |
.8.9 | requestHitCount.TCP_DENIED | Integer | TCP_DENIED |
.8.10 | requestHitCount.TCP_ERROR | Integer | TCP_ERROR |
.8.11 | requestHitCount.TCP_REDIRECT_HIT | Integer | TCP_REDIRECT_HIT |
.10 | reqHeaderSize | Integer | 클라이언트로부터 받는 평균 Header 트래픽(Bytes) |
.11 | reqBodySize | Integer | 클라이언트로부터 받는 평균 Body 트래픽(Bytes) |
.12 | resHeaderSize | Integer | 클라이언트로 보내는 평균 Header트래픽(Bytes) |
.13 | resBodySize | Integer | 클라이언트로 보내는 평균 Body트래픽(Bytes) |
.14 | reqAverage | Integer | 클라이언트로부터 받은 평균요청 개수 |
.15 | reqCount | Integer | 클라이언트로부터 받은 누적요청 개수 |
.20 | res2xxAverage | Integer | 클라이언트로 보낸 평균 2xx응답 개수 |
.21 | res2xxCompleteAverage | Integer | 클라이언트가 완료한 평균 2xx트랜잭션 개수 |
.22 | res2xxTimeRes | Integer | 클라이언트 2xx응답 평균 소요시간(0.01ms) |
.23 | res2xxTimeComplete | Integer | 클라이언트 2xx응답 트랜잭션 평균 완료시간(0.01ms) |
.24 | res2xxCount | Integer | 클라이언트로 보낸 2xx응답 개수 |
.25 | res2xxCompleteCount | Integer | 클라이언트가 완료한 2xx트랜잭션 개수 |
.30 | res3xxAverage | Integer | 클라이언트로 보낸 평균 3xx응답 개수 |
.31 | res3xxCompleteAverage | Integer | 클라이언트가 완료한 평균 3xx트랜잭션 개수 |
.32 | res3xxTimeRes | Integer | 클라이언트 3xx응답 평균 소요시간(0.01ms) |
.33 | res3xxTimeComplete | Integer | 클라이언트 3xx응답 트랜잭션 평균 완료시간(0.01ms) |
.34 | res3xxCount | Integer | 클라이언트로 보낸 3xx응답 개수 |
.35 | res3xxCompleteCount | Integer | 클라이언트가 완료한 3xx트랜잭션 개수 |
.40 | res4xxAverage | Integer | 클라이언트로 보낸 평균 4xx응답 개수 |
.41 | res4xxCompleteAverage | Integer | 클라이언트가 완료한 평균 4xx트랜잭션 개수 |
.42 | res4xxTimeRes | Integer | 클라이언트 4xx응답 평균 소요시간(0.01ms) |
.43 | res4xxTimeComplete | Integer | 클라이언트 4xx응답 트랜잭션 평균 완료시간(0.01ms) |
.44 | res4xxCount | Integer | 클라이언트로 보낸 4xx응답 개수 |
.45 | res4xxCompleteCount | Integer | 클라이언트가 완료한 4xx트랜잭션 개수 |
.50 | res5xxAverage | Integer | 클라이언트로 보낸 평균 5xx응답 개수 |
.51 | res5xxCompleteAverage | Integer | 클라이언트가 완료한 평균 5xx트랜잭션 개수 |
.52 | res5xxTimeRes | Integer | 클라이언트 5xx응답 평균 소요시간(0.01ms) |
.53 | res5xxTimeComplete | Integer | 클라이언트 5xx응답 트랜잭션 평균 완료시간(0.01ms) |
.54 | res5xxCount | Integer | 클라이언트로 보낸 5xx응답 개수 |
.55 | res5xxCompleteCount | Integer | 클라이언트가 완료한 5xx트랜잭션 개수 |
.80 | resTotalAverage | Integer | 클라이언트로 보낸 평균 전체응답 개수 |
.81 | resTotalCompleteAverage | Integer | 클라이언트가 완료한 평균 트랜잭션 개수 |
.82 | resTotalTimeRes | Integer | 클라이언트 응답 평균 소요시간(0.01ms) |
.83 | resTotalTimeComplete | Integer | 클라이언트 트랜잭션 평균 완료시간(0.01ms) |
.84 | resTotalCount | Integer | 클라이언트로 보낸 전체응답 개수 |
.85 | resTotalCompleteCount | Integer | 클라이언트가 완료한 트랜잭션 개수 |
service.host.traffic.client.hls¶
OID = 1.3.6.1.4.1.40001.2.4.1.11.11.11
HLS 클라이언트 트래픽 통계를 실시간(.0), 1분 평균(.1), 5분 평균(.5)으로 제공한다.
OID | Name | Type | Description |
---|---|---|---|
.1 | inbound | Integer | 클라이언트로부터 받는 평균 트래픽(Bytes) |
.2 | outbound | Integer | 클라이언트로 보내는 평균 트래픽(Bytes) |
.3 | allSessionAverage | Integer | 클라이언트 평균 세션수 |
.4 | activeSessionAverage | Integer | 클라이언트 중 전송 중인 평균 세션수 |
.5 | requestHitRatio | Integer | Request Hit Ratio(100%) |
.6 | Request Hit Ratio(10000%) | ||
.7 | requestHitAverage | OID | 평균 캐시 HIT결과 |
.7.1 | requestHitAverage.TCP_HIT | Integer | TCP_HIT |
.7.2 | requestHitAverage.TCP_IMS_HIT | Integer | TCP_IMS_HIT |
.7.3 | requestHitAverage.TCP_REFRESH_HIT | Integer | TCP_REFRESH_HIT |
.7.4 | requestHitAverage.TCP_REF_FAIL_HIT | Integer | TCP_REF_FAIL_HIT |
.7.5 | requestHitAverage.TCP_NEGATIVE_HIT | Integer | TCP_NEGATIVE_HIT |
.7.6 | requestHitAverage.TCP_MISS | Integer | TCP_MISS |
.7.7 | requestHitAverage.TCP_REFRESH_MISS | Integer | TCP_REFRESH_MISS |
.7.8 | requestHitAverage.TCP_CLIENT_REFRESH_MISS | Integer | TCP_CLIENT_REFRESH_MISS |
.7.9 | requestHitAverage.TCP_DENIED | Integer | TCP_DENIED |
.7.10 | requestHitAverage.TCP_ERROR | Integer | TCP_ERROR |
.7.11 | requestHitAverage.TCP_REDIRECT_HIT | Integer | TCP_REDIRECT_HIT |
.8 | requestHitCount | OID | 캐시 HIT결과 개수 |
.8.1 | requestHitCount.TCP_HIT | Integer | TCP_HIT |
.8.2 | requestHitCount.TCP_IMS_HIT | Integer | TCP_IMS_HIT |
.8.3 | requestHitCount.TCP_REFRESH_HIT | Integer | TCP_REFRESH_HIT |
.8.4 | requestHitCount.TCP_REF_FAIL_HIT | Integer | TCP_REF_FAIL_HIT |
.8.5 | requestHitCount.TCP_NEGATIVE_HIT | Integer | TCP_NEGATIVE_HIT |
.8.6 | requestHitCount.TCP_MISS | Integer | TCP_MISS |
.8.7 | requestHitCount.TCP_REFRESH_MISS | Integer | TCP_REFRESH_MISS |
.8.8 | requestHitCount.TCP_CLIENT_REFRESH_MISS | Integer | TCP_CLIENT_REFRESH_MISS |
.8.9 | requestHitCount.TCP_DENIED | Integer | TCP_DENIED |
.8.10 | requestHitCount.TCP_ERROR | Integer | TCP_ERROR |
.8.11 | requestHitCount.TCP_REDIRECT_HIT | Integer | TCP_REDIRECT_HIT |
.10 | reqHeaderSize | Integer | 클라이언트로부터 받는 평균 Header 트래픽(Bytes) |
.11 | reqBodySize | Integer | 클라이언트로부터 받는 평균 Body 트래픽(Bytes) |
.12 | resHeaderSize | Integer | 클라이언트로 보내는 평균 Header트래픽(Bytes) |
.13 | resBodySize | Integer | 클라이언트로 보내는 평균 Body트래픽(Bytes) |
.14 | reqAverage | Integer | 클라이언트로부터 받은 평균요청 개수 |
.15 | reqCount | Integer | 클라이언트로부터 받은 누적요청 개수 |
.20 | res2xxAverage | Integer | 클라이언트로 보낸 평균 2xx응답 개수 |
.21 | res2xxCompleteAverage | Integer | 클라이언트가 완료한 평균 2xx트랜잭션 개수 |
.22 | res2xxTimeRes | Integer | 클라이언트 2xx응답 평균 소요시간(0.01ms) |
.23 | res2xxTimeComplete | Integer | 클라이언트 2xx응답 트랜잭션 평균 완료시간(0.01ms) |
.24 | res2xxCount | Integer | 클라이언트로 보낸 2xx응답 개수 |
.25 | res2xxCompleteCount | Integer | 클라이언트가 완료한 2xx트랜잭션 개수 |
.30 | res3xxAverage | Integer | 클라이언트로 보낸 평균 3xx응답 개수 |
.31 | res3xxCompleteAverage | Integer | 클라이언트가 완료한 평균 3xx트랜잭션 개수 |
.32 | res3xxTimeRes | Integer | 클라이언트 3xx응답 평균 소요시간(0.01ms) |
.33 | res3xxTimeComplete | Integer | 클라이언트 3xx응답 트랜잭션 평균 완료시간(0.01ms) |
.34 | res3xxCount | Integer | 클라이언트로 보낸 3xx응답 개수 |
.35 | res3xxCompleteCount | Integer | 클라이언트가 완료한 3xx트랜잭션 개수 |
.40 | res4xxAverage | Integer | 클라이언트로 보낸 평균 4xx응답 개수 |
.41 | res4xxCompleteAverage | Integer | 클라이언트가 완료한 평균 4xx트랜잭션 개수 |
.42 | res4xxTimeRes | Integer | 클라이언트 4xx응답 평균 소요시간(0.01ms) |
.43 | res4xxTimeComplete | Integer | 클라이언트 4xx응답 트랜잭션 평균 완료시간(0.01ms) |
.44 | res4xxCount | Integer | 클라이언트로 보낸 4xx응답 개수 |
.45 | res4xxCompleteCount | Integer | 클라이언트가 완료한 4xx트랜잭션 개수 |
.50 | res5xxAverage | Integer | 클라이언트로 보낸 평균 5xx응답 개수 |
.51 | res5xxCompleteAverage | Integer | 클라이언트가 완료한 평균 5xx트랜잭션 개수 |
.52 | res5xxTimeRes | Integer | 클라이언트 5xx응답 평균 소요시간(0.01ms) |
.53 | res5xxTimeComplete | Integer | 클라이언트 5xx응답 트랜잭션 평균 완료시간(0.01ms) |
.54 | res5xxCount | Integer | 클라이언트로 보낸 5xx응답 개수 |
.55 | res5xxCompleteCount | Integer | 클라이언트가 완료한 5xx트랜잭션 개수 |
.80 | resTotalAverage | Integer | 클라이언트로 보낸 평균 전체응답 개수 |
.81 | resTotalCompleteAverage | Integer | 클라이언트가 완료한 평균 트랜잭션 개수 |
.82 | resTotalTimeRes | Integer | 클라이언트 응답 평균 소요시간(0.01ms) |
.83 | resTotalTimeComplete | Integer | 클라이언트 트랜잭션 평균 완료시간(0.01ms) |
.84 | resTotalCount | Integer | 클라이언트로 보낸 전체응답 개수 |
.85 | resTotalCompleteCount | Integer | 클라이언트가 완료한 트랜잭션 개수 |
service.host.traffic.client.mpegdash¶
OID = 1.3.6.1.4.1.40001.2.4.1.11.11.12
MPEG-DASH 클라이언트 트래픽 통계를 실시간(.0), 1분 평균(.1), 5분 평균(.5)으로 제공한다.
OID | Name | Type | Description |
---|---|---|---|
.1 | inbound | Integer | 클라이언트로부터 받는 평균 트래픽(Bytes) |
.2 | outbound | Integer | 클라이언트로 보내는 평균 트래픽(Bytes) |
.3 | allSessionAverage | Integer | 클라이언트 평균 세션수 |
.4 | activeSessionAverage | Integer | 클라이언트 중 전송 중인 평균 세션수 |
.5 | requestHitRatio | Integer | Request Hit Ratio(100%) |
.6 | Request Hit Ratio(10000%) | ||
.7 | requestHitAverage | OID | 평균 캐시 HIT결과 |
.7.1 | requestHitAverage.TCP_HIT | Integer | TCP_HIT |
.7.2 | requestHitAverage.TCP_IMS_HIT | Integer | TCP_IMS_HIT |
.7.3 | requestHitAverage.TCP_REFRESH_HIT | Integer | TCP_REFRESH_HIT |
.7.4 | requestHitAverage.TCP_REF_FAIL_HIT | Integer | TCP_REF_FAIL_HIT |
.7.5 | requestHitAverage.TCP_NEGATIVE_HIT | Integer | TCP_NEGATIVE_HIT |
.7.6 | requestHitAverage.TCP_MISS | Integer | TCP_MISS |
.7.7 | requestHitAverage.TCP_REFRESH_MISS | Integer | TCP_REFRESH_MISS |
.7.8 | requestHitAverage.TCP_CLIENT_REFRESH_MISS | Integer | TCP_CLIENT_REFRESH_MISS |
.7.9 | requestHitAverage.TCP_DENIED | Integer | TCP_DENIED |
.7.10 | requestHitAverage.TCP_ERROR | Integer | TCP_ERROR |
.7.11 | requestHitAverage.TCP_REDIRECT_HIT | Integer | TCP_REDIRECT_HIT |
.8 | requestHitCount | OID | 캐시 HIT결과 개수 |
.8.1 | requestHitCount.TCP_HIT | Integer | TCP_HIT |
.8.2 | requestHitCount.TCP_IMS_HIT | Integer | TCP_IMS_HIT |
.8.3 | requestHitCount.TCP_REFRESH_HIT | Integer | TCP_REFRESH_HIT |
.8.4 | requestHitCount.TCP_REF_FAIL_HIT | Integer | TCP_REF_FAIL_HIT |
.8.5 | requestHitCount.TCP_NEGATIVE_HIT | Integer | TCP_NEGATIVE_HIT |
.8.6 | requestHitCount.TCP_MISS | Integer | TCP_MISS |
.8.7 | requestHitCount.TCP_REFRESH_MISS | Integer | TCP_REFRESH_MISS |
.8.8 | requestHitCount.TCP_CLIENT_REFRESH_MISS | Integer | TCP_CLIENT_REFRESH_MISS |
.8.9 | requestHitCount.TCP_DENIED | Integer | TCP_DENIED |
.8.10 | requestHitCount.TCP_ERROR | Integer | TCP_ERROR |
.8.11 | requestHitCount.TCP_REDIRECT_HIT | Integer | TCP_REDIRECT_HIT |
.10 | reqHeaderSize | Integer | 클라이언트로부터 받는 평균 Header 트래픽(Bytes) |
.11 | reqBodySize | Integer | 클라이언트로부터 받는 평균 Body 트래픽(Bytes) |
.12 | resHeaderSize | Integer | 클라이언트로 보내는 평균 Header트래픽(Bytes) |
.13 | resBodySize | Integer | 클라이언트로 보내는 평균 Body트래픽(Bytes) |
.14 | reqAverage | Integer | 클라이언트로부터 받은 평균요청 개수 |
.15 | reqCount | Integer | 클라이언트로부터 받은 누적요청 개수 |
.20 | res2xxAverage | Integer | 클라이언트로 보낸 평균 2xx응답 개수 |
.21 | res2xxCompleteAverage | Integer | 클라이언트가 완료한 평균 2xx트랜잭션 개수 |
.22 | res2xxTimeRes | Integer | 클라이언트 2xx응답 평균 소요시간(0.01ms) |
.23 | res2xxTimeComplete | Integer | 클라이언트 2xx응답 트랜잭션 평균 완료시간(0.01ms) |
.24 | res2xxCount | Integer | 클라이언트로 보낸 2xx응답 개수 |
.25 | res2xxCompleteCount | Integer | 클라이언트가 완료한 2xx트랜잭션 개수 |
.30 | res3xxAverage | Integer | 클라이언트로 보낸 평균 3xx응답 개수 |
.31 | res3xxCompleteAverage | Integer | 클라이언트가 완료한 평균 3xx트랜잭션 개수 |
.32 | res3xxTimeRes | Integer | 클라이언트 3xx응답 평균 소요시간(0.01ms) |
.33 | res3xxTimeComplete | Integer | 클라이언트 3xx응답 트랜잭션 평균 완료시간(0.01ms) |
.34 | res3xxCount | Integer | 클라이언트로 보낸 3xx응답 개수 |
.35 | res3xxCompleteCount | Integer | 클라이언트가 완료한 3xx트랜잭션 개수 |
.40 | res4xxAverage | Integer | 클라이언트로 보낸 평균 4xx응답 개수 |
.41 | res4xxCompleteAverage | Integer | 클라이언트가 완료한 평균 4xx트랜잭션 개수 |
.42 | res4xxTimeRes | Integer | 클라이언트 4xx응답 평균 소요시간(0.01ms) |
.43 | res4xxTimeComplete | Integer | 클라이언트 4xx응답 트랜잭션 평균 완료시간(0.01ms) |
.44 | res4xxCount | Integer | 클라이언트로 보낸 4xx응답 개수 |
.45 | res4xxCompleteCount | Integer | 클라이언트가 완료한 4xx트랜잭션 개수 |
.50 | res5xxAverage | Integer | 클라이언트로 보낸 평균 5xx응답 개수 |
.51 | res5xxCompleteAverage | Integer | 클라이언트가 완료한 평균 5xx트랜잭션 개수 |
.52 | res5xxTimeRes | Integer | 클라이언트 5xx응답 평균 소요시간(0.01ms) |
.53 | res5xxTimeComplete | Integer | 클라이언트 5xx응답 트랜잭션 평균 완료시간(0.01ms) |
.54 | res5xxCount | Integer | 클라이언트로 보낸 5xx응답 개수 |
.55 | res5xxCompleteCount | Integer | 클라이언트가 완료한 5xx트랜잭션 개수 |
.80 | resTotalAverage | Integer | 클라이언트로 보낸 평균 전체응답 개수 |
.81 | resTotalCompleteAverage | Integer | 클라이언트가 완료한 평균 트랜잭션 개수 |
.82 | resTotalTimeRes | Integer | 클라이언트 응답 평균 소요시간(0.01ms) |
.83 | resTotalTimeComplete | Integer | 클라이언트 트랜잭션 평균 완료시간(0.01ms) |
.84 | resTotalCount | Integer | 클라이언트로 보낸 전체응답 개수 |
.85 | resTotalCompleteCount | Integer | 클라이언트가 완료한 트랜잭션 개수 |
service.host.traffic.client.rtmp¶
OID = 1.3.6.1.4.1.40001.2.4.1.11.11.12
RTMP 클라이언트 트래픽 통계를 실시간(.0), 1분 평균(.1), 5분 평균(.5)으로 제공한다.
OID | Name | Type | Description |
---|---|---|---|
.1 | inbound | Integer | 클라이언트로부터 받는 평균 트래픽(Bytes) |
.2 | outbound | Integer | 클라이언트로 보내는 평균 트래픽(Bytes) |
.3 | allSessionAverage | Integer | 클라이언트 평균 세션수 |
.4 | activeSessionAverage | Integer | 클라이언트 중 전송 중인 평균 세션수 |
.5 | requestHitRatio | Integer | Request Hit Ratio(100%) |
.6 | Request Hit Ratio(10000%) | ||
.7 | requestHitAverage | OID | 평균 캐시 HIT결과 |
.7.1 | requestHitAverage.TCP_HIT | Integer | TCP_HIT |
.7.2 | requestHitAverage.TCP_IMS_HIT | Integer | TCP_IMS_HIT |
.7.3 | requestHitAverage.TCP_REFRESH_HIT | Integer | TCP_REFRESH_HIT |
.7.4 | requestHitAverage.TCP_REF_FAIL_HIT | Integer | TCP_REF_FAIL_HIT |
.7.5 | requestHitAverage.TCP_NEGATIVE_HIT | Integer | TCP_NEGATIVE_HIT |
.7.6 | requestHitAverage.TCP_MISS | Integer | TCP_MISS |
.7.7 | requestHitAverage.TCP_REFRESH_MISS | Integer | TCP_REFRESH_MISS |
.7.8 | requestHitAverage.TCP_CLIENT_REFRESH_MISS | Integer | TCP_CLIENT_REFRESH_MISS |
.7.9 | requestHitAverage.TCP_DENIED | Integer | TCP_DENIED |
.7.10 | requestHitAverage.TCP_ERROR | Integer | TCP_ERROR |
.7.11 | requestHitAverage.TCP_REDIRECT_HIT | Integer | TCP_REDIRECT_HIT |
.8 | requestHitCount | OID | 캐시 HIT결과 개수 |
.8.1 | requestHitCount.TCP_HIT | Integer | TCP_HIT |
.8.2 | requestHitCount.TCP_IMS_HIT | Integer | TCP_IMS_HIT |
.8.3 | requestHitCount.TCP_REFRESH_HIT | Integer | TCP_REFRESH_HIT |
.8.4 | requestHitCount.TCP_REF_FAIL_HIT | Integer | TCP_REF_FAIL_HIT |
.8.5 | requestHitCount.TCP_NEGATIVE_HIT | Integer | TCP_NEGATIVE_HIT |
.8.6 | requestHitCount.TCP_MISS | Integer | TCP_MISS |
.8.7 | requestHitCount.TCP_REFRESH_MISS | Integer | TCP_REFRESH_MISS |
.8.8 | requestHitCount.TCP_CLIENT_REFRESH_MISS | Integer | TCP_CLIENT_REFRESH_MISS |
.8.9 | requestHitCount.TCP_DENIED | Integer | TCP_DENIED |
.8.10 | requestHitCount.TCP_ERROR | Integer | TCP_ERROR |
.8.11 | requestHitCount.TCP_REDIRECT_HIT | Integer | TCP_REDIRECT_HIT |
.10 | reqHeaderSize | Integer | 클라이언트로부터 받는 평균 Header 트래픽(Bytes) |
.11 | reqBodySize | Integer | 클라이언트로부터 받는 평균 Body 트래픽(Bytes) |
.12 | resHeaderSize | Integer | 클라이언트로 보내는 평균 Header트래픽(Bytes) |
.13 | resBodySize | Integer | 클라이언트로 보내는 평균 Body트래픽(Bytes) |
.14 | reqAverage | Integer | 클라이언트로부터 받은 평균요청 개수 |
.15 | reqCount | Integer | 클라이언트로부터 받은 누적요청 개수 |
.20 | NetConnection.Connect | Integer | NetConnection.Connect 응답통계 |
.20.1 | NetConnection.Connect.SuccessAverage | Integer | 성공응답 평균개수 (평균) |
.20.2 | NetConnection.Connect.SuccessCount | Integer | 성공응답 평균개수 |
.20.3 | NetConnection.Connect.FailAverage | Integer | 실패응답 평균개수 (평균) |
.20.4 | NetConnection.Connect.FailCount | Integer | 실패응답 평균개수 |
.20.5 | NetConnection.Connect.TimeRes | Integer | 응답 평균 소요시간(0.01ms) |
.21 | NetConnection.CreateStream | Integer | NetConnection.CreateStream 응답통계 |
.21.1 | NetConnection.CreateStream.SuccessAverage | Integer | 성공응답 평균개수 (평균) |
.21.2 | NetConnection.CreateStream.SuccessCount | Integer | 성공응답 평균개수 |
.21.3 | NetConnection.CreateStream.FailAverage | Integer | 실패응답 평균개수 (평균) |
.21.4 | NetConnection.CreateStream.FailCount | Integer | 실패응답 평균개수 |
.21.5 | NetConnection.CreateStream.TimeRes | Integer | 응답 평균 소요시간(0.01ms) |
.30 | NetStream.Play | Integer | NetStream.Play 응답통계 |
.30.1 | NetStream.Play.SuccessAverage | Integer | 성공응답 평균개수 (평균) |
.30.2 | NetStream.Play.SuccessCount | Integer | 성공응답 평균개수 |
.30.3 | NetStream.Play.FailAverage | Integer | 실패응답 평균개수 (평균) |
.30.4 | NetStream.Play.FailCount | Integer | 실패응답 평균개수 |
.30.5 | NetStream.Play.TimeRes | Integer | 응답 평균 소요시간(0.01ms) |
.31 | NetStream.Close | Integer | NetStream.Close 응답통계 |
.31.1 | NetStream.Close.SuccessAverage | Integer | 성공응답 평균개수 (평균) |
.31.2 | NetStream.Close.SuccessCount | Integer | 성공응답 평균개수 |
.31.3 | NetStream.Close.FailAverage | Integer | 실패응답 평균개수 (평균) |
.31.4 | NetStream.Close.FailCount | Integer | 실패응답 평균개수 |
.31.5 | NetStream.Close.TimeRes | Integer | 응답 평균 소요시간(0.01ms) |
.32 | NetStream.Delete | Integer | NetStream.Delete 응답통계 |
.32.1 | NetStream.Delete.SuccessAverage | Integer | 성공응답 평균개수 (평균) |
.32.2 | NetStream.Delete.SuccessCount | Integer | 성공응답 평균개수 |
.32.3 | NetStream.Delete.FailAverage | Integer | 실패응답 평균개수 (평균) |
.32.4 | NetStream.Delete.FailCount | Integer | 실패응답 평균개수 |
.32.5 | NetStream.Delete.TimeRes | Integer | 응답 평균 소요시간(0.01ms) |
.33 | NetStream.Seek | Integer | NetStream.Seek 응답통계 |
.33.1 | NetStream.Seek.SuccessAverage | Integer | 성공응답 평균개수 (평균) |
.33.2 | NetStream.Seek.SuccessCount | Integer | 성공응답 평균개수 |
.33.3 | NetStream.Seek.FailAverage | Integer | 실패응답 평균개수 (평균) |
.33.4 | NetStream.Seek.FailCount | Integer | 실패응답 평균개수 |
.33.5 | NetStream.Seek.TimeRes | Integer | 응답 평균 소요시간(0.01ms) |
.34 | NetStream.Pause | Integer | NetStream.Pause 응답통계 |
.34.1 | NetStream.Pause.SuccessAverage | Integer | 성공응답 평균개수 (평균) |
.34.2 | NetStream.Pause.SuccessCount | Integer | 성공응답 평균개수 |
.34.3 | NetStream.Pause.FailAverage | Integer | 실패응답 평균개수 (평균) |
.34.4 | NetStream.Pause.FailCount | Integer | 실패응답 평균개수 |
.34.5 | NetStream.Pause.TimeRes | Integer | 응답 평균 소요시간(0.01ms) |
service.vhost¶
OID = 1.3.6.1.4.1.40001.2.4.3.[vhostIndex]
가상호스트의 정보를 실시간(.0), 1분 평균(.1), 5분 평균(.5)으로 제공한다.
OID | Name | Type | Description |
---|---|---|---|
.2 | name | String | 가상호스트 이름 |
.3 | status | String | “Healthy” 또는 “Inactive” 또는 “Emergency” |
.4 | uptime | Integer | 가상호스트 실행시간 (초) |
.5 | type | String | 가상호스트 VOD 또는 LIVE |
.10 | contents | OID | 컨텐츠 정보 (확장) |
.11 | traffic | OID | 통계 (확장) |
service.vhost.contents¶
OID = 1.3.6.1.4.1.40001.2.4.3.[vhostIndex].10
가상호스트가 서비스하는 컨텐츠 통계를 실시간(.0), 1분 평균(.1), 5분 평균(.5)으로 제공한다.
OID | Name | Type | Description |
---|---|---|---|
.1 | memory | Integer | 메모리 캐싱 크기(KB) |
.2 | filesTotalCount | Integer | 서비스 중인 파일개수 |
.3 | filesTotalSize | Integer | 서비스 중인 전체 파일량(MB) |
.10 | filesCountU1KB | Integer | 1KB미만 파일개수 |
.11 | filesCountU2KB | Integer | 2KB미만 파일개수 |
.12 | filesCountU4KB | Integer | 4KB미만 파일개수 |
.13 | filesCountU8KB | Integer | 8KB미만 파일개수 |
.14 | filesCountU16KB | Integer | 16KB미만 파일개수 |
.15 | filesCountU32KB | Integer | 32KB미만 파일개수 |
.16 | filesCountU64KB | Integer | 64KB미만 파일개수 |
.17 | filesCountU128KB | Integer | 128KB미만 파일개수 |
.18 | filesCountU256KB | Integer | 256KB미만 파일개수 |
.19 | filesCountU512KB | Integer | 512KB미만 파일개수 |
.20 | filesCountU1MB | Integer | 1MB미만 파일개수 |
.21 | filesCountU2MB | Integer | 2MB미만 파일개수 |
.22 | filesCountU4MB | Integer | 4MB미만 파일개수 |
.23 | filesCountU8MB | Integer | 8MB미만 파일개수 |
.24 | filesCountU16MB | Integer | 16MB미만 파일개수 |
.25 | filesCountU32MB | Integer | 32MB미만 파일개수 |
.26 | filesCountU64MB | Integer | 64MB미만 파일개수 |
.27 | filesCountU128MB | Integer | 128MB미만 파일개수 |
.28 | filesCountU256MB | Integer | 256MB미만 파일개수 |
.29 | filesCountU512MB | Integer | 512MB미만 파일개수 |
.30 | filesCountU1GB | Integer | 1GB미만 파일개수 |
.31 | filesCountU2GB | Integer | 2GB미만 파일개수 |
.32 | filesCountU4GB | Integer | 4GB미만 파일개수 |
.33 | filesCountU8GB | Integer | 8GB미만 파일개수 |
.34 | filesCountU16GB | Integer | 16GB미만 파일개수 |
.35 | filesCountO16GB | Integer | 16GB이상 파일개수 |
service.vhost.traffic¶
OID = 1.3.6.1.4.1.40001.2.4.3.[vhostIndex].11
가상호스트의 캐시 서비스와 트래픽 통계를 실시간(.0), 1분 평균(.1), 5분 평균(.5)으로 제공한다.
OID | Name | Type | Description |
---|---|---|---|
.1 | requestHitRatio | Integer | Request Hit Ratio(100%) |
.2 | Request Hit Ratio(10000%) | ||
.3 | bytesHitRatio | Integer | Bytes Hit Ratio(100%) |
.4 | Bytes Hit Ratio(10000%) | ||
.10 | origin | OID | 원본 트래픽 정보 (확장) |
.11 | client | OID | 클라이언트 트래픽 정보 (확장) |
service.vhost.traffic.origin¶
OID = 1.3.6.1.4.1.40001.2.4.3.[vhostIndex].11.10
종합적인 원본서버 트래픽 통계를 실시간(.0), 1분 평균(.1), 5분 평균(.5)으로 제공한다.
OID | Name | Type | Description |
---|---|---|---|
.1 | inbound | Integer | 원본서버로부터 받는 평균 트래픽(Bytes) |
.2 | outbound | Integer | 원본서버로 보내는 평균 트래픽(Bytes) |
.3 | allSessionAverage | Integer | 전체 원본서버 평균 세션수 |
.4 | activeSessionAverage | Integer | 전체 원본서버 세션수 중 전송 중인 평균 세션수 |
.10 | http | OID | HTTP 트래픽 (service.vhost.traffic.origin.http) |
.11 | hls | OID | HLS 트래픽 (service.vhost.traffic.origin.hls) |
.12 | mpegdash | OID | MPEG-DASH 트래픽 (service.vhost.traffic.origin.mpegdash) |
.20 | rtmp | OID | RTMP 트래픽 (service.vhost.traffic.origin.rtmp) |
service.vhost.traffic.origin.http¶
OID = 1.3.6.1.4.1.40001.2.4.3.[vhostIndex].11.10.10
HTTP 원본서버 트래픽 통계를 실시간(.0), 1분 평균(.1), 5분 평균(.5)으로 제공한다.
OID | Name | Type | Description |
---|---|---|---|
.1 | inbound | Integer | 원본서버로부터 받는 평균 HTTP 트래픽(Bytes) |
.2 | outbound | Integer | 원본서버로 보내는 평균 HTTP 트래픽(Bytes) |
.3 | allSessionAverage | Integer | 원본서버 평균 HTTP세션 수 |
.4 | activeSessionAverage | Integer | 원본서버 평균 HTTP세션 중 전송 중인 평균 세션수 |
.10 | reqHeaderSize | Integer | 원본서버로 보내는 평균 HTTP Header 트래픽(Bytes) |
.11 | reqBodySize | Integer | 원본서버로 보내는 평균 HTTP Body 트래픽(Bytes) |
.12 | resHeaderSize | Integer | 원본서버로부터 받는 평균 HTTP Header트래픽(Bytes) |
.13 | resBodySize | Integer | 원본서버로부터 받는 평균 HTTP Body트래픽(Bytes) |
.14 | reqAverage | Integer | 원본서버로 보낸 평균 HTTP요청 개수 |
.15 | reqCount | Integer | 원본서버로 보낸 HTTP요청 개수 |
.20 | res2xxAverage | Integer | 원본서버가 보낸 평균 2xx응답 개수 |
.21 | res2xxCompleteAverage | Integer | 원본서버로부터 성공한 평균 2xx 트랜잭션 개수 |
.22 | res2xxTimeRes | Integer | 원본서버로부터 2xx응답 헤더를 받을때까지 평균 소요시간(0.01ms) |
.23 | res2xxTimeComplete | Integer | 원본서버로부터 2xx응답 HTTP 트랜잭션 평균 완료시간(0.01ms) |
.24 | res2xxCount | Integer | 원본서버가 보낸 2xx응답 개수 |
.25 | res2xxCompleteCount | Integer | 원본서버로부터 성공한 2xx 트랜잭션 개수 |
.30 | res3xxAverage | Integer | 원본서버가 보낸 평균 3xx응답 개수 |
.31 | res3xxCompleteAverage | Integer | 원본서버로부터 성공한 평균 3xx 트랜잭션 개수 |
.32 | res3xxTimeRes | Integer | 원본서버로부터 3xx응답 헤더를 받을때까지 평균 소요시간(0.01ms) |
.33 | res3xxTimeComplete | Integer | 원본서버로부터 3xx응답 HTTP 트랜잭션 평균 완료시간(0.01ms) |
.34 | res3xxCount | Integer | 원본서버가 보낸 3xx응답 개수 |
.35 | res3xxCompleteCount | Integer | 원본서버로부터 성공한 3xx 트랜잭션 개수 |
.40 | res4xxAverage | Integer | 원본서버가 보낸 평균 4xx응답 개수 |
.41 | res4xxCompleteAverage | Integer | 원본서버로부터 성공한 평균 4xx 트랜잭션 개수 |
.42 | res4xxTimeRes | Integer | 원본서버로부터 4xx응답 헤더를 받을때까지 평균 소요시간(0.01ms) |
.43 | res4xxTimeComplete | Integer | 원본서버로부터 4xx응답 HTTP 트랜잭션 평균 완료시간(0.01ms) |
.44 | res4xxCount | Integer | 원본서버가 보낸 4xx응답 개수 |
.45 | res4xxCompleteCount | Integer | 원본서버로부터 성공한 4xx 트랜잭션 개수 |
.50 | res5xxAverage | Integer | 원본서버가 보낸 평균 5xx응답 개수 |
.51 | res5xxCompleteAverage | Integer | 원본서버로부터 성공한 평균 5xx 트랜잭션 개수 |
.52 | res5xxTimeRes | Integer | 원본서버로부터 5xx응답 헤더를 받을때까지 평균 소요시간(0.01ms) |
.53 | res5xxTimeComplete | Integer | 원본서버로부터 5xx응답 HTTP 트랜잭션 평균 완료시간(0.01ms) |
.54 | res5xxCount | Integer | 원본서버가 보낸 5xx응답 개수 |
.55 | res5xxCompleteCount | Integer | 원본서버로부터 성공한 5xx 트랜잭션 개수 |
.80 | resTotalAverage | Integer | 원본서버가 보낸 전체 평균 HTTP응답 개수 |
.81 | resTotalCompleteAverage | Integer | 원본서버로부터 성공한 평균 HTTP트랜잭션 개수 |
.82 | resTotalTimeRes | Integer | 원본서버로부터 응답 헤더를 받을때까지 평균 소요시간(0.01ms) |
.83 | resTotalTimeComplete | Integer | 원본서버로부터 응답 HTTP 트랜잭션 평균 완료시간(0.01ms) |
.84 | resTotalCount | Integer | 원본서버가 보낸 전체 HTTP응답 개수 |
.85 | resTotalCompleteCount | Integer | 원본서버로부터 성공한 HTTP트랜잭션 개수 |
.90 | connectTimeoutAverage | Integer | 평균 원본서버 접속실패 횟수 |
.91 | receiveTimeoutAverage | Integer | 평균 원본서버 전송실패 횟수 |
.92 | connectAverage | Integer | 평균 원본서버 접속성공 횟수 |
.93 | dnsQueryTime | Integer | 원본서버 접속 시 평균 DNS쿼리 소요시간 |
.94 | connectTime | Integer | 원본서버 평균 접속 소요시간(0.01ms) |
.95 | connectTimeoutCount | Integer | 원본서버 접속실패 횟수 |
.96 | receiveTimeoutCount | Integer | 원본서버 전송실패 횟수 |
.97 | connectCount | Integer | 원본서버 접속성공 횟수 |
.98 | closeAverage | Integer | 전송 중 원본서버에서 먼저 소켓을 종료한 평균 횟수 |
.99 | closeCount | Integer | 전송 중 원본서버에서 먼저 소켓을 종료한 횟수 |
service.vhost.traffic.origin.hls¶
OID = 1.3.6.1.4.1.40001.2.4.3.[vhostIndex].11.10.11
HLS 원본서버 트래픽 통계를 실시간(.0), 1분 평균(.1), 5분 평균(.5)으로 제공한다.
OID | Name | Type | Description |
---|---|---|---|
.1 | inbound | Integer | 원본서버로부터 받는 평균 HLS 트래픽(Bytes) |
.2 | outbound | Integer | 원본서버로 보내는 평균 HLS 트래픽(Bytes) |
.3 | allSessionAverage | Integer | 원본서버 평균 HLS세션 수 |
.4 | activeSessionAverage | Integer | 원본서버 평균 HLS세션 중 전송 중인 평균 세션수 |
.10 | reqHeaderSize | Integer | 원본서버로 보내는 평균 HLS Header 트래픽(Bytes) |
.11 | reqBodySize | Integer | 원본서버로 보내는 평균 HLS Body 트래픽(Bytes) |
.12 | resHeaderSize | Integer | 원본서버로부터 받는 평균 HLS Header트래픽(Bytes) |
.13 | resBodySize | Integer | 원본서버로부터 받는 평균 HLS Body트래픽(Bytes) |
.14 | reqAverage | Integer | 원본서버로 보낸 평균 HLS요청 개수 |
.15 | reqCount | Integer | 원본서버로 보낸 HLS요청 개수 |
.20 | res2xxAverage | Integer | 원본서버가 보낸 평균 2xx응답 개수 |
.21 | res2xxCompleteAverage | Integer | 원본서버로부터 성공한 평균 2xx 트랜잭션 개수 |
.22 | res2xxTimeRes | Integer | 원본서버로부터 2xx응답 헤더를 받을때까지 평균 소요시간(0.01ms) |
.23 | res2xxTimeComplete | Integer | 원본서버로부터 2xx응답 HLS 트랜잭션 평균 완료시간(0.01ms) |
.24 | res2xxCount | Integer | 원본서버가 보낸 2xx응답 개수 |
.25 | res2xxCompleteCount | Integer | 원본서버로부터 성공한 2xx 트랜잭션 개수 |
.30 | res3xxAverage | Integer | 원본서버가 보낸 평균 3xx응답 개수 |
.31 | res3xxCompleteAverage | Integer | 원본서버로부터 성공한 평균 3xx 트랜잭션 개수 |
.32 | res3xxTimeRes | Integer | 원본서버로부터 3xx응답 헤더를 받을때까지 평균 소요시간(0.01ms) |
.33 | res3xxTimeComplete | Integer | 원본서버로부터 3xx응답 HLS 트랜잭션 평균 완료시간(0.01ms) |
.34 | res3xxCount | Integer | 원본서버가 보낸 3xx응답 개수 |
.35 | res3xxCompleteCount | Integer | 원본서버로부터 성공한 3xx 트랜잭션 개수 |
.40 | res4xxAverage | Integer | 원본서버가 보낸 평균 4xx응답 개수 |
.41 | res4xxCompleteAverage | Integer | 원본서버로부터 성공한 평균 4xx 트랜잭션 개수 |
.42 | res4xxTimeRes | Integer | 원본서버로부터 4xx응답 헤더를 받을때까지 평균 소요시간(0.01ms) |
.43 | res4xxTimeComplete | Integer | 원본서버로부터 4xx응답 HLS 트랜잭션 평균 완료시간(0.01ms) |
.44 | res4xxCount | Integer | 원본서버가 보낸 4xx응답 개수 |
.45 | res4xxCompleteCount | Integer | 원본서버로부터 성공한 4xx 트랜잭션 개수 |
.50 | res5xxAverage | Integer | 원본서버가 보낸 평균 5xx응답 개수 |
.51 | res5xxCompleteAverage | Integer | 원본서버로부터 성공한 평균 5xx 트랜잭션 개수 |
.52 | res5xxTimeRes | Integer | 원본서버로부터 5xx응답 헤더를 받을때까지 평균 소요시간(0.01ms) |
.53 | res5xxTimeComplete | Integer | 원본서버로부터 5xx응답 HLS 트랜잭션 평균 완료시간(0.01ms) |
.54 | res5xxCount | Integer | 원본서버가 보낸 5xx응답 개수 |
.55 | res5xxCompleteCount | Integer | 원본서버로부터 성공한 5xx 트랜잭션 개수 |
.80 | resTotalAverage | Integer | 원본서버가 보낸 전체 평균 HLS응답 개수 |
.81 | resTotalCompleteAverage | Integer | 원본서버로부터 성공한 평균 HLS트랜잭션 개수 |
.82 | resTotalTimeRes | Integer | 원본서버로부터 응답 헤더를 받을때까지 평균 소요시간(0.01ms) |
.83 | resTotalTimeComplete | Integer | 원본서버로부터 응답 HLS 트랜잭션 평균 완료시간(0.01ms) |
.84 | resTotalCount | Integer | 원본서버가 보낸 전체 HLS응답 개수 |
.85 | resTotalCompleteCount | Integer | 원본서버로부터 성공한 HLS트랜잭션 개수 |
.90 | connectTimeoutAverage | Integer | 평균 원본서버 접속실패 횟수 |
.91 | receiveTimeoutAverage | Integer | 평균 원본서버 전송실패 횟수 |
.92 | connectAverage | Integer | 평균 원본서버 접속성공 횟수 |
.93 | dnsQueryTime | Integer | 원본서버 접속 시 평균 DNS쿼리 소요시간 |
.94 | connectTime | Integer | 원본서버 평균 접속 소요시간(0.01ms) |
.95 | connectTimeoutCount | Integer | 원본서버 접속실패 횟수 |
.96 | receiveTimeoutCount | Integer | 원본서버 전송실패 횟수 |
.97 | connectCount | Integer | 원본서버 접속성공 횟수 |
.98 | closeAverage | Integer | 전송 중 원본서버에서 먼저 소켓을 종료한 평균 횟수 |
.99 | closeCount | Integer | 전송 중 원본서버에서 먼저 소켓을 종료한 횟수 |
service.vhost.traffic.origin.mpegdash¶
OID = 1.3.6.1.4.1.40001.2.4.3.[vhostIndex].11.10.12
MPEG-DASH 원본서버 트래픽 통계를 실시간(.0), 1분 평균(.1), 5분 평균(.5)으로 제공한다.
OID | Name | Type | Description |
---|---|---|---|
.1 | inbound | Integer | 원본서버로부터 받는 평균 MPEG-DASH 트래픽(Bytes) |
.2 | outbound | Integer | 원본서버로 보내는 평균 MPEG-DASH 트래픽(Bytes) |
.3 | allSessionAverage | Integer | 원본서버 평균 MPEG-DASH세션 수 |
.4 | activeSessionAverage | Integer | 원본서버 평균 MPEG-DASH세션 중 전송 중인 평균 세션수 |
.10 | reqHeaderSize | Integer | 원본서버로 보내는 평균 MPEG-DASH Header 트래픽(Bytes) |
.11 | reqBodySize | Integer | 원본서버로 보내는 평균 MPEG-DASH Body 트래픽(Bytes) |
.12 | resHeaderSize | Integer | 원본서버로부터 받는 평균 MPEG-DASH Header트래픽(Bytes) |
.13 | resBodySize | Integer | 원본서버로부터 받는 평균 MPEG-DASH Body트래픽(Bytes) |
.14 | reqAverage | Integer | 원본서버로 보낸 평균 MPEG-DASH요청 개수 |
.15 | reqCount | Integer | 원본서버로 보낸 MPEG-DASH요청 개수 |
.20 | res2xxAverage | Integer | 원본서버가 보낸 평균 2xx응답 개수 |
.21 | res2xxCompleteAverage | Integer | 원본서버로부터 성공한 평균 2xx 트랜잭션 개수 |
.22 | res2xxTimeRes | Integer | 원본서버로부터 2xx응답 헤더를 받을때까지 평균 소요시간(0.01ms) |
.23 | res2xxTimeComplete | Integer | 원본서버로부터 2xx응답 MPEG-DASH 트랜잭션 평균 완료시간(0.01ms) |
.24 | res2xxCount | Integer | 원본서버가 보낸 2xx응답 개수 |
.25 | res2xxCompleteCount | Integer | 원본서버로부터 성공한 2xx 트랜잭션 개수 |
.30 | res3xxAverage | Integer | 원본서버가 보낸 평균 3xx응답 개수 |
.31 | res3xxCompleteAverage | Integer | 원본서버로부터 성공한 평균 3xx 트랜잭션 개수 |
.32 | res3xxTimeRes | Integer | 원본서버로부터 3xx응답 헤더를 받을때까지 평균 소요시간(0.01ms) |
.33 | res3xxTimeComplete | Integer | 원본서버로부터 3xx응답 MPEG-DASH 트랜잭션 평균 완료시간(0.01ms) |
.34 | res3xxCount | Integer | 원본서버가 보낸 3xx응답 개수 |
.35 | res3xxCompleteCount | Integer | 원본서버로부터 성공한 3xx 트랜잭션 개수 |
.40 | res4xxAverage | Integer | 원본서버가 보낸 평균 4xx응답 개수 |
.41 | res4xxCompleteAverage | Integer | 원본서버로부터 성공한 평균 4xx 트랜잭션 개수 |
.42 | res4xxTimeRes | Integer | 원본서버로부터 4xx응답 헤더를 받을때까지 평균 소요시간(0.01ms) |
.43 | res4xxTimeComplete | Integer | 원본서버로부터 4xx응답 MPEG-DASH 트랜잭션 평균 완료시간(0.01ms) |
.44 | res4xxCount | Integer | 원본서버가 보낸 4xx응답 개수 |
.45 | res4xxCompleteCount | Integer | 원본서버로부터 성공한 4xx 트랜잭션 개수 |
.50 | res5xxAverage | Integer | 원본서버가 보낸 평균 5xx응답 개수 |
.51 | res5xxCompleteAverage | Integer | 원본서버로부터 성공한 평균 5xx 트랜잭션 개수 |
.52 | res5xxTimeRes | Integer | 원본서버로부터 5xx응답 헤더를 받을때까지 평균 소요시간(0.01ms) |
.53 | res5xxTimeComplete | Integer | 원본서버로부터 5xx응답 MPEG-DASH 트랜잭션 평균 완료시간(0.01ms) |
.54 | res5xxCount | Integer | 원본서버가 보낸 5xx응답 개수 |
.55 | res5xxCompleteCount | Integer | 원본서버로부터 성공한 5xx 트랜잭션 개수 |
.80 | resTotalAverage | Integer | 원본서버가 보낸 전체 평균 MPEG-DASH응답 개수 |
.81 | resTotalCompleteAverage | Integer | 원본서버로부터 성공한 평균 MPEG-DASH트랜잭션 개수 |
.82 | resTotalTimeRes | Integer | 원본서버로부터 응답 헤더를 받을때까지 평균 소요시간(0.01ms) |
.83 | resTotalTimeComplete | Integer | 원본서버로부터 응답 MPEG-DASH 트랜잭션 평균 완료시간(0.01ms) |
.84 | resTotalCount | Integer | 원본서버가 보낸 전체 MPEG-DASH응답 개수 |
.85 | resTotalCompleteCount | Integer | 원본서버로부터 성공한 MPEG-DASH트랜잭션 개수 |
.90 | connectTimeoutAverage | Integer | 평균 원본서버 접속실패 횟수 |
.91 | receiveTimeoutAverage | Integer | 평균 원본서버 전송실패 횟수 |
.92 | connectAverage | Integer | 평균 원본서버 접속성공 횟수 |
.93 | dnsQueryTime | Integer | 원본서버 접속 시 평균 DNS쿼리 소요시간 |
.94 | connectTime | Integer | 원본서버 평균 접속 소요시간(0.01ms) |
.95 | connectTimeoutCount | Integer | 원본서버 접속실패 횟수 |
.96 | receiveTimeoutCount | Integer | 원본서버 전송실패 횟수 |
.97 | connectCount | Integer | 원본서버 접속성공 횟수 |
.98 | closeAverage | Integer | 전송 중 원본서버에서 먼저 소켓을 종료한 평균 횟수 |
.99 | closeCount | Integer | 전송 중 원본서버에서 먼저 소켓을 종료한 횟수 |
service.vhost.traffic.origin.rtmp¶
OID = 1.3.6.1.4.1.40001.2.4.3.[vhostIndex].11.10.20
(지원예정) RTMP 원본서버 트래픽 통계를 실시간(.0), 1분 평균(.1), 5분 평균(.5)으로 제공한다.
service.vhost.traffic.client¶
OID = 1.3.6.1.4.1.40001.2.4.3.[vhostIndex].11.11
종합적인 클라이언트 트래픽 통계를 실시간(.0), 1분 평균(.1), 5분 평균(.5)으로 제공한다.
OID | Name | Type | Description |
---|---|---|---|
.1 | inbound | Integer | 클라이언트로부터 받는 평균 트래픽(Bytes) |
.2 | outbound | Integer | 클라이언트로 보내는 평균 트래픽(Bytes) |
.3 | allSessionAverage | Integer | 전체 클라이언트 평균 세션수 |
.4 | activeSessionAverage | Integer | 전체 클라이언트 중 전송 중인 평균 세션수 |
.5 | requestHitAverage | OID | 전체 평균 캐시 HIT결과 |
.5.1 | requestHitAverage.TCP_HIT | Integer | TCP_HIT |
.5.2 | requestHitAverage.TCP_IMS_HIT | Integer | TCP_IMS_HIT |
.5.3 | requestHitAverage.TCP_REFRESH_HIT | Integer | TCP_REFRESH_HIT |
.5.4 | requestHitAverage.TCP_REF_FAIL_HIT | Integer | TCP_REF_FAIL_HIT |
.5.5 | requestHitAverage.TCP_NEGATIVE_HIT | Integer | TCP_NEGATIVE_HIT |
.5.6 | requestHitAverage.TCP_MISS | Integer | TCP_MISS |
.5.7 | requestHitAverage.TCP_REFRESH_MISS | Integer | TCP_REFRESH_MISS |
.5.8 | requestHitAverage.TCP_CLIENT_REFRESH_MISS | Integer | TCP_CLIENT_REFRESH_MISS |
.5.9 | requestHitAverage.TCP_DENIED | Integer | TCP_DENIED |
.5.10 | requestHitAverage.TCP_ERROR | Integer | TCP_ERROR |
.5.11 | requestHitAverage.TCP_REDIRECT_HIT | Integer | TCP_REDIRECT_HIT |
.6 | requestHitCount | OID | 캐시 HIT결과 개수 |
.6.1 | requestHitCount.TCP_HIT | Integer | TCP_HIT |
.6.2 | requestHitCount.TCP_IMS_HIT | Integer | TCP_IMS_HIT |
.6.3 | requestHitCount.TCP_REFRESH_HIT | Integer | TCP_REFRESH_HIT |
.6.4 | requestHitCount.TCP_REF_FAIL_HIT | Integer | TCP_REF_FAIL_HIT |
.6.5 | requestHitCount.TCP_NEGATIVE_HIT | Integer | TCP_NEGATIVE_HIT |
.6.6 | requestHitCount.TCP_MISS | Integer | TCP_MISS |
.6.7 | requestHitCount.TCP_REFRESH_MISS | Integer | TCP_REFRESH_MISS |
.6.8 | requestHitCount.TCP_CLIENT_REFRESH_MISS | Integer | TCP_CLIENT_REFRESH_MISS |
.6.9 | requestHitCount.TCP_DENIED | Integer | TCP_DENIED |
.6.10 | requestHitCount.TCP_ERROR | Integer | TCP_ERROR |
.6.11 | requestHitCount.TCP_REDIRECT_HIT | Integer | TCP_REDIRECT_HIT |
.10 | http | OID | HTTP 트래픽 (service.vhost.traffic.client.http) |
.11 | hls | OID | HLS 트래픽 (service.vhost.traffic.client.hls) |
.12 | mpegdash | OID | MPEG-DASH 트래픽 (service.vhost.traffic.client.mpegdash) |
.20 | rtmp | OID | RTMP 트래픽 (service.vhost.traffic.client.rtmp) |
service.vhost.traffic.client.http¶
OID = 1.3.6.1.4.1.40001.2.4.3.[vhostIndex].11.11.10
HTTP 클라이언트 트래픽 통계를 실시간(.0), 1분 평균(.1), 5분 평균(.5)으로 제공한다.
OID | Name | Type | Description |
---|---|---|---|
.1 | inbound | Integer | 클라이언트로부터 받는 평균 트래픽(Bytes) |
.2 | outbound | Integer | 클라이언트로 보내는 평균 트래픽(Bytes) |
.3 | allSessionAverage | Integer | 클라이언트 평균 세션수 |
.4 | activeSessionAverage | Integer | 클라이언트 중 전송 중인 평균 세션수 |
.5 | requestHitRatio | Integer | Request Hit Ratio(100%) |
.6 | Request Hit Ratio(10000%) | ||
.7 | requestHitAverage | OID | 평균 캐시 HIT결과 |
.7.1 | requestHitAverage.TCP_HIT | Integer | TCP_HIT |
.7.2 | requestHitAverage.TCP_IMS_HIT | Integer | TCP_IMS_HIT |
.7.3 | requestHitAverage.TCP_REFRESH_HIT | Integer | TCP_REFRESH_HIT |
.7.4 | requestHitAverage.TCP_REF_FAIL_HIT | Integer | TCP_REF_FAIL_HIT |
.7.5 | requestHitAverage.TCP_NEGATIVE_HIT | Integer | TCP_NEGATIVE_HIT |
.7.6 | requestHitAverage.TCP_MISS | Integer | TCP_MISS |
.7.7 | requestHitAverage.TCP_REFRESH_MISS | Integer | TCP_REFRESH_MISS |
.7.8 | requestHitAverage.TCP_CLIENT_REFRESH_MISS | Integer | TCP_CLIENT_REFRESH_MISS |
.7.9 | requestHitAverage.TCP_DENIED | Integer | TCP_DENIED |
.7.10 | requestHitAverage.TCP_ERROR | Integer | TCP_ERROR |
.7.11 | requestHitAverage.TCP_REDIRECT_HIT | Integer | TCP_REDIRECT_HIT |
.8 | requestHitCount | OID | 캐시 HIT결과 개수 |
.8.1 | requestHitCount.TCP_HIT | Integer | TCP_HIT |
.8.2 | requestHitCount.TCP_IMS_HIT | Integer | TCP_IMS_HIT |
.8.3 | requestHitCount.TCP_REFRESH_HIT | Integer | TCP_REFRESH_HIT |
.8.4 | requestHitCount.TCP_REF_FAIL_HIT | Integer | TCP_REF_FAIL_HIT |
.8.5 | requestHitCount.TCP_NEGATIVE_HIT | Integer | TCP_NEGATIVE_HIT |
.8.6 | requestHitCount.TCP_MISS | Integer | TCP_MISS |
.8.7 | requestHitCount.TCP_REFRESH_MISS | Integer | TCP_REFRESH_MISS |
.8.8 | requestHitCount.TCP_CLIENT_REFRESH_MISS | Integer | TCP_CLIENT_REFRESH_MISS |
.8.9 | requestHitCount.TCP_DENIED | Integer | TCP_DENIED |
.8.10 | requestHitCount.TCP_ERROR | Integer | TCP_ERROR |
.8.11 | requestHitCount.TCP_REDIRECT_HIT | Integer | TCP_REDIRECT_HIT |
.10 | reqHeaderSize | Integer | 클라이언트로부터 받는 평균 Header 트래픽(Bytes) |
.11 | reqBodySize | Integer | 클라이언트로부터 받는 평균 Body 트래픽(Bytes) |
.12 | resHeaderSize | Integer | 클라이언트로 보내는 평균 Header트래픽(Bytes) |
.13 | resBodySize | Integer | 클라이언트로 보내는 평균 Body트래픽(Bytes) |
.14 | reqAverage | Integer | 클라이언트로부터 받은 평균요청 개수 |
.15 | reqCount | Integer | 클라이언트로부터 받은 누적요청 개수 |
.20 | res2xxAverage | Integer | 클라이언트로 보낸 평균 2xx응답 개수 |
.21 | res2xxCompleteAverage | Integer | 클라이언트가 완료한 평균 2xx트랜잭션 개수 |
.22 | res2xxTimeRes | Integer | 클라이언트 2xx응답 평균 소요시간(0.01ms) |
.23 | res2xxTimeComplete | Integer | 클라이언트 2xx응답 트랜잭션 평균 완료시간(0.01ms) |
.24 | res2xxCount | Integer | 클라이언트로 보낸 2xx응답 개수 |
.25 | res2xxCompleteCount | Integer | 클라이언트가 완료한 2xx트랜잭션 개수 |
.30 | res3xxAverage | Integer | 클라이언트로 보낸 평균 3xx응답 개수 |
.31 | res3xxCompleteAverage | Integer | 클라이언트가 완료한 평균 3xx트랜잭션 개수 |
.32 | res3xxTimeRes | Integer | 클라이언트 3xx응답 평균 소요시간(0.01ms) |
.33 | res3xxTimeComplete | Integer | 클라이언트 3xx응답 트랜잭션 평균 완료시간(0.01ms) |
.34 | res3xxCount | Integer | 클라이언트로 보낸 3xx응답 개수 |
.35 | res3xxCompleteCount | Integer | 클라이언트가 완료한 3xx트랜잭션 개수 |
.40 | res4xxAverage | Integer | 클라이언트로 보낸 평균 4xx응답 개수 |
.41 | res4xxCompleteAverage | Integer | 클라이언트가 완료한 평균 4xx트랜잭션 개수 |
.42 | res4xxTimeRes | Integer | 클라이언트 4xx응답 평균 소요시간(0.01ms) |
.43 | res4xxTimeComplete | Integer | 클라이언트 4xx응답 트랜잭션 평균 완료시간(0.01ms) |
.44 | res4xxCount | Integer | 클라이언트로 보낸 4xx응답 개수 |
.45 | res4xxCompleteCount | Integer | 클라이언트가 완료한 4xx트랜잭션 개수 |
.50 | res5xxAverage | Integer | 클라이언트로 보낸 평균 5xx응답 개수 |
.51 | res5xxCompleteAverage | Integer | 클라이언트가 완료한 평균 5xx트랜잭션 개수 |
.52 | res5xxTimeRes | Integer | 클라이언트 5xx응답 평균 소요시간(0.01ms) |
.53 | res5xxTimeComplete | Integer | 클라이언트 5xx응답 트랜잭션 평균 완료시간(0.01ms) |
.54 | res5xxCount | Integer | 클라이언트로 보낸 5xx응답 개수 |
.55 | res5xxCompleteCount | Integer | 클라이언트가 완료한 5xx트랜잭션 개수 |
.80 | resTotalAverage | Integer | 클라이언트로 보낸 평균 전체응답 개수 |
.81 | resTotalCompleteAverage | Integer | 클라이언트가 완료한 평균 트랜잭션 개수 |
.82 | resTotalTimeRes | Integer | 클라이언트 응답 평균 소요시간(0.01ms) |
.83 | resTotalTimeComplete | Integer | 클라이언트 트랜잭션 평균 완료시간(0.01ms) |
.84 | resTotalCount | Integer | 클라이언트로 보낸 전체응답 개수 |
.85 | resTotalCompleteCount | Integer | 클라이언트가 완료한 트랜잭션 개수 |
service.vhost.traffic.client.hls¶
OID = 1.3.6.1.4.1.40001.2.4.3.[vhostIndex].11.11.11
HLS 클라이언트 트래픽 통계를 실시간(.0), 1분 평균(.1), 5분 평균(.5)으로 제공한다.
OID | Name | Type | Description |
---|---|---|---|
.1 | inbound | Integer | 클라이언트로부터 받는 평균 트래픽(Bytes) |
.2 | outbound | Integer | 클라이언트로 보내는 평균 트래픽(Bytes) |
.3 | allSessionAverage | Integer | 클라이언트 평균 세션수 |
.4 | activeSessionAverage | Integer | 클라이언트 중 전송 중인 평균 세션수 |
.5 | requestHitRatio | Integer | Request Hit Ratio(100%) |
.6 | Request Hit Ratio(10000%) | ||
.7 | requestHitAverage | OID | 평균 캐시 HIT결과 |
.7.1 | requestHitAverage.TCP_HIT | Integer | TCP_HIT |
.7.2 | requestHitAverage.TCP_IMS_HIT | Integer | TCP_IMS_HIT |
.7.3 | requestHitAverage.TCP_REFRESH_HIT | Integer | TCP_REFRESH_HIT |
.7.4 | requestHitAverage.TCP_REF_FAIL_HIT | Integer | TCP_REF_FAIL_HIT |
.7.5 | requestHitAverage.TCP_NEGATIVE_HIT | Integer | TCP_NEGATIVE_HIT |
.7.6 | requestHitAverage.TCP_MISS | Integer | TCP_MISS |
.7.7 | requestHitAverage.TCP_REFRESH_MISS | Integer | TCP_REFRESH_MISS |
.7.8 | requestHitAverage.TCP_CLIENT_REFRESH_MISS | Integer | TCP_CLIENT_REFRESH_MISS |
.7.9 | requestHitAverage.TCP_DENIED | Integer | TCP_DENIED |
.7.10 | requestHitAverage.TCP_ERROR | Integer | TCP_ERROR |
.7.11 | requestHitAverage.TCP_REDIRECT_HIT | Integer | TCP_REDIRECT_HIT |
.8 | requestHitCount | OID | 캐시 HIT결과 개수 |
.8.1 | requestHitCount.TCP_HIT | Integer | TCP_HIT |
.8.2 | requestHitCount.TCP_IMS_HIT | Integer | TCP_IMS_HIT |
.8.3 | requestHitCount.TCP_REFRESH_HIT | Integer | TCP_REFRESH_HIT |
.8.4 | requestHitCount.TCP_REF_FAIL_HIT | Integer | TCP_REF_FAIL_HIT |
.8.5 | requestHitCount.TCP_NEGATIVE_HIT | Integer | TCP_NEGATIVE_HIT |
.8.6 | requestHitCount.TCP_MISS | Integer | TCP_MISS |
.8.7 | requestHitCount.TCP_REFRESH_MISS | Integer | TCP_REFRESH_MISS |
.8.8 | requestHitCount.TCP_CLIENT_REFRESH_MISS | Integer | TCP_CLIENT_REFRESH_MISS |
.8.9 | requestHitCount.TCP_DENIED | Integer | TCP_DENIED |
.8.10 | requestHitCount.TCP_ERROR | Integer | TCP_ERROR |
.8.11 | requestHitCount.TCP_REDIRECT_HIT | Integer | TCP_REDIRECT_HIT |
.10 | reqHeaderSize | Integer | 클라이언트로부터 받는 평균 Header 트래픽(Bytes) |
.11 | reqBodySize | Integer | 클라이언트로부터 받는 평균 Body 트래픽(Bytes) |
.12 | resHeaderSize | Integer | 클라이언트로 보내는 평균 Header트래픽(Bytes) |
.13 | resBodySize | Integer | 클라이언트로 보내는 평균 Body트래픽(Bytes) |
.14 | reqAverage | Integer | 클라이언트로부터 받은 평균요청 개수 |
.15 | reqCount | Integer | 클라이언트로부터 받은 누적요청 개수 |
.20 | res2xxAverage | Integer | 클라이언트로 보낸 평균 2xx응답 개수 |
.21 | res2xxCompleteAverage | Integer | 클라이언트가 완료한 평균 2xx트랜잭션 개수 |
.22 | res2xxTimeRes | Integer | 클라이언트 2xx응답 평균 소요시간(0.01ms) |
.23 | res2xxTimeComplete | Integer | 클라이언트 2xx응답 트랜잭션 평균 완료시간(0.01ms) |
.24 | res2xxCount | Integer | 클라이언트로 보낸 2xx응답 개수 |
.25 | res2xxCompleteCount | Integer | 클라이언트가 완료한 2xx트랜잭션 개수 |
.30 | res3xxAverage | Integer | 클라이언트로 보낸 평균 3xx응답 개수 |
.31 | res3xxCompleteAverage | Integer | 클라이언트가 완료한 평균 3xx트랜잭션 개수 |
.32 | res3xxTimeRes | Integer | 클라이언트 3xx응답 평균 소요시간(0.01ms) |
.33 | res3xxTimeComplete | Integer | 클라이언트 3xx응답 트랜잭션 평균 완료시간(0.01ms) |
.34 | res3xxCount | Integer | 클라이언트로 보낸 3xx응답 개수 |
.35 | res3xxCompleteCount | Integer | 클라이언트가 완료한 3xx트랜잭션 개수 |
.40 | res4xxAverage | Integer | 클라이언트로 보낸 평균 4xx응답 개수 |
.41 | res4xxCompleteAverage | Integer | 클라이언트가 완료한 평균 4xx트랜잭션 개수 |
.42 | res4xxTimeRes | Integer | 클라이언트 4xx응답 평균 소요시간(0.01ms) |
.43 | res4xxTimeComplete | Integer | 클라이언트 4xx응답 트랜잭션 평균 완료시간(0.01ms) |
.44 | res4xxCount | Integer | 클라이언트로 보낸 4xx응답 개수 |
.45 | res4xxCompleteCount | Integer | 클라이언트가 완료한 4xx트랜잭션 개수 |
.50 | res5xxAverage | Integer | 클라이언트로 보낸 평균 5xx응답 개수 |
.51 | res5xxCompleteAverage | Integer | 클라이언트가 완료한 평균 5xx트랜잭션 개수 |
.52 | res5xxTimeRes | Integer | 클라이언트 5xx응답 평균 소요시간(0.01ms) |
.53 | res5xxTimeComplete | Integer | 클라이언트 5xx응답 트랜잭션 평균 완료시간(0.01ms) |
.54 | res5xxCount | Integer | 클라이언트로 보낸 5xx응답 개수 |
.55 | res5xxCompleteCount | Integer | 클라이언트가 완료한 5xx트랜잭션 개수 |
.80 | resTotalAverage | Integer | 클라이언트로 보낸 평균 전체응답 개수 |
.81 | resTotalCompleteAverage | Integer | 클라이언트가 완료한 평균 트랜잭션 개수 |
.82 | resTotalTimeRes | Integer | 클라이언트 응답 평균 소요시간(0.01ms) |
.83 | resTotalTimeComplete | Integer | 클라이언트 트랜잭션 평균 완료시간(0.01ms) |
.84 | resTotalCount | Integer | 클라이언트로 보낸 전체응답 개수 |
.85 | resTotalCompleteCount | Integer | 클라이언트가 완료한 트랜잭션 개수 |
service.vhost.traffic.client.mpegdash¶
OID = 1.3.6.1.4.1.40001.2.4.3.[vhostIndex].11.11.12
MPEG-DASH 클라이언트 트래픽 통계를 실시간(.0), 1분 평균(.1), 5분 평균(.5)으로 제공한다.
OID | Name | Type | Description |
---|---|---|---|
.1 | inbound | Integer | 클라이언트로부터 받는 평균 트래픽(Bytes) |
.2 | outbound | Integer | 클라이언트로 보내는 평균 트래픽(Bytes) |
.3 | allSessionAverage | Integer | 클라이언트 평균 세션수 |
.4 | activeSessionAverage | Integer | 클라이언트 중 전송 중인 평균 세션수 |
.5 | requestHitRatio | Integer | Request Hit Ratio(100%) |
.6 | Request Hit Ratio(10000%) | ||
.7 | requestHitAverage | OID | 평균 캐시 HIT결과 |
.7.1 | requestHitAverage.TCP_HIT | Integer | TCP_HIT |
.7.2 | requestHitAverage.TCP_IMS_HIT | Integer | TCP_IMS_HIT |
.7.3 | requestHitAverage.TCP_REFRESH_HIT | Integer | TCP_REFRESH_HIT |
.7.4 | requestHitAverage.TCP_REF_FAIL_HIT | Integer | TCP_REF_FAIL_HIT |
.7.5 | requestHitAverage.TCP_NEGATIVE_HIT | Integer | TCP_NEGATIVE_HIT |
.7.6 | requestHitAverage.TCP_MISS | Integer | TCP_MISS |
.7.7 | requestHitAverage.TCP_REFRESH_MISS | Integer | TCP_REFRESH_MISS |
.7.8 | requestHitAverage.TCP_CLIENT_REFRESH_MISS | Integer | TCP_CLIENT_REFRESH_MISS |
.7.9 | requestHitAverage.TCP_DENIED | Integer | TCP_DENIED |
.7.10 | requestHitAverage.TCP_ERROR | Integer | TCP_ERROR |
.7.11 | requestHitAverage.TCP_REDIRECT_HIT | Integer | TCP_REDIRECT_HIT |
.8 | requestHitCount | OID | 캐시 HIT결과 개수 |
.8.1 | requestHitCount.TCP_HIT | Integer | TCP_HIT |
.8.2 | requestHitCount.TCP_IMS_HIT | Integer | TCP_IMS_HIT |
.8.3 | requestHitCount.TCP_REFRESH_HIT | Integer | TCP_REFRESH_HIT |
.8.4 | requestHitCount.TCP_REF_FAIL_HIT | Integer | TCP_REF_FAIL_HIT |
.8.5 | requestHitCount.TCP_NEGATIVE_HIT | Integer | TCP_NEGATIVE_HIT |
.8.6 | requestHitCount.TCP_MISS | Integer | TCP_MISS |
.8.7 | requestHitCount.TCP_REFRESH_MISS | Integer | TCP_REFRESH_MISS |
.8.8 | requestHitCount.TCP_CLIENT_REFRESH_MISS | Integer | TCP_CLIENT_REFRESH_MISS |
.8.9 | requestHitCount.TCP_DENIED | Integer | TCP_DENIED |
.8.10 | requestHitCount.TCP_ERROR | Integer | TCP_ERROR |
.8.11 | requestHitCount.TCP_REDIRECT_HIT | Integer | TCP_REDIRECT_HIT |
.10 | reqHeaderSize | Integer | 클라이언트로부터 받는 평균 Header 트래픽(Bytes) |
.11 | reqBodySize | Integer | 클라이언트로부터 받는 평균 Body 트래픽(Bytes) |
.12 | resHeaderSize | Integer | 클라이언트로 보내는 평균 Header트래픽(Bytes) |
.13 | resBodySize | Integer | 클라이언트로 보내는 평균 Body트래픽(Bytes) |
.14 | reqAverage | Integer | 클라이언트로부터 받은 평균요청 개수 |
.15 | reqCount | Integer | 클라이언트로부터 받은 누적요청 개수 |
.20 | res2xxAverage | Integer | 클라이언트로 보낸 평균 2xx응답 개수 |
.21 | res2xxCompleteAverage | Integer | 클라이언트가 완료한 평균 2xx트랜잭션 개수 |
.22 | res2xxTimeRes | Integer | 클라이언트 2xx응답 평균 소요시간(0.01ms) |
.23 | res2xxTimeComplete | Integer | 클라이언트 2xx응답 트랜잭션 평균 완료시간(0.01ms) |
.24 | res2xxCount | Integer | 클라이언트로 보낸 2xx응답 개수 |
.25 | res2xxCompleteCount | Integer | 클라이언트가 완료한 2xx트랜잭션 개수 |
.30 | res3xxAverage | Integer | 클라이언트로 보낸 평균 3xx응답 개수 |
.31 | res3xxCompleteAverage | Integer | 클라이언트가 완료한 평균 3xx트랜잭션 개수 |
.32 | res3xxTimeRes | Integer | 클라이언트 3xx응답 평균 소요시간(0.01ms) |
.33 | res3xxTimeComplete | Integer | 클라이언트 3xx응답 트랜잭션 평균 완료시간(0.01ms) |
.34 | res3xxCount | Integer | 클라이언트로 보낸 3xx응답 개수 |
.35 | res3xxCompleteCount | Integer | 클라이언트가 완료한 3xx트랜잭션 개수 |
.40 | res4xxAverage | Integer | 클라이언트로 보낸 평균 4xx응답 개수 |
.41 | res4xxCompleteAverage | Integer | 클라이언트가 완료한 평균 4xx트랜잭션 개수 |
.42 | res4xxTimeRes | Integer | 클라이언트 4xx응답 평균 소요시간(0.01ms) |
.43 | res4xxTimeComplete | Integer | 클라이언트 4xx응답 트랜잭션 평균 완료시간(0.01ms) |
.44 | res4xxCount | Integer | 클라이언트로 보낸 4xx응답 개수 |
.45 | res4xxCompleteCount | Integer | 클라이언트가 완료한 4xx트랜잭션 개수 |
.50 | res5xxAverage | Integer | 클라이언트로 보낸 평균 5xx응답 개수 |
.51 | res5xxCompleteAverage | Integer | 클라이언트가 완료한 평균 5xx트랜잭션 개수 |
.52 | res5xxTimeRes | Integer | 클라이언트 5xx응답 평균 소요시간(0.01ms) |
.53 | res5xxTimeComplete | Integer | 클라이언트 5xx응답 트랜잭션 평균 완료시간(0.01ms) |
.54 | res5xxCount | Integer | 클라이언트로 보낸 5xx응답 개수 |
.55 | res5xxCompleteCount | Integer | 클라이언트가 완료한 5xx트랜잭션 개수 |
.80 | resTotalAverage | Integer | 클라이언트로 보낸 평균 전체응답 개수 |
.81 | resTotalCompleteAverage | Integer | 클라이언트가 완료한 평균 트랜잭션 개수 |
.82 | resTotalTimeRes | Integer | 클라이언트 응답 평균 소요시간(0.01ms) |
.83 | resTotalTimeComplete | Integer | 클라이언트 트랜잭션 평균 완료시간(0.01ms) |
.84 | resTotalCount | Integer | 클라이언트로 보낸 전체응답 개수 |
.85 | resTotalCompleteCount | Integer | 클라이언트가 완료한 트랜잭션 개수 |
service.vhost.traffic.client.rtmp¶
OID = 1.3.6.1.4.1.40001.2.4.3.[vhostIndex].11.11.20
RTMP 클라이언트 트래픽 통계를 실시간(.0), 1분 평균(.1), 5분 평균(.5)으로 제공한다.
OID | Name | Type | Description |
---|---|---|---|
.1 | inbound | Integer | 클라이언트로부터 받는 평균 트래픽(Bytes) |
.2 | outbound | Integer | 클라이언트로 보내는 평균 트래픽(Bytes) |
.3 | allSessionAverage | Integer | 클라이언트 평균 세션수 |
.4 | activeSessionAverage | Integer | 클라이언트 중 전송 중인 평균 세션수 |
.5 | requestHitRatio | Integer | Request Hit Ratio(100%) |
.6 | Request Hit Ratio(10000%) | ||
.7 | requestHitAverage | OID | 평균 캐시 HIT결과 |
.7.1 | requestHitAverage.TCP_HIT | Integer | TCP_HIT |
.7.2 | requestHitAverage.TCP_IMS_HIT | Integer | TCP_IMS_HIT |
.7.3 | requestHitAverage.TCP_REFRESH_HIT | Integer | TCP_REFRESH_HIT |
.7.4 | requestHitAverage.TCP_REF_FAIL_HIT | Integer | TCP_REF_FAIL_HIT |
.7.5 | requestHitAverage.TCP_NEGATIVE_HIT | Integer | TCP_NEGATIVE_HIT |
.7.6 | requestHitAverage.TCP_MISS | Integer | TCP_MISS |
.7.7 | requestHitAverage.TCP_REFRESH_MISS | Integer | TCP_REFRESH_MISS |
.7.8 | requestHitAverage.TCP_CLIENT_REFRESH_MISS | Integer | TCP_CLIENT_REFRESH_MISS |
.7.9 | requestHitAverage.TCP_DENIED | Integer | TCP_DENIED |
.7.10 | requestHitAverage.TCP_ERROR | Integer | TCP_ERROR |
.7.11 | requestHitAverage.TCP_REDIRECT_HIT | Integer | TCP_REDIRECT_HIT |
.8 | requestHitCount | OID | 캐시 HIT결과 개수 |
.8.1 | requestHitCount.TCP_HIT | Integer | TCP_HIT |
.8.2 | requestHitCount.TCP_IMS_HIT | Integer | TCP_IMS_HIT |
.8.3 | requestHitCount.TCP_REFRESH_HIT | Integer | TCP_REFRESH_HIT |
.8.4 | requestHitCount.TCP_REF_FAIL_HIT | Integer | TCP_REF_FAIL_HIT |
.8.5 | requestHitCount.TCP_NEGATIVE_HIT | Integer | TCP_NEGATIVE_HIT |
.8.6 | requestHitCount.TCP_MISS | Integer | TCP_MISS |
.8.7 | requestHitCount.TCP_REFRESH_MISS | Integer | TCP_REFRESH_MISS |
.8.8 | requestHitCount.TCP_CLIENT_REFRESH_MISS | Integer | TCP_CLIENT_REFRESH_MISS |
.8.9 | requestHitCount.TCP_DENIED | Integer | TCP_DENIED |
.8.10 | requestHitCount.TCP_ERROR | Integer | TCP_ERROR |
.8.11 | requestHitCount.TCP_REDIRECT_HIT | Integer | TCP_REDIRECT_HIT |
.10 | reqHeaderSize | Integer | 클라이언트로부터 받는 평균 Header 트래픽(Bytes) |
.11 | reqBodySize | Integer | 클라이언트로부터 받는 평균 Body 트래픽(Bytes) |
.12 | resHeaderSize | Integer | 클라이언트로 보내는 평균 Header트래픽(Bytes) |
.13 | resBodySize | Integer | 클라이언트로 보내는 평균 Body트래픽(Bytes) |
.14 | reqAverage | Integer | 클라이언트로부터 받은 평균요청 개수 |
.15 | reqCount | Integer | 클라이언트로부터 받은 누적요청 개수 |
.20 | NetConnection.Connect | Integer | NetConnection.Connect 응답통계 |
.20.1 | NetConnection.Connect.SuccessAverage | Integer | 성공응답 평균개수 (평균) |
.20.2 | NetConnection.Connect.SuccessCount | Integer | 성공응답 평균개수 |
.20.3 | NetConnection.Connect.FailAverage | Integer | 실패응답 평균개수 (평균) |
.20.4 | NetConnection.Connect.FailCount | Integer | 실패응답 평균개수 |
.20.5 | NetConnection.Connect.TimeRes | Integer | 응답 평균 소요시간(0.01ms) |
.21 | NetConnection.CreateStream | Integer | NetConnection.CreateStream 응답통계 |
.21.1 | NetConnection.CreateStream.SuccessAverage | Integer | 성공응답 평균개수 (평균) |
.21.2 | NetConnection.CreateStream.SuccessCount | Integer | 성공응답 평균개수 |
.21.3 | NetConnection.CreateStream.FailAverage | Integer | 실패응답 평균개수 (평균) |
.21.4 | NetConnection.CreateStream.FailCount | Integer | 실패응답 평균개수 |
.21.5 | NetConnection.CreateStream.TimeRes | Integer | 응답 평균 소요시간(0.01ms) |
.30 | NetStream.Play | Integer | NetStream.Play 응답통계 |
.30.1 | NetStream.Play.SuccessAverage | Integer | 성공응답 평균개수 (평균) |
.30.2 | NetStream.Play.SuccessCount | Integer | 성공응답 평균개수 |
.30.3 | NetStream.Play.FailAverage | Integer | 실패응답 평균개수 (평균) |
.30.4 | NetStream.Play.FailCount | Integer | 실패응답 평균개수 |
.30.5 | NetStream.Play.TimeRes | Integer | 응답 평균 소요시간(0.01ms) |
.31 | NetStream.Close | Integer | NetStream.Close 응답통계 |
.31.1 | NetStream.Close.SuccessAverage | Integer | 성공응답 평균개수 (평균) |
.31.2 | NetStream.Close.SuccessCount | Integer | 성공응답 평균개수 |
.31.3 | NetStream.Close.FailAverage | Integer | 실패응답 평균개수 (평균) |
.31.4 | NetStream.Close.FailCount | Integer | 실패응답 평균개수 |
.31.5 | NetStream.Close.TimeRes | Integer | 응답 평균 소요시간(0.01ms) |
.32 | NetStream.Delete | Integer | NetStream.Delete 응답통계 |
.32.1 | NetStream.Delete.SuccessAverage | Integer | 성공응답 평균개수 (평균) |
.32.2 | NetStream.Delete.SuccessCount | Integer | 성공응답 평균개수 |
.32.3 | NetStream.Delete.FailAverage | Integer | 실패응답 평균개수 (평균) |
.32.4 | NetStream.Delete.FailCount | Integer | 실패응답 평균개수 |
.32.5 | NetStream.Delete.TimeRes | Integer | 응답 평균 소요시간(0.01ms) |
.33 | NetStream.Seek | Integer | NetStream.Seek 응답통계 |
.33.1 | NetStream.Seek.SuccessAverage | Integer | 성공응답 평균개수 (평균) |
.33.2 | NetStream.Seek.SuccessCount | Integer | 성공응답 평균개수 |
.33.3 | NetStream.Seek.FailAverage | Integer | 실패응답 평균개수 (평균) |
.33.4 | NetStream.Seek.FailCount | Integer | 실패응답 평균개수 |
.33.5 | NetStream.Seek.TimeRes | Integer | 응답 평균 소요시간(0.01ms) |
.34 | NetStream.Pause | Integer | NetStream.Pause 응답통계 |
.34.1 | NetStream.Pause.SuccessAverage | Integer | 성공응답 개수 (평균) |
.34.2 | NetStream.Pause.SuccessCount | Integer | 성공응답 개수 |
.34.3 | NetStream.Pause.FailAverage | Integer | 실패응답 개수 (평균) |
.34.4 | NetStream.Pause.FailCount | Integer | 실패응답 개수 |
.34.5 | NetStream.Pause.TimeRes | Integer | 응답 평균 소요시간(0.01ms) |