摘要:張波目前主要負(fù)責(zé)虎牙直播運(yùn)維體系的建設(shè),針對(duì)和后臺(tái)類程序的發(fā)布監(jiān)控運(yùn)維自動(dòng)化相關(guān)的運(yùn)維系統(tǒng)進(jìn)行設(shè)計(jì)和開(kāi)發(fā)。
6 月 10 日,又拍云 Open Talk | 2018 音視頻技術(shù)沙龍·深圳站 順利落幕,來(lái)自虎牙的直播運(yùn)維研發(fā)架構(gòu)師張波在沙龍上做了《基于CDN推流日志的主播上行實(shí)時(shí)監(jiān)控及其自動(dòng)化解密》的分享。虎牙直播是中國(guó)領(lǐng)先的互動(dòng)直播平臺(tái),作為“游戲直播第一股”,是音視頻技術(shù)的典型應(yīng)用企業(yè)。張波目前主要負(fù)責(zé)虎牙直播運(yùn)維體系的建設(shè),針對(duì) Web 和后臺(tái)類程序的發(fā)布、監(jiān)控、運(yùn)維自動(dòng)化相關(guān)的運(yùn)維系統(tǒng)進(jìn)行設(shè)計(jì)和開(kāi)發(fā)。本次分享中,張波結(jié)合在一線工作中的實(shí)踐,介紹虎牙直播針對(duì)主播推流在 CDN 環(huán)境下的優(yōu)化技巧,以及實(shí)踐過(guò)程中碰到的各種坑。
以下是分享內(nèi)容:
虎牙直播作為游戲直播平臺(tái),擁有數(shù)百個(gè)產(chǎn)品線,同時(shí)在線主播數(shù)高達(dá)數(shù)萬(wàn),因此虎牙接入了多家 CDN 廠商。
體量這么大的主播上行量通過(guò) CDN 端推流日志如何做到自動(dòng)監(jiān)控,異常及時(shí)發(fā)現(xiàn),業(yè)務(wù)如何通過(guò)系統(tǒng)準(zhǔn)確定位?
用戶側(cè)、網(wǎng)絡(luò)側(cè)、CDN 運(yùn)營(yíng)商側(cè)等引起的故障,如何做到故障分鐘定位?
先與用戶發(fā)現(xiàn)定位系統(tǒng)問(wèn)題瓶頸,如何用數(shù)據(jù)指引 CDN 提升服務(wù)質(zhì)量呢?
這次分享,我們就來(lái)聊聊如何解決這些問(wèn)題。
首先是主播監(jiān)控手段,最直接、最低延時(shí)的監(jiān)控手段是觀察用戶彈幕喊卡。
當(dāng)彈幕開(kāi)始喊卡時(shí),開(kāi)發(fā)會(huì)上系統(tǒng)查看端上上報(bào)的監(jiān)控?cái)?shù)據(jù)來(lái)定位問(wèn)題。但是僅僅依靠服務(wù)端數(shù)據(jù),是很難確定問(wèn)題是發(fā)生在哪里的,線路、客戶端、CDN、IDC 都有可能出現(xiàn)問(wèn)題。
直播出現(xiàn)問(wèn)題的原因有很多,我們要如何準(zhǔn)確定位業(yè)務(wù)問(wèn)題呢?
一般情況下,當(dāng)虎牙主播直播出現(xiàn)問(wèn)題后,開(kāi)發(fā)會(huì)讓運(yùn)維提供 CDN 服務(wù)器端數(shù)據(jù),來(lái)定位問(wèn)題,再由運(yùn)維聯(lián)系 CDN 運(yùn)營(yíng)商排查問(wèn)題,最后由 CDN 廠商解決問(wèn)題。
除此之外,虎牙還有其他的監(jiān)控方案:
第三方撥測(cè)監(jiān)控;
端上報(bào)數(shù)據(jù)監(jiān)控(主播端上報(bào),用戶端上報(bào));
彈幕喊卡監(jiān)控
服務(wù)端數(shù)據(jù)監(jiān)控;
機(jī)房網(wǎng)絡(luò)監(jiān)控。
CDN 側(cè)健康管理面向用戶體驗(yàn)端到端的健康管理,范圍比較大。本次分享主要講一下 CDN 側(cè)的健康管理,比如判斷 CDN 是否存在問(wèn)題?
上圖系統(tǒng)的核心功能主要有:
建立應(yīng)用服務(wù)監(jiān)控視圖;
關(guān)注應(yīng)用性能;
多段、多層數(shù)據(jù)關(guān)聯(lián)分析;
了解用戶感知;
了解應(yīng)用最終交付狀態(tài);
了解應(yīng)用對(duì)業(yè)務(wù)的影響;
端到端覆蓋應(yīng)用路徑;
追蹤應(yīng)用服務(wù)質(zhì)量;
快速診斷和定位故障。
圖中也顯示了各個(gè)線路的質(zhì)量情況,虎牙每 20 秒檢測(cè)一個(gè)節(jié)點(diǎn)情況,而 CDN 的線路圖,監(jiān)控時(shí)效性是一分鐘延遲,因此全網(wǎng) CDN 上行質(zhì)量出現(xiàn)問(wèn)題的話,會(huì)在一分鐘內(nèi)發(fā)出告警。同時(shí)全網(wǎng)的出現(xiàn)卡頓的主播在卡頓監(jiān)控中可以試試看到,并實(shí)現(xiàn)定位上行卡頓原因,迅速排出是否是廠商線路問(wèn)題或運(yùn)營(yíng)商線路問(wèn)題。
CDN 端到端的應(yīng)用性能管理上圖是監(jiān)測(cè)系統(tǒng)的核心功能——端到端的應(yīng)用性能管理,圖中描述了主播上行鏈路,上行方式分為 CDN 上行和虎牙上行,CDN 上行是指通過(guò) CDN 上行服務(wù)進(jìn)行上行傳輸。
當(dāng) CDN 端接收到上行視頻后,會(huì)進(jìn)行轉(zhuǎn)碼和轉(zhuǎn)推,轉(zhuǎn)推就是指將虎牙主播的上行流視頻轉(zhuǎn)推給其他廠商,讓用戶在各個(gè)廠商和線路上觀看到直播。
所以直播上行可能會(huì)出現(xiàn)的故障,要么是主播端設(shè)備問(wèn)題,要么是主播端到上行節(jié)點(diǎn)網(wǎng)絡(luò)問(wèn)題,或者是 CDN 上行服務(wù)器節(jié)點(diǎn)自身問(wèn)題,再或者是上行視頻轉(zhuǎn)推給其他 CDN 廠商轉(zhuǎn)推問(wèn)題。
性能數(shù)據(jù)要覆蓋哪些項(xiàng)目上面這個(gè)表格是虎牙實(shí)時(shí)監(jiān)控平臺(tái)的部分核心功能以及性能指標(biāo)的覆蓋項(xiàng)。
主播端主要根據(jù)這些參數(shù)進(jìn)行監(jiān)控,比如 Block 阻塞次數(shù)、CPU、解碼 CPU、模板 CPU、內(nèi)存以及斷開(kāi)原因等監(jiān)控指標(biāo)。
IDC 層與 CDN 層監(jiān)控指標(biāo)相對(duì)較少,只有卡頓率和性能指數(shù),這次分享也主要講解性能指數(shù)。
在用戶端虎牙設(shè)置了感官卡比監(jiān)控指標(biāo),感官卡比就是用戶真實(shí)感受卡頓的比例,除了感官卡比之外,還有解碼方式、主動(dòng)丟幀等監(jiān)控項(xiàng)。
實(shí)時(shí)監(jiān)控需要注意的技術(shù)點(diǎn)在實(shí)時(shí)監(jiān)控這方面,我們使用的相關(guān)技術(shù)點(diǎn),主要有:
流計(jì)算:sprak
實(shí)時(shí)日志存儲(chǔ):內(nèi)部日志索引服務(wù)
數(shù)據(jù)存儲(chǔ):Hbase、Opentsdb
主播上行部分?jǐn)?shù)據(jù)處理量并不大,即使是虎牙這個(gè)體量的直播平臺(tái),原始日志一秒一條日志5秒合并輸出一條。
aac:0 bigint 接收或者發(fā)送aac的次數(shù) abytes:4017#5733#7186#5642#4179 string 接收或者發(fā)送的音頻字節(jié)數(shù) adrop:0#0#0#0#0 string 音頻發(fā)送丟幀數(shù) afcnt:30#43#53#42#31 string 音頻幀數(shù) afts:468664897#468665895#468667126#468668101#468668821 string 音頻時(shí)間戳 agap:0#0#0#0#0 string 音頻幀最大接收間隔(ms) app:hunantv string rtmp協(xié)議中的app appbuf:0#0#0#0#0 string 應(yīng)用層發(fā)送隊(duì)列長(zhǎng)蘇 avc:0 bigint 接收或者發(fā)送的avc的次數(shù) block:0 bigint 卡頓次數(shù) bwin:0.0000 double 入帶寬 bwout:76382.0000 double 出帶寬 gop:180871 bigint 關(guān)鍵幀序號(hào) mss:1460#1460#1460#1460#1460 string mss大小 netqlen:96617#70188#57206#74576#106873 string tcp發(fā)送大小 retrans:0#0#0#0#0 string 重傳包數(shù) rtt:1#1#1#1#1 string tcp層的rtt (ms) rwd:0 string tcp的接收窗口大小.目前為空 sndbuf:0 string tcp的發(fā)送大小 tcpbuf:715#2841#1808#19705#724 string tcp的buffer大小 字節(jié)數(shù) vbytes:64523#51103#64525#103969#68513 string 接收發(fā)送的音頻字節(jié)數(shù) vdrop:0#0#0#0#0 string 視頻丟幀數(shù) vfcnt:17#25#31#25#17 string 視頻幀率 vfts:468664864#468665864#468667104#468668104#468668784 string 視頻時(shí)間戳 vgap:0#0#0#0#0 string 視頻幀之間最大間隔 (ms) vhost:xx.mgtv.com string 域名 vname:xx.mgtv.com_HNGGMPP360 string 流名
上面這個(gè)表格是 CDN 上行日志,可以看到其中的描述項(xiàng)非常多,能夠直接反應(yīng)主播上行質(zhì)量的指標(biāo)并不多。
我們要如何從日志中挑選出需要的數(shù)據(jù)進(jìn)行監(jiān)控呢?
its 采集時(shí)間戳(毫秒) uip 主播IP,點(diǎn)分十進(jìn)制 inip 節(jié)點(diǎn)IP,點(diǎn)分十進(jìn)制 inarea 節(jié)點(diǎn)省份 inisp 節(jié)點(diǎn)ISP信息 streamhost 流域名,如:tx.direct.huya.com streamname 流名稱 vfps 視頻幀率 (5秒一條數(shù)據(jù),1秒一個(gè)值,每個(gè)值用#分隔) vts 視頻時(shí)間戳(毫秒) (5秒一條數(shù)據(jù),1秒一個(gè)值,每個(gè)值用#分隔) afps 音頻幀率 ats 音頻時(shí)間戳(毫秒) [{"afps":30,"ats":9689432,"inarea":"河北","inip":"124.239.xxx.xx","inisp":"電信","its":1521530182,"streamhost":"ws.xxx.huya.com","streamname":"/huya/xxx-xx-xx-xxx-xx-A-xxx-1","uip":"123.182.xx.xxx","vfps":30,"vts":9689399}]
△ 虎牙統(tǒng)一上行標(biāo)準(zhǔn)日志
上面表格是日志監(jiān)控解決方案,虎牙定義了用于監(jiān)控的標(biāo)準(zhǔn)日志。統(tǒng)一標(biāo)準(zhǔn)后的日志對(duì)比之前的日志減少很多內(nèi)容。
重點(diǎn)提取了采集時(shí)間戳、主播 IP、節(jié)點(diǎn) IP、節(jié)點(diǎn)省份、推流域名、視頻幀率、視頻時(shí)間戳、音頻時(shí)間戳、音頻幀率等監(jiān)控項(xiàng)數(shù)據(jù),有利于對(duì)數(shù)據(jù)進(jìn)行分析。
如何設(shè)計(jì)統(tǒng)一上行質(zhì)量度量方式在度量上行質(zhì)量方面,虎牙使用的是一個(gè)國(guó)際通用標(biāo)準(zhǔn),Apdex 是用戶對(duì)應(yīng)用性能滿意度的量化值。它提供了一個(gè)統(tǒng)一的測(cè)量和報(bào)告用戶體驗(yàn)的方法,把最終用戶的體驗(yàn)和應(yīng)用性能作為一個(gè)完整的指標(biāo)進(jìn)行統(tǒng)一度量。
Apdex 會(huì)定義應(yīng)用響應(yīng)時(shí)間的最優(yōu)門檻為 T,另外根據(jù)應(yīng)用響應(yīng)時(shí)間結(jié)合 T 定義了三種不同的性能表現(xiàn):
Satisfied(優(yōu)質(zhì)):應(yīng)用響應(yīng)時(shí)間低于或等于 T(T 由性能評(píng)估人員根據(jù)預(yù)期性能要求確定),比如 T 為 1.5s,則一個(gè)耗時(shí) 1s 的響應(yīng)結(jié)果則可以認(rèn)為是 satisfied 的;
Tolerating(可容忍):應(yīng)用響應(yīng)時(shí)間大于 T,但同時(shí)小于或等于 4T。假設(shè)應(yīng)用設(shè)定的 T 值為 1s,則 4 * 1 = 4 秒極為應(yīng)用響應(yīng)時(shí)間的容忍上限;
Frustrated(劣質(zhì)):應(yīng)用響應(yīng)時(shí)間大于 4T。
這個(gè)方案描述了服務(wù)質(zhì)量如何度量,它將服務(wù)質(zhì)量分為三部分:優(yōu)質(zhì)樣本
可容忍樣本、劣質(zhì)樣本。
這樣操作就把復(fù)雜的操作變簡(jiǎn)單,三級(jí)度量,每一級(jí)度量都會(huì)有對(duì)應(yīng)的分值,優(yōu)質(zhì)樣本1分,可容忍樣本0.5分,劣質(zhì)樣本0分,復(fù)雜問(wèn)題通過(guò)計(jì)算公式簡(jiǎn)單化。
再者,上行質(zhì)量要怎么去度量呢?
我們可以這樣來(lái)看,在幀率沒(méi)有出現(xiàn)明顯抖動(dòng)時(shí),用戶感覺(jué)不到卡頓,我們就沒(méi)有必要把這個(gè)上行定義為問(wèn)題。
樣本:當(dāng)前平均幀率與前兩秒抖動(dòng)最大差值
優(yōu)質(zhì)樣品: 0% <= 評(píng)分 < 5%
可容忍樣品: 5% <= 評(píng)分 < 10%
劣質(zhì)樣品: 10% <= 評(píng)分
虎牙通過(guò)測(cè)量當(dāng)前平均幀率與前兩秒抖動(dòng)最大差值,來(lái)度量?jī)?yōu)質(zhì)樣本。
優(yōu)質(zhì)樣本要求評(píng)分在 0% 到 5%,可容忍樣品在 5% 到 10%,劣質(zhì)樣本小于等于10%。
一般來(lái)說(shuō),如果主播視頻的平均上行幀率是 30 幀,5%是指抖動(dòng) 1 秒產(chǎn)生的抖動(dòng)幀是 1.5 幀。
1.5 抖動(dòng)幀,大部分人感覺(jué)不到畫(huà)面抖動(dòng),但是達(dá)到 3 幀時(shí),用戶就能感受到畫(huà)面的抖動(dòng)。
通過(guò)實(shí)時(shí)/離線計(jì)算結(jié)合,提升數(shù)據(jù)準(zhǔn)確性虎牙的計(jì)算方式是實(shí)時(shí)和離線結(jié)合的,實(shí)時(shí)計(jì)算由于數(shù)據(jù)延遲,或者實(shí)時(shí)計(jì)算問(wèn)題,導(dǎo)致數(shù)據(jù)不太精準(zhǔn)。
如果要實(shí)時(shí)計(jì)算的數(shù)據(jù)作為調(diào)度或者廠商質(zhì)量評(píng)判標(biāo)準(zhǔn)的話,就需要輔以離線計(jì)算,讓數(shù)據(jù)更準(zhǔn)確,才能指導(dǎo)廠商優(yōu)化節(jié)點(diǎn)以及調(diào)度服務(wù)優(yōu)化線路。
主播上行質(zhì)量實(shí)時(shí)監(jiān)控系統(tǒng)應(yīng)用的典型場(chǎng)景主播上行實(shí)時(shí)監(jiān)控的應(yīng)用場(chǎng)景有四個(gè)方面:
1. CDN 入圍測(cè)試:制定入圍標(biāo)準(zhǔn),上行接入質(zhì)量達(dá)到,縮短測(cè)試周期
2. CDN 運(yùn)行監(jiān)控:實(shí)時(shí)獲取CDN端運(yùn)行數(shù)據(jù),對(duì)可能的主播運(yùn)行風(fēng)險(xiǎn)進(jìn)行及時(shí)預(yù)警,實(shí)現(xiàn)主播級(jí)的故障自愈和問(wèn)題定位
3. 節(jié)點(diǎn)質(zhì)量管理:實(shí)時(shí)評(píng)價(jià)CDN上行節(jié)點(diǎn)健康度,主動(dòng)發(fā)現(xiàn)影響客戶體驗(yàn)因素,屏蔽質(zhì)量較差的節(jié)點(diǎn)和線路
4.主播上行,運(yùn)營(yíng)分析:利用全方位的主播上行性能數(shù)據(jù),出具主播質(zhì)量和線路質(zhì)量性能報(bào)告,從業(yè)務(wù)角度為主播上行質(zhì)量運(yùn)營(yíng)提供分析數(shù)據(jù)。
查看講師分享 PPT 和分享視頻,請(qǐng)進(jìn)入下方傳送門:
基于CDN推流日志的主播上行實(shí)時(shí)監(jiān)控及其自動(dòng)化解密
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/33807.html
摘要:張波目前主要負(fù)責(zé)虎牙直播運(yùn)維體系的建設(shè),針對(duì)和后臺(tái)類程序的發(fā)布監(jiān)控運(yùn)維自動(dòng)化相關(guān)的運(yùn)維系統(tǒng)進(jìn)行設(shè)計(jì)和開(kāi)發(fā)。 6 月 10 日,又拍云 Open Talk | 2018 音視頻技術(shù)沙龍·深圳站 順利落幕,來(lái)自虎牙的直播運(yùn)維研發(fā)架構(gòu)師張波在沙龍上做了《基于CDN推流日志的主播上行實(shí)時(shí)監(jiān)控及其自動(dòng)化解密》的分享。虎牙直播是中國(guó)領(lǐng)先的互動(dòng)直播平臺(tái),作為游戲直播第一股,是音視頻技術(shù)的典型應(yīng)用企業(yè)...
摘要:虎牙直播運(yùn)維負(fù)責(zé)人張觀石張觀石,擁有余年網(wǎng)站開(kāi)發(fā)架構(gòu)運(yùn)維經(jīng)驗(yàn)?zāi)壳瓣P(guān)注互聯(lián)網(wǎng)服務(wù)可靠性系統(tǒng)工程運(yùn)維平臺(tái)的規(guī)劃建設(shè)網(wǎng)站高可用架構(gòu)等方面在音視頻傳輸質(zhì)量評(píng)估微服務(wù)運(yùn)維方面積累了豐富的經(jīng)驗(yàn)。 showImg(https://segmentfault.com/img/bVbjqGq); 虎牙直播運(yùn)維負(fù)責(zé)人張觀石 張觀石,擁有10余年網(wǎng)站開(kāi)發(fā)、架構(gòu)、運(yùn)維經(jīng)驗(yàn);目前關(guān)注互聯(lián)網(wǎng)服務(wù)可靠性系統(tǒng)工程、運(yùn)維...
摘要:本文是根據(jù)虎牙直播運(yùn)維負(fù)責(zé)人張觀石月日在攜手魅族百度云主辦的第十三期魅族開(kāi)放日虎牙直播平臺(tái)實(shí)踐演講中的分享內(nèi)容整理而成。英雄聯(lián)盟是全球最大的電子競(jìng)技賽事,目前正在如火如荼進(jìn)行,從今天開(kāi)始進(jìn)入了總決賽的淘汰賽階段了。 showImg(https://segmentfault.com/img/bVblQM9?w=1080&h=720); 本文是根據(jù)虎牙直播運(yùn)維負(fù)責(zé)人張觀石10月20日在ms...
摘要:為了處理解決這個(gè)問(wèn)題,需要提高海外直播的接流覆蓋率,并針對(duì)鏈路進(jìn)行優(yōu)化,從而有效降低整體從推流到拉流的卡頓率。 今天主要分享我們海外直播鏈路優(yōu)化的問(wèn)題和解決問(wèn)題的一個(gè)思路,介紹的主要流程,大概就是拋出一個(gè)問(wèn)題,簡(jiǎn)單介紹我們解決的思路,在這個(gè)過(guò)程中碰到的一些問(wèn)題和我們具體進(jìn)行的一些思考,以及后續(xù)可以再進(jìn)行一些額外優(yōu)化的處理。 指標(biāo)定義 在介紹整體內(nèi)容之前,首先定義一下我們的性能指標(biāo),由于...
閱讀 729·2023-04-25 19:43
閱讀 3973·2021-11-30 14:52
閱讀 3799·2021-11-30 14:52
閱讀 3864·2021-11-29 11:00
閱讀 3794·2021-11-29 11:00
閱讀 3893·2021-11-29 11:00
閱讀 3570·2021-11-29 11:00
閱讀 6153·2021-11-29 11:00