使用亚马逊 CloudFront 进行 OTT 直播的 QoS 可观测性

关于 OTT 世界中的 QoS 及其重要性

在当今的数字时代,高速互联网的广泛普及和流媒体设备范围的扩大使OTT(OTT)内容成为我们日常生活中不可或缺的一部分。但是,由于选择丰富,确保OTT内容的服务质量(QoS)对内容提供商和消费者来说都是一项重大挑战。国际电信联盟(ITU)区分了侧重于网络管理和保障的QoS和评估主观用户满意度的体验质量(QoE)。要获得卓越的质量体验,除了网络性能之外,还需要考虑一系列更广泛的因素。为了有效地管理 QoS 和 QoE,运营商必须监控关键的行业级指标,例如 QoE 和 HTTP 错误代码的重新缓冲和视频播放失败、延迟和 QoS 的缓存命中率。这项持续努力旨在提高可观察性并增强 OTT 交付的 QoS 方面, Amazon CloudFront 是探索的重点。

在之前的文章中,我们 讨论了使用CM CD解决方案提高QoE可见性 。我们继续努力提高客户的可观察性,在这篇文章中,我们深入探讨了使用CloudFront进行OTT交付的QoS方面。

关于这篇文章

在这篇文章中,我们将引导您部署实时仪表板,该仪表板可提高大规模活动期间或全天候线性流中资产交付的媒体可观察性。该解决方案使用 CloudFront 实时日志记录功能,提供对交付绩效指标的近乎实时的可见性。这可以用来将您的可观察性扩展到视频交付组件的不同方面。

CloudFront 视频资产交付控制面板可捕获与流媒体分辨率和视频资产相关的指标。仪表板考虑了最常用的视频分辨率。通过分析每种分辨率的数据,仪表板可以帮助您确定性能趋势并做出以数据为依据的决策,从而提高观众资产交付的整体质量。利用这些信息,客户可以优化其流媒体基础设施,为观众提供最佳的观看体验。

我们还进一步将这些指标分为清单和片段,工作流程中内置的逻辑考虑了两种常见的视频格式:HLS 和 MPEG-DASH。

架构

以下架构用于提供构建 CloudFront 视频资产交付仪表板所需的指标,如下图所示:

Overall Solution Architecture

图 1:整体解决方案架构

流媒体视频内容的客户已经有了向用户交付视频资产的 CloudFront 分发平台。考虑到这一点,仪表板可以插入当前的媒体交付流程,指标开始填充到仪表板中。用于构建仪表板的架构组件描述如下:

1-CloudFront 实时日志: 这是实时日志配置,CloudFront 需要此配置才能近乎实时地提供有关每个请求的详细信息。为了减少生成的数据量,从而帮助控制成本和性能,我们特别选择了此配置中的字段,仅提供填充仪表板所需的信息。如果故障排除或其他用例需要更多信息,我们建议使用 CloudFront 标准日志 。此外,如果必须将字段添加到实时日志配置中,则需要自定义 亚马逊云科技 L am bda 函数中的代码以处理额外的字段。当前使用的字段如下:

  • 时间戳
  • sc-bytes
  • sc-status
  • cs-uri-stem
  • 花费时间
  • x 边缘结果类型
  • asn

有关每个字段添加到日志中的信息的更多详细信息,请参阅 此 CloudFront 文档

2-亚马逊 Kinesis 数据流 这是 CloudFront 向其推送日志的初始服务。CloudFront 上的实时日志配置已设置完毕,其中包含构建仪表板所需的字段,并以 Kinesis 数据流作为目标。

3-转换 Lambda :批量从 Amazon Kinesis 接收数据,这个 Lambda 运行代码,这会将实时日志 中的数据分解开来,并创建控制面板所需的指标。

4-CloudWatch 日志/指标 :为了使其更具成本效益,该流程使用 CloudWatch 嵌入式指标格式 (EMF) 来发布指标。使用 EMF 可以节省开支,因为我们避免进行 PutMetric API 调用。向其发送指标的日志组应将数据保存最多 30 天。

5-CloudWatch 媒体控制面板:监控媒体交付的媒体交付管理员和运营团队可以在 此处分析和审查其媒体资产交付指标。

