监控做直播

核心提示作者 | 中国农业银行艾明浩、矫宏鹤责编 | Carol封图 | CSDN 下载自视觉中国当前市面直播平台百家争鸣,直播监控系统是判断一个直播平台是否完善的必要条件。文章简要介绍了笔者搭建的一套基于SRS的直播平台,并从设计思路、实现方法与

作者|艾,焦红河,中国农业银行

编辑|卡罗尔

印章| CSDN下载自视觉中国

目前市场上百家直播平台争鸣,直播监控系统是判断一个直播平台完善与否的必要条件。简要介绍了作者搭建的一套基于SRS的直播平台,并从设计思路、实现方法和实现过程等方面重点介绍了该直播平台的监控系统,对相关直播平台的监控系统建设具有一定的参考价值。

直播平台及其监控系统介绍

自2016年“井喷”发展以来,国内直播行业在各行各业遍地开花,尤其是在秀场、娱乐、游戏、教育、电商等领域。笔者与时俱进,准备研究企业级视频直播技术的应用。目前已经搭建了一套直播平台。在技术选择上,出于性能和文档完善性的考虑,我们选择开源直播框架SRS作为直播服务器。SRS是中国Winlin大神在Github上开源的流媒体服务器软件。它位于运营级互联网直播服务器集群,已经更新到V4版本,V3版本是它的稳定版本。

在SRS实现的基础RTMP协议的推拉流的基础上,我们开发了用户系统、直播间管理、防盗链功能、弹幕系统、好评系统、礼物系统等功能。,并开发了Android、iOS、PC、Web直播客户端,从而实现了一个大致完善的视频直播平台。

随着功能的增加,在开发、调试、测试的过程中,我们发现必须要有一套针对直播平台的监控管理平台,增加平台的健壮性、可用性和易用性。监控管理平台用于统一配置和管理SRS集群,统一监控服务器资源、网络流量、多媒体流、房间信息等。,以便于后台人员控制整个平台;同时拥有一系列预警机制,应对流量大、网络中断、服务器断电等突发事件。

监测数据的采集

对平台进行监控,需要考虑需要监控哪些指标,可以从平台获取哪些数据,如何从平台获取数据。

对于基于SRS开发的直播服务平台,我们采集获取监控数据的方式主要有三种:基于SRS提供的HTTP Api,从数据库和Redis,从程序中嵌入点输出。

1.基于SRS提供的HTTP Api获取监控数据。

SRS提供了一套HTTP Api供外部程序获取数据和管理服务器,支持跨域访问。以下是SRS官方提出的HTTP Api设计原则:

只提供json数据格式接口,所有请求和响应的数据都要求是json。没有提供html数据。比如运行SRS后,浏览器打开HTTP接口或者HTTP服务地址,看到的是json,而不是html。出现错误时,支持HTTP错误代码或json中的code错误代码。通过查阅SRS官方文档和源代码,SRS HTTP Api可以获取的数据如下:

要调用SRS提供的HTTP Api,需要在SRS服务器配置中添加http_api相关的配置。下图是参考配置:

首先将enable设置为on,也就是打开http api;Listen设置为1985,表示其监听端口。假设SRS服务器地址为127.0.0.1,则可以通过http://127.0.0.1:1985/api/v1访问其http接口;raw_api相关配置是指打开服务器配置,编写重载等接口。

配置并重新加载服务后,您可以访问SRS服务器的http api。以summaries api为例,在浏览器中输入http://[SRS IP]:1985/API/v1/Summaries,返回的结果如下:

可以看到,返回的结果是标准的json形式,需要json解析,筛选出需要显示的字段。

2.从服务器数据库和Redis获取监控数据。

除了SRS服务器资源相关数据,直播间信息、用户信息、直播统计、主播、观众等业务相关数据都存储在数据库和缓存中。监控系统采用SpringBoot框架开发。导入相关驱动后,映射后的数据对象可以直接访问数据源获取所需数据。

