生成调试日志 - AWS Elemental MediaTailor

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

生成调试日志

使用调试日志对 MediaTailor 广告插入播放会话问题进行故障排除。要生成调试日志,请在玩家的请求中将日志模式设置为调试 MediaTailor。要进行服务器端报告,请在播放请求中设置日志模式。对于客户端报告,请在会话初始化请求中设置日志模式。

当日志模式设置为调试时, MediaTailor 将调试日志数据写入 CloudWatch 日志。调试日志提供有关以下事件的信息。有关调试日志中生成的数据的完整列表,请参阅调试日志字段

  • Origin 交互 — 有关 MediaTailor与源服务器交互的详细信息。例如,来源清单响应、清单类型和来源URL。

  • 生成的清单-有关来自的播放会话响应的详细信息 MediaTailor。例如,生 MediaTailor 成的清单。

  • 会话已初始化-会话初始化详细信息,例如会话 ID。

先决条件

要将日志模式设置为调试,首先需要授予向其发送日志的 MediaTailor 权限(如果尚未授予权限)。 CloudWatch授予 MediaTailor 访问权限后 CloudWatch,就可以启用调试日志模式了。有关如何授予访问 MediaTailor 权限的信息, CloudWatch 请参阅为 Amazon 设置权限 CloudWatch

如何将日志模式设置为调试

本节介绍如何将服务器端报告和客户端报告的日志模式设置为调试。

服务器端报告

要进行服务器端报告,请在播放器向HLS或DASH MediaTailor 端点发送的GET HTTP播放请求中包含?aws.logMode=DEBUG查询参数和值。有关服务器端报告的一般信息,请参阅服务器端报告。

重要

DEBUG 值区分大小写。

包含以下内容的播放请求?aws.logMode=DEBUG如下所示:

例 向HLS终端节点发出的播放请求
GET <mediatailorURL>/v1/master/<hashed-account-id>/<origin-id>/<asset-id>?aws.logMode=DEBUG

将日志模式设置为调试后,我们建议您验证调试日志会话是否处于活动状态。要验证调试会话是否处于活动状态,请检查是否有该会话 ID 的 CloudWatch 日志。会话 ID 包含在 MediaTailor提供的播放端点中。有关更多信息,请参阅 Verify that the debug log mode is active for your playback session

客户端报告

要进行客户端报告,请在客户端的POST HTTP会话初始化请求正文中将logMode键和DEBUG值添加到 MediaTailor /v1/session 端点。有关客户端报告的一般信息,请参阅客户端报告。

重要

DEBUG 值区分大小写。

将日志模式设置为调试后,我们建议您验证调试会话是否处于活动状态。要验证调试会话是否处于SESSION_INITIALIZED活动状态,请确认 CloudWatch 日志中存在与会话 ID 关联的事件。会话 ID 包含在 MediaTailor 提供的播放端点中。有关更多信息,请参阅 Verify that the debug log mode is active for your playback session

最大活跃调试会话数

您最多可以有 10 个活跃的调试日志会话。当您的播放器向发送会话初始化或播放请求时 MediaTailor,会 MediaTailor检查是否已达到限制。如果有,请 MediaTailor 检查是否有任何陈旧的会话。如果会话在一定时间内未被访问,则该会话将失效。对于直播,这个时间段是 10 分钟,对于直VOD播,这个时间段是 30 分钟。

如果已达到活动调试日志会话的最大限制,则调试日志不会写入会话的 CloudWatch 日志。如果您在会话日志中看不到调试 CloudWatch 日志,则可能已达到此限制。要确认是否已达到限制,请参阅Verify that the debug log mode is active for your playback session

调试日志字段

下表列出了 MediaTailor 写入的调试日志字段 CloudWatch。

字段 描述
awsAccountId 您的 AWS 账户 同义词。
customerId 您的 MediaTailor 客户 ID。
eventTimestamp 与调试日志事件关联的 ISO 8601 时间戳。
eventType 调试日志事件的类型。

值:

  • ORIGIN_INTERACTION— 有关与源服务器交互 MediaTailor的详细信息。例如,来源清单响应、清单类型和来源URL。

  • GENERATED_MANIFEST— 有关来自的播放会话响应的详细信息 MediaTailor。例如,生 MediaTailor成的清单。

  • SESSION_INITIALIZED— 会话初始化详细信息,例如会话 ID。

originRequestUrl 为此请求检索到的您的源服务器。URL
mediaTailorPath 被调用的 MediaTailor 端点,包括在初始清单请求 MediaTailor 中传递给的任何参数。
requestId 对的特定HTTP请求的 ID MediaTailor。
responseBody 响应正文中的清单来自 MediaTailor。这要么是原始来源清单,要么是生成的清单 MediaTailor。
sessionId 播放会话 ID。
sessionType 播放会话的类型。

值:HLSDASH

阅读调试日志

MediaTailor 将调试日志写入 Amazon CloudWatch 日志。通常 CloudWatch 会收取日志费用。使用 CloudWatch Insights 读取调试日志。有关如何使用 Lo CloudWatch gs Insights 的信息,请参阅《日志用户指南》中的 “使用 CloudWatch 日志见解分析AWS CloudWatch 日志数据”。

注意

调试日志可能需要几分钟才能显示在中 CloudWatch。如果您没有看到日志,请等待几分钟,然后重试。如果您仍然看不到日志,则可能是您已达到活动调试日志会话的最大数量。要验证是否是这种情况,请运行 CloudWatch 查询以查看是否有针对您的播放会话初始化的调试会话。有关更多信息,请参阅 Verify that the debug log mode is active for your playback session

示例

本节包括可用于读取 MediaTailor 调试日志数据的示例查询。

例 1:验证您的播放会话的调试日志模式是否处于活动状态
fields @timestamp, @message | filter sessionId = "32002de2-837c-4e3e-9660-f3075e8dfd90" | filter eventType = "SESSION_INITIALIZED" # client-side reporting or mediaTailorPath like “/v1/master" # server-side reporting HLS or mediaTailorPath like “/v1/dash" # server-side reporting DASH
例 2:查看来自你的来源的回复
fields @timestamp, responseBody, @message, mediaTailorPath | filter eventType = "ORIGIN_MANIFEST" and sessionId = "32002de2-837c-4e3e-9660-f3075e8dfd90"
例 3:查看 MediaTailor 为给定会话生成的清单
fields @timestamp, responseBody, @message | filter mediaTailorPath like "/v1/master/" and eventType = "GENERATED_MANIFEST" and sessionId = "32002de2-837c-4e3e-9660-f3075e8dfd90"
例 4:查看给定事件的所有事件 requestId

使用此查询可以查看由生成的源清单和清单 MediaTailor。

fields @timestamp, responseBody, @message, mediaTailorPath | filter requestId = "e5ba82a5-f8ac-4efb-88a0-55bed21c45b4"