

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

# 监控 AWS Elemental MediaTailor 使用亚马逊 CloudWatch 指标
<a name="monitoring-cloudwatch-metrics"></a>

您可以使用监控 AWS Elemental MediaTailor 指标 CloudWatch。 CloudWatch 收集有关服务性能的原始数据，并将这些数据处理为可读的近乎实时的指标。这些统计数据会保存 15 个月，从而使您能够访问历史信息，并能够更好地了解您的 Web 应用程序或服务的执行情况。此外，可以设置用于监测特定阈值的警报，并在达到相应阈值时发送通知或执行操作。有关更多信息，请参阅 [Amazon CloudWatch 用户指南](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/)。

当您调查陈旧的清单时，指标可能很有用。有关更多信息，请参阅 [使用指标来诊断陈旧的清单](stale-manifest-diagnose.md)。

指标的分组首先依据服务命名空间，然后依据每个命名空间内的各种维度组合。

**使用 CloudWatch 控制台查看指标**

1. 打开 CloudWatch 控制台，网址为[https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)。

1. 在导航窗格中，选择**指标**。

1. 在**所有指标**下，选择**MediaTailor**命名空间。

1. 选择指标维度以查看指标（例如，**originID**）。

1. 指定要查看的时间段。

**要查看指标，请使用 AWS Command Line Interface (AWS CLI)**
+ 在命令提示符处输入下面的命令：

  ```
  aws cloudwatch list-metrics --namespace "AWS/MediaTailor"
  ```

## AWS Elemental MediaTailor CloudWatch 指标
<a name="metrics"></a>

 AWS Elemental MediaTailor 命名空间包括以下指标。默认情况下，这些指标将发布到您的账户。

### 频道组装 (CA) 指标
<a name="metrics.channel-assembly"></a>

在下表中，所有指标均按渠道或渠道输出提供。


| 指标 | 说明 | 
| --- | --- | 
|  4xxErrorCount  | `4xx`错误数。 | 
|  5xxErrorCount  | `5xx`错误数。 | 
|  RequestCount  |  请求的总数。交易数量在很大程度上取决于玩家请求更新清单的频率以及玩家人数。每个播放器请求计为一个事务。 | 
|  TotalTime  | 应用服务器处理请求所花费的时间，包括从客户端和网络接收字节以及向客户端和网络写入字节所用的时间。 | 

#### Server-side Ad-insertion (SSAI) 指标
<a name="metrics.server-side-ad-insertion"></a>

下表列出了服务器端广告插入指标。