先决条件

在继续操作之前,需要满足以下先决条件。

  1. 使用此解决方案的用户应将每种资产类型(HD/UHD/NonHD)的唯一标识符集成到每种资产类型的网址中。在大多数情况下,客户会根据其分辨率为其视频资产创建文件结构。此外,他们在 HTTP 网址中采用相同的结构。例如,如果他们正在直播超高清晰度 (UHD) 内容,他们可能会使用唯一标识符,例如 “soccer_match_uhd” 或分辨率本身 “3840×2160” 作为网址的一部分。请注意,此解决方案基于 URL 解析器,查询字符串中的任何标识符都不适用于此解决方案。
  2. 该解决方案旨在与客户现有的视频工作流程无缝集成。用户应利用 CloudFront 发行版将其资产作为视频工作流程的一部分交付。

解决方案指标深入探讨

在本节中,我们将介绍可用的指标及其含义。下图显示了工作仪表板。

Dashboard Metrics View

图 2:控制面板指标视图

账本理解:

  1. UHD:UHD 代表超高清晰度,指明显高于标准高清晰度 (HD) 分辨率的视频分辨率。超高清的分辨率通常为 3840×2160 像素。
  2. FHD/HD:HD 代表高清晰度,是指明显高于标准清晰度 (SD) 视频分辨率的视频分辨率。高清分辨率通常为1280×720像素(720p)。FHD 是指全高清晰度 1920×1080 像素 (1080p),在当前的行业中,有时使用高清来指这两种分辨率。因此,我们将它们分组在一起以保持仪表板的简洁性。
  3. SD:SD 代表标准清晰度,是指低于高清标准的视频分辨率。通常,这是指480p及更低的分辨率。

按流划分的分段/清单交付延迟 :这提供了向观众提供的内容的延迟数据。该指标还按清单和区段文件以及直播交付类型进行细分。这张照片显示了从 CloudFront 收到请求到将内容提供给查看者的总延迟。

每个流媒体的字节数 :这 旨在帮助管理员了解正在直播的内容是如何分配给每种流媒体类型的。然后,这可以用来了解观众群的行为,也可以提供有关哪些内容质量可以提供更多收入或需要更多关注以改善不同使用群体的整体交付质量的意见。

按自治系统编号 (ASN) 排列的延迟: 此指标显示 CloudFront 请求和提供内容所花费的时间。它按前 10 名 ASN 和分辨率进行了细分。该指标可以帮助识别特定 ASN 是否存在问题,这有助于查明流媒体交付中的延迟问题。这些特定指标是通过查询提供的,因此仅显示最近三个小时的数据。

缓存命中率指标: 这些是清单和区段文件交付的缓存命中率指标。它们旨在帮助监控小组发现在缓存这些类型内容方面可以做出的潜在改进。通常,我们希望看到具有更高缓存命中率的区段,这样我们就知道内容是尽可能靠近用户提供的。这是按每份决议交付情况进行细分,如标题所示。

4xx/5xx 每个流的错误率 :此指标显示按流类型细分的错误率。这有助于了解请求按流获得错误的速率。因此,在速率上升的情况下,可以根据直播类型快速进行故障排除。

部署步骤

为了部署此控制面板,我们准备了一个 CloudFormation 模板,用于部署所有必需的资源。

第 1 步 :直接进入 云Form ation控制 台部署模板。

第 2 步 :此 CloudFormation 模板部署控制面板所需的所有资源。部署模板时,需要您提供一些输入,如下所述:

  1. cloudfrontrealtimeLogsSampling Rate :这是一个介于 1 到 100 之间的数字,用于定义将 CloudFront 处理的请求发送到实时日志管道的采样率。这使您可以控制成本,因为流经管道的数据越多,该解决方案的成本就越高。
  2. UHDExists、fhdeXists HDexists: 在这些参数中,我们必须指明此媒体传输流程中是否有超高清、全高清和高清流媒体部分。如果媒体传输流程中未包含这些决议中的任何一项,则将其设置为 false。
  3. fhdstream Identifier :这是用户请求的内容 URI 内全高清分辨率流的唯一标识符。
  4. HDstreamIdentifi er:与前面描述的 “ fhdstreamIdentifier ” 类似,这是高清直播的唯一标识符
  5. uhdstreamIdentifi er:与前面 描述的 “ fhdstreamIdentifier” 类似,这是超高清直播的唯一标识符。
