RTS TraceID是全域唯一請求標識符,用於對請求進行定位和問題排查,對提高客戶的接入效率有至關重要的作用。本文詳細為您介紹擷取RTS TraceID的方式。
背景資訊
在播放出現問題需要做問題定位時,使用使用者IP地址、播放時間等資訊來做問題定位是低效的,因為需要從海量的日誌中撈取出現問題的日誌。當同一個使用者IP在同段時間內有多次播允許存取為時,營運難度將進一步增加。超低延時直播RTS為您提供TraceID方案,TraceID是每次播允許存取為的通用唯一識別碼,基於該標識阿里雲能夠快速定位到問題。阿里雲強烈建議將TraceID和您的用戶端日誌進行串連。
您可以通過以下方式擷取RTS TraceID:
Demo播放擷取RTS TraceID
移動端(Android/iOS)Demo播放
移動端Demo播放的具體操作請參考Demo體驗教程。如下圖所示,播放請求建聯成功後,在RTS移動端播放器頁面單擊問題定位,查看彈窗中的詳細資料,其中RequestId即為TraceID。

Web端(H5)Demo播放
移動端Demo播放的具體操作請參考Demo體驗教程。如下圖所示,播放請求建聯成功後,在RTS Web端播放器頁面單擊問題定位,查看彈窗中的TraceID資訊。

生產環境擷取RTS TraceID
生產環境是指已經將SDK整合到客戶的程式中,可以不再使用阿里雲的Demo。
移動端(Android/iOS)生產環境
通過阿里雲播放器SDK事件回調拿到traceId。
每一次低延時播放都會有一個traceId,可用於問題排查。
Android
//監聽播放器 onInfo 回調,並解析 DemuxerTraceID 訊息 mRtsAliPlayer.setOnInfoListener(infoBean -> { if (infoBean.getCode() == InfoCode.DemuxerTraceID) { String traceId = infoBean.getExtraMsg(); });iOS
//監聽播放器 onPlayerEvent 回調,並解析 DemuxerTraceID 訊息 - (void)onPlayerEvent:(AliPlayer*)player eventWithString:(AVPEventWithString)eventWithString description:(NSString *)description { switch (eventWithString) { case EVENT_PLAYER_DEMUXER_TRACE_ID: { NSString *traceId = description; } break; default: break; } }
Web端(H5)生產環境
從信令請求響應結果中擷取TraceID
H5的信令請求是一個HTTP POST請求,您可以從瀏覽器開發人員工具的網路類型擷取TraceID。如果拉流地址為
artc://player.alicdn.com/a/b_RTS,對應的信令請求就是http(s)://player.alicdn.com/a/b_RTS。進入RTS Web播放器。
在RTS Web播放器頁面輸入已開通超低延時直播的播流地址URL,例如
artc://player.alicdn.com/a/b_RTS。單擊開始拉流,播放RTS直播流。
按F12開啟瀏覽器開發人員工具,選擇Network頁簽。
搜尋信令請求
http(s)://player.alicdn.com/a/b_RTS,在請求響應中查看TraceID。
阿里雲Web播放器SDK
阿里雲Web播放器SDK可以通過訂閱
rtsTraceId事件,擷取到RTS TraceID。範例程式碼://當RTS拉流成功時觸發,回呼函數的參數中traceId為拉流的TraceId,source為當前RTS流的播放地址。 player.on('rtsTraceId', function(event) { console.log('EVENT rtsTraceId', event.paramData); })