3.程序中的埋点输出监控所需的数据。

一些中间过程数据可以反映程序的加工状态或系统的趋势。这类数据既不能在SRS的HTTP接口中获取,也不能存储在数据库或缓存中。这类数据的获取需要埋在程序里输出。所谓嵌入点,就是在程序生成数据的地方添加一条监控语句,将数据以指定的方式输出,比如输出到内存、文件、监控缓存或者数据库。如果是有时间序列的数据,会添加时间戳,可以显示为历史曲线,预测系统的趋势。

监控指示器和数据显示

有了数据的访问,我们需要考虑显示哪些监控指标,以及如何显示。

1.监控指标

监控指标大致可以分为三类:集群性能数据、多媒体流数据和业务统计数据。通过集群性能数据,用户可以直观地了解当前的CPU利用率、内存大小、网络流量、负载等。直播集群,实现系统级的指标监控。通过多媒体流数据,用户可以获得集群中每台机器的推拉流信息,以及当前直播的各个推拉端的具体信息,从而实现媒体层面的指标监控。通过业务统计,用户可以了解当前直播房间数、房间观众数等业务数据,实现业务层面的指标监控。

2.监控数据显示

通过调用接口、查询数据库、埋点等方式获得的监测数据。,由服务器分析并显示给前端监控平台。以多媒体流数据为例,用户通过管理端页面选择浏览当前推送的流数据信息,前端页面将请求发送给后台,后台调用流信息查询接口向SRS请求流信息数据。SRS收到数据请求后,以json格式返回相应服务器上的流媒体信息,监控平台解析json格式消息,以约定格式提供给前端显示。效果如下:

定时模块还可以将按指定时间间隔收集的数据记录在数据库中。当前端发起历史数据查看时,监控平台根据请求从数据库中获取指定时间段的监控数据,处理后返回给前端。前端使用echart等插件完成从数据到图形的映射,生成折线图形式的图表,大大提高了可视化应用的性能。

平台参数配置

参数功能提供服务配置重载、服务器全局、Vhost配置等功能。配置重载简化了系统重载配置的过程,配合服务器参数配置功能,实现参数实时修改,实时生效。

配置功能通过管理端将参数值从前端传送到服务器端,并通过调用系统更新数据接口来改变所选择的系统参数。该功能主要基于SRS提供的HTTP RAW API。首先打开raw_api的相关设置,允许通过api修改配置。以超载的配置为例。直播监控平台前端选择需要过载的机器ip,并向后台发送请求。收到请求后,后台调用reload接口,SRS接收请求并修改配置。如果修改成功,则返回成功。直播平台对SRS的返回进行处理并发送到前端,前端判断返回代码,更新执行结果信息。效果如下:

参数配置功能和数据显示功能相辅相成。用户可以通过数据显示了解当前系统运行情况,并以此为基础,通过参数配置功能调整系统运行参数,然后观察调整后相应指标的数据显示,实现动态调整和配置,保证直播系统的平稳运行。

摘要

介绍了一种基于SRS的直播平台监控系统的建设思路和实现方法,重点阐述了监控数据采集方法、监控指标要求、数据显示方法和流程、平台参数配置流程等。,为如火如荼的直播平台提供了监控领域的参考。

艾郝明,互联网金融RD工程师,就职于中国农业银行RD中心,从事即时通讯、音视频等领域的研发工作。焦红河,互联网金融RD工程师,就职于中国农业银行RD中心,从事即时通讯、音视频等领域的研发工作。

全网唯一秃头数据集:20万张肖像,包括各种秃头优步。前无人驾驶工程师告诉你国内无人驾驶还要多久?如何利用NLP辅助投资分析?三个海外机构落地案例诠释了AI的终极问题:我们的大脑是超级计算机吗?借助大数据进行社交媒体营销,公司也要这么玩!全球第二个支持比特币的交易员:仅次于索罗斯,连续25年无亏损。

 
友情链接
鄂ICP备19019357号-22