

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

# 生成 AWS Elemental MediaTailor 调试日志
<a name="debug-log-mode"></a>

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

当日志模式设置为调试时， MediaTailor 会将所有日志事件类型写入 CloudWatch 日志。日志提供有关以下事件的信息。有关调试日志中生成的数据的完整列表，请参阅调[试日志字段](https://docs.aws.amazon.com/mediatailor/latest/ug/debug-log-mode.html#debug-log-mode-fields)。
+ **源交互**-有关与源服务器 MediaTailor 交互的详细信息。例如，来源清单响应、清单类型和来源 URL。
+ **生成的清单**-有关来自的播放会话响应的详细信息 MediaTailor。例如，生 MediaTailor 成的清单。
+ **会话已初始化**-会话初始化详细信息，例如会话 ID。

要自定义按会话接收的日志事件类型，请参阅[筛选日志和事件](logs-filter.md)。

## 先决条件
<a name="prerequisites"></a>

要将日志模式设置为调试，首先需要授予向其发送日志的 MediaTailor 权限（如果还没有）。 CloudWatch授予 MediaTailor 访问权限后 CloudWatch，就可以启用调试日志模式了。有关如何授予访问 MediaTailor 权限的信息， CloudWatch 请参阅[为 Amazon 设置权限 CloudWatch](https://docs.aws.amazon.com/mediatailor/latest/ug/monitoring-permissions.html)。

## 如何将日志模式设置为调试
<a name="how-to-turn-on-debug-log-mode"></a>

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

### 服务器端报告
<a name="server-side-reporting"></a>

要进行服务器端报告，请在玩家向 HLS 或 DASH MediaTailor 端点发`GET HTTP`出的播放请求中包含`?aws.logMode=DEBUG`查询参数和值。有关服务器端报告的一般信息，请参阅[服务器端](https://docs.aws.amazon.com/mediatailor/latest/ug/ad-reporting-server-side.html)报告。

**重要**  
`DEBUG` 值区分大小写。

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

**Example 向 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](#debug-active)。

### 客户端报告
<a name="client-side-reporting"></a>

要进行客户端报告，请在客户端的`POST HTTP`会话初始化请求正文中将`logMode`键和`DEBUG`值添加到 MediaTailor /v1/session 端点。有关客户端报告的一般信息，请参阅[客户端](https://docs.aws.amazon.com/mediatailor/latest/ug/ad-reporting-client-side.html)报告。

**重要**  
`DEBUG` 值区分大小写。

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

## 最大活跃调试会话数
<a name="maximum-active-debug-log-sessions"></a>

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

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

## 调试日志字段
<a name="debug-log-mode-fields"></a>

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


| 字段 | 说明 | 
| --- | --- | 
| awsAccountId | 你的 AWS 账户 身份证。 | 
| customerId | 您的 MediaTailor 客户 ID。 | 
| eventTimestamp | 与调试日志事件关联的 ISO 8601 时间戳。 | 
| eventType | 调试日志事件的类型。值：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/mediatailor/latest/ug/debug-log-mode.html) | 
| originRequestUrl | 为此请求检索到的您的源服务器的 URL。 | 
| mediaTailorPath | 被调用的 MediaTailor 端点，包括在初始清单请求 MediaTailor 中传递给的任何参数。 | 
| requestId | 向发出的特定 HTTP 请求的 ID MediaTailor。 | 
| responseBody | 响应正文中的清单来自 MediaTailor。这要么是原始来源清单，要么是生成的清单 MediaTailor。 | 
| sessionId | 播放会话 ID。 | 
| sessionType | 播放会话的类型。值：`HLS`、`DASH` | 

## 阅读调试日志
<a name="read-the-debug-logs"></a>

MediaTailor 将调试日志写入 Amazon CloudWatch 日志。通常 CloudWatch 会收取日志费用。使用 CloudWatch Insights 读取调试日志。有关如何使用 [Lo CloudWatch gs Insights 的信息，请参阅 *AWS CloudWatch 日志用户指南中的使用 CloudWatch 日志*见解分析日志数据](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html)。

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

### 示例
<a name="query-examples"></a>

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

**Example 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
```

**Example 2：查看来自你的来源的回复**  

```
fields @timestamp, responseBody, @message, mediaTailorPath
 | filter eventType = "ORIGIN_MANIFEST" and sessionId = "32002de2-837c-4e3e-9660-f3075e8dfd90"
```

**Example 3：查看 MediaTailor 为给定会话生成的清单**  

```
fields @timestamp, responseBody, @message
 | filter mediaTailorPath like "/v1/master/" and eventType = "GENERATED_MANIFEST" and sessionId = "32002de2-837c-4e3e-9660-f3075e8dfd90"
```

**Example 4：查看给定事件的所有事件 `requestId`**  
 使用此查询可以查看由生成的源清单和清单 MediaTailor。  

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