| 指标 | 说明 | 
| --- | --- | 
|  AdDecisionServer.Ads  | 在您指定的 CloudWatch 时间段内，广告决策服务器 (ADS) 响应中包含的广告数量。 | 
|  AdDecisionServer.Duration  | 在您指定的时间段内从 ADS MediaTailor 收到的所有广告的总 CloudWatch 时长（以毫秒为单位）。此持续时间可以大`Avail.Duration`于您指定的持续时间。 | 
|  AdDecisionServer.Errors  | 在您指定的时间段内从 ADS MediaTailor 收到的非 HTTP 200 状态码响应、空响应和超 CloudWatch 时响应的数量。 | 
|  AdDecisionServer.FillRate  | 在您指定的时间段内，ADS 响应填充相应的单个广告效用的速率的简单平均值。<br />要获得加权平均值，请计算 `AdDecisionServer.Duration` 占 `Avail.Duration` 的百分比。有关简单和加权平均值的更多信息，请参阅[简单和加权平均值](#metrics-simple-average)。 | 
|  AdDecisionServer.Latency  | 向 ADS 发出的请求的响应时间（以毫秒为单位） MediaTailor 。 | 
|  AdDecisionServer.Timeouts  | 在您指定的时间段内向 ADS 发出的超 CloudWatch时请求数。 | 
|  AdNotReady  | ADS 指向在您指定的时间段内，尚未由内部转码器服务转码的广告的次数。<br />此指标值较大可能会导致较低的整体 `Avail.FillRate`。 | 
|  AdsBilled  | 根据广告投放量向客户收取 MediaTailor 账单的广告数量。 | 
|  Avail.Duration  | 该时间段内可用的广告计划总毫秒数。 CloudWatch 计划总数基于来源清单中的广告投放时长。 | 
|  Avail.FilledDuration  | 该时间段内广告充斥的计划广告投放时间毫秒数。 MediaTailor CloudWatch  | 
|  Avail.FillRate  | 在一段 CloudWatch时间内填补个别广告可用量的费率的计划简单平均值。 MediaTailor <br />要获得加权平均值，请计算 `Avail.FilledDuration` 占 `Avail.Duration` 的百分比。有关简单和加权平均值的更多信息，请参阅[简单和加权平均值](#metrics-simple-average)。<br /> MediaTailor 可实现的最大 `Avail.FillRate` 受 `AdDecisionServer.FillRate` 的约束。如果 `Avail.FillRate` 较低，则将其与 `AdDecisionServer.FillRate` 进行比较。如果 `AdDecisionServer.FillRate` 较低，您的 ADS 可能没有在效用持续时间内返回足够的广告。 | 
|  Avail.Impression  | 服务器端信标期间 MediaTailor 看到的带有展示次数跟踪事件的广告数量（不是展示次数）。 | 
|  Avail.ObservedDuration  | 在该时间段内观测到的广告可用总毫秒数。 CloudWatch `Avail.ObservedDuration`在广告投放结束时发布，基于广告投放期间清单中报告的区段持续时间。 | 
|  Avail.ObservedFilledDuration  | 观察到的时间段内 MediaTailor 充斥着广告的广告投放时间的毫秒数。 CloudWatch  | 
|  Avail.ObservedFillRate  | 观察到的该 CloudWatch时间段内单个广告的 MediaTailor 填充率的简单平均值。<br />仅在 HLS 清单的第一个标签处发出。`CUE-IN`如果没有`CUE-IN`标签，则 MediaTailor 不发出此指标。 | 
|  Avail.ObservedSlateDuration  | 观测到的时间段内插入的板岩总毫秒数。 CloudWatch  | 
|  GetManifest.Age  | 清单的总时长（以毫秒为单位）。从源站创建清单到 MediaTailor发送个性化清单的时间进行衡量。<br />有关衡量清单期限的指标的更多信息，请参阅[使用指标来诊断陈旧的清单](stale-manifest-diagnose.md)。 | 
|  GetManifest.Errors  | 在您指定的时间段 MediaTailor 内生成清单 CloudWatch 时收到的错误数。 | 
|  GetManifest.Latency  | 请求生成清单的 MediaTailor 响应时间（以毫秒为单位）。<br />有关衡量清单期限的指标的更多信息，请参阅[使用指标来诊断陈旧的清单](stale-manifest-diagnose.md)。 | 
|  GetManifest.MediaTailorAge  | 清单存储的时间长度（以毫秒为 MediaTailor 单位）。从 MediaTailor 收到源站响应到 MediaTailor 发送个性化清单的时间进行衡量。<br />有关衡量清单期限的指标的更多信息，请参阅[使用指标来诊断陈旧的清单](stale-manifest-diagnose.md)。 | 
|  Origin.Age  | 源站拥有清单的时间长度（以毫秒为单位）。从源站创建清单到 MediaTailor 发送源请求的时间进行测量。<br />所有`origin.*`指标都是针对直接从源站完成的请求发出的。它们不会针对缓存的源响应发出。<br />有关衡量清单期限的指标的更多信息，请参阅[使用指标来诊断陈旧的清单](stale-manifest-diagnose.md)。 | 
|  Origin.Errors  | 在您指定的时间段内从源服务器 MediaTailor 收到的非 HTTP 200 状态码响应和超 CloudWatch 时响应的数量。<br />所有`origin.*`指标都是针对直接从源站完成的请求发出的。它们不会针对缓存的源响应发出。 | 
|  Origin.ManifestFileSizeBytes  | HLS 和 DASH 的源清单文件大小（以字节为单位）。通常，此指标与结合使用`Origin.ManifestFileSizeTooLarge`。<br />所有`origin.*`指标都是针对直接从源站完成的请求发出的。它们不会针对缓存的源响应发出。 | 
|  Origin.ManifestFileSizeTooLarge  | 来自来源的清单大小大于配置数量的响应数量。通常，此指标与结合使用`Origin.ManifestFileSizeBytes`。<br />所有`origin.*`指标都是针对直接从源站完成的请求发出的。它们不会针对缓存的源响应发出。 | 
|  Origin.Timeouts  | 在您指定的时间段内向源服务器发出的超 CloudWatch 时请求数。<br />所有`origin.*`指标都是针对直接从源站完成的请求发出的。它们不会针对缓存的源响应发出。 | 
|  Requests  | 所有请求类型中每秒的并发事务数。交易数量主要取决于玩家数量以及玩家请求更新清单的频率。每个播放器请求计为一个事务。 | 
|  SkippedReason.DurationExceeded  | 由于广告返回的广告持续时间大于指定的有效期而未被插入的广告数量。此指标的值过高可能会导致`Avail.Ads`和`AdDecisionServer.Ads`指标之间存在差异。有关跳过广告的原因的更多信息，请参阅[跳过广告疑难解答](troubleshooting-ad-skipping-overview.md)。 | 
|  SkippedReason.EarlyCueIn  | 由于时间较早`CUE-IN`，跳过的广告数量. | 
|  SkippedReason.ImportError  | 由于导入任务出错而跳过的广告数量。 | 
|  SkippedReason.ImportInProgress  | 由于现有有效的导入任务而跳过的广告数量。 | 
|  SkippedReason.InternalError  | 由于 MediaTailor 内部错误而跳过的广告数量。 | 
|  SkippedReason.NewCreative  | 由于这是客户首次请求该素材资源而未被插入的广告数量。在资产成功转码之前`Avail.FillRate`，该指标的高值可能会暂时导致总体较低。 | 
|  SkippedReason.NoVariantMatch  | 由于广告和内容之间没有变体匹配而跳过的广告数量。 | 
|  SkippedReason.PersonalizationThresholdExceeded  | 超过此配置中**个性化阈值**设置的广告持续时间。 | 
|  SkippedReason.ProfileNotFound  | 由于找不到转码配置文件而跳过的广告数量。 | 
|  SkippedReason.TranscodeError  | 由于转码错误而跳过的广告数量。 | 
|  SkippedReason.TranscodeInProgress  | 由于广告尚未进行转码而未被插入的广告数量。在资产成功转码之前`Avail.FillRate`，该指标的高值可能会暂时导致总体较低。 | 
|  GetAssets.Requests  | 在一段时间内收到的 HLS 插页式广告会话资源列表请求的数量。 CloudWatch 使用此指标来监控后期绑定的广告决策量，并了解HLS插页式广告的使用规模。 | 
|  GetAssets.Latency  | HLS 插页式广告会话的资产列表请求的响应时间（以毫秒为单位）。监控该指标以确保最佳的广告决策绩效，并确定后期绑定工作流程中的潜在瓶颈。 | 

**注意**  
对于 HLS Intersitials 会话，由于广告决策的后期绑定性质，某些指标的行为会有所不同：  
`Avail.ObservedFilledDuration`匹配，`Avail.FilledDuration`因为 MediaTailor 无法观察到实际的客户端播放行为。
`Avail.ObservedSlateDuration`根据资产列表的回复而不是观察到的回放来报告计划延迟时长。
以 “观察” 为前缀的指标提供了 HLS 插页式广告会话的估计值。

### 函数指标
<a name="metrics.functions"></a>

[当您将 Functions 与播放配置一起使用时，会发布以下指标。](monetization-functions.html)在生命周期挂钩上配置函数时，总是会发出这些指标。无需选择加入或日志配置。

**Hook-level 指标** — 每次生命周期挂钩执行一个数据点：


| 指标 | 说明 | 
| --- | --- | 
|  PreSessionInitHook.Invocations  | 调用会话前初始化挂钩的次数。 | 
|  PreSessionInitHook.Errors  | 导致错误的会话前初始化挂钩执行次数。 | 
|  PreSessionInitHook.Latency  | 会话前初始化挂钩的执行时间（以毫秒为单位）。 | 
|  PreAdsRequestHook.Invocations  | 广告前请求挂钩被调用的次数。 | 
|  PreAdsRequestHook.Errors  | 导致错误的广告前请求挂钩执行次数。 | 
|  PreAdsRequestHook.Latency  | 广告前请求挂钩的执行时间（以毫秒为单位）。 | 

**Function-level metrics** — 每个函数执行一个数据点。这些指标包括其他维度（`FunctionId`、`FunctionType`、`HookType`），因此您可以确定哪个特定功能运行缓慢或失败：


| 指标 | 说明 | 
| --- | --- | 
|  Function.Invocations  | 单个函数的执行次数。 | 
|  Function.Errors  | 导致错误的单个函数执行次数。 | 
|  Function.Latency  | 单个函数的执行时间（以毫秒为单位）。 | 

### 简单和加权平均值
<a name="metrics-simple-average"></a>

您可以检索简单平均值和加权平均值，以了解广告对广告请求的响应 MediaTailor 以及广告的 MediaTailor 填充情况：
+ `AdDecisionServer.FillRate`和中提供了*简单的平均值*`Avail.FillRate`。这些是该时间段内各个效用的填充率百分比的平均值。简单平均值不考虑单个效用的持续时间之间的任何差异。
+ *加权平均值*是所有效用持续时间总和的填充率百分比。计算方法为 (`AdDecisionServer.Duration`\*100)/`Avail.Duration` 和 (`Avail.FilledDuration`\*100)/`Avail.Duration`。这些平均值反映了每个广告效用持续时间的差异，给予持续时间较长的效用更多的权重。

对于仅包含一个广告效用的时间段，`AdDecisionServer.FillRate` 提供的简单平均值等于 (`AdDecisionServer.Duration`\*100)/`Avail.Duration` 提供的加权平均值。`Avail.FillRate` 提供的简单平均值等于 (`Avail.FilledDuration`\*100)/`Avail.Duration` 提供的加权平均值。

**示例**

假设您指定的时间段具有以下两个广告效用：
+ 第一个广告效用具有 90 秒的持续时间：
  + ADS 对该效用的响应提供了 45 秒的广告（50% 已填充）。
  + MediaTailor 占可用广告时间的 45 秒（已填满 50%）。
+ 第二个广告效用具有 120 秒的持续时间：
  + ADS 对该效用的响应提供了 120 秒的广告（100% 已填充）。
  + MediaTailor 占广告可用时间的 90 秒（已填满 75%）。

各指标如下所示：
+ `Avail.Duration` 为 210，两个广告效用持续时间的总和：90 \+ 120。
+ `AdDecisionServer.Duration` 为 165，两个响应持续时间的总和：45 \+ 120。
+ `Avail.FilledDuration` 为 135，两个已填充持续时间的总和：45 \+ 90。
+ `AdDecisionServer.FillRate` 为 75%，每个效用已填充百分比的平均数：(50% \+ 100%)/2。这是简单平均值。
+ ADS 填充率的加权平均值为 78.57%，是 `AdDecisionServer.Duration` 占 `Avail.Duration` 的百分比：(165\* 100)/210。此计算考虑到了持续时间中的差异。
+ `Avail.FillRate` 为 62.5%，每个效用已填充百分比的平均数：(50% \+ 75%)/2。这是简单平均值。
+  MediaTailor 可用填充率的加权平均值为64.29％，即`Avail.Duration`：(135 `Avail.FilledDuration` \*100)/210 的百分比。此计算考虑到了持续时间中的差异。

任何广告`Avail.FillRate` MediaTailor 可获得的最高可用率为100％。ADS 可能会返回与效用中可用的广告时间相比更多的广告时间，但 MediaTailor 只能填充可用的时间。

## AWS Elemental MediaTailor CloudWatch 尺寸
<a name="dimensions"></a>

您可以使用以下维度筛选 AWS Elemental MediaTailor 数据。


| 维度 | 说明 | 
| --- | --- | 
| `ConfigurationName` | 指示指标所属的配置。适用于所有指标。 | 
| `FunctionId` | 函数的标识符。仅在`Function.*`指标上可用。 | 
| `FunctionType` | 函数的类型：`CUSTOM_OUTPUT`、`HTTP_REQUEST``SEQUENTIAL_EXECUTOR`、或`CONCURRENT_EXECUTOR`。仅在`Function.*`指标上可用。 | 
| `HookType` | 触发函数的生命周期挂钩：`PRE_SESSION_INITIALIZATION`或`PRE_ADS_REQUEST`。仅在`Function.*`指标上可用。 | 