CloudFormation Parameters

图 3:CloudFormation 参数

第 4 步。 执行 CloudFormation 模板并部署堆栈的所有组件后,下一步是将 CloudFront 实时日志配置附加到提供媒体内容的 CloudFront 发行版。为此,请按照以下子步骤操作:

步骤 4.A。打开 CloudFront 控制台并将鼠标悬停在 日志 > 实时配置 上。

步骤 4.B。打开 cfmediadashboardLogs 配置并选择 “连接到发行版”。

步骤 4.C。在下一页中,选择发行版和用于提供媒体内容的正确行为。然后选择 “附加”。 确保选择为媒体资产提供服务的所有行为(清单和片段),如下图所示。

CloudFront Real Time Logs

图 4:CloudFront 实时日志

Real Time Logs Attachment to Distribution

图 5:分发版的实时日志附件

如果配置的分配中有实时流量,则仪表板已填充指标,可以通过前往 CloudWatch 控制台并打开名为 “CloudfrontVideoAssetDeliveryDassboard” 的仪表板来将其打开。

仪表板的使用和成本注意事项

CloudFront 视频资产交付仪表板解决方案可用于多种场景。此外,按照 亚马逊云科技 成本模型,该解决方案按使用量付费。操作员可以随时根据自己的需求和使用情况在工作流程中插入和拔出此仪表板。

该解决方案涉及的定价维度包括 CloudWatch 处理的数据、向 Kinesis 发送数据的速率和每条记录的大小、CloudFront 实时日志请求(根据生成的日志行数收费)以及 Lambda 调用的数量及其总持续时间收费。所有这些维度都受到 CloudFront 的请求速率和部署解决方案时选择的采样率的影响。

请注意,一旦将日志配置与 CloudFront 分发分离,日志就会停止填充,成本也会停止。在下图中,你可以检查如何分离配置。

Real Time Logs Detachment

图 6:实时日志分离

仪表板清理

要清理基础架构,必须删除已部署资源的 CloudFormation 堆栈。但是,要使清理工作正常进行,首先需要采取两个步骤。

1-必须将 CloudFront 实时日志与 CloudFront 分配分离。为此,必须打开实时日志配置并将其从发行版中分离,这可以通过控制台完成。

2-下一步是删除创建所有其他资源的 CloudFormation 堆栈。堆栈删除完成后,所有资源都将从 亚马逊云科技 账户中移除。

结论

在这篇文章中,我们介绍了一种新的解决方案,旨在帮助通过CloudFront提供流媒体内容的公司更深入地了解其流媒体交付情况,并评估其OTT流媒体资产的服务质量。

随着该解决方案的推出,客户可以获得对其视频交付组件的端到端见解。通过利用 CloudWatch 的 CloudFront 视频资产交付控制面板,企业可以实时了解其视频交付工作流程的性能。此外,通过使用CMCD工具,客户还可以深入了解客户端遥测,这为企业回顾其视频交付策略提供了完整的数据集。这种端到端的视频交付性能监控和分析方法使企业能够做出明智的决策并迅速采取纠正措施,从而确保高质量的流媒体内容和一致的服务质量。

vini.jpeg

Vinicius Pedroni

Vinicius 是 亚马逊云科技 的解决方案架构师。他与客户合作构建解决方案和功能,帮助客户迁移到云端。他专门研究 亚马逊云科技 边缘服务,还帮助和指导客户采用这些技术来提高他们在 亚马逊云科技 上的安全性、性能和可扩展性。

download-3.jpeg

Abhimanyu Varshney

Abhimanyu Varshney 是一名高级企业客户工程师,专门研究亚马逊网络服务 (亚马逊云科技) 的媒体交付。在这个职位上,他在协助客户在Over The Top平台上成功举办大型活动方面发挥着至关重要的作用。Abhimanyu 的专长在于亚马逊云科技 Edge Services,他专注于指导和支持客户采用这些尖端技术来增强他们在 亚马逊云科技 环境中的安全性、性能和可扩展性。