AWS mediatailor documentation change
Summary
Added CloudWatch metric dimensions and introduced new 'Avail.Complete' metric for video completion rate calculation
Security assessment
Changes involve adding dimensions (like ConfigurationName) to existing metrics and introducing a new business metric (Avail.Complete) for ad performance tracking. No security vulnerabilities, exploits, or security features are mentioned. Updates focus on monitoring improvements without security implications.
Diff
diff --git a/mediatailor/latest/ug/monitoring-cloudwatch-metrics.md b/mediatailor/latest/ug/monitoring-cloudwatch-metrics.md index cc4bba90b..2b8b9caef 100644 --- a//mediatailor/latest/ug/monitoring-cloudwatch-metrics.md +++ b//mediatailor/latest/ug/monitoring-cloudwatch-metrics.md @@ -62,37 +62,73 @@ Metric | Description -`AdDecisionServer.Ads` | The count of ads included in ad decision server (ADS) responses within the CloudWatch time period that you specified. -`AdDecisionServer.Duration` | The total duration, in milliseconds, of all ads that MediaTailor received from the ADS within the CloudWatch time period that you specified. This duration can be greater than the `Avail.Duration` that you specified. -`AdDecisionServer.Errors` | The number of non-HTTP 200 status code responses, empty responses, and timed-out responses that MediaTailor received from the ADS within the CloudWatch time period that you specified. -`AdDecisionServer.FillRate` | The simple average of the rates at which the responses from the ADS filled the corresponding individual ad avails for the time period that you specified. To get the weighted average, calculate the `AdDecisionServer.Duration` as a percentage of the `Avail.Duration`. For more information about simple and weighted averages, see Simple and weighted averages. -`AdDecisionServer.Latency` | The response time in milliseconds for requests made by MediaTailor to the ADS. -`AdDecisionServer.Timeouts` | The number of timed-out requests to the ADS in the CloudWatch time period that you specified. -`AdNotReady` | The number of times that the ADS pointed at an ad that wasn't yet transcoded by the internal transcoder service in the time period that you specified. A high value for this metric might contribute to a low overall `Avail.FillRate`. -`AdsBilled` | The number of ads for which MediaTailor bills customers based on insertion. -`Avail.Duration` | The planned total number of milliseconds of ad avails within the CloudWatch time period. The planned total is based on the ad avail durations in the origin manifest. -`Avail.FilledDuration` | The planned number of milliseconds of ad avail time that MediaTailor will fill with ads within the CloudWatch time period. -`Avail.FillRate` | The planned simple average of the rates at which MediaTailor will fill individual ad avails within the CloudWatch time period. To get the weighted average, calculate the `Avail.FilledDuration` as a percentage of the `Avail.Duration`. For more information about simple and weighted averages, see Simple and weighted averages. The maximum `Avail.FillRate` that MediaTailor can attain is bounded by the `AdDecisionServer.FillRate`. If the `Avail.FillRate` is low, compare it to the `AdDecisionServer.FillRate`. If the `AdDecisionServer.FillRate` is low, your ADS might not be returning enough ads for the avail durations. -`Avail.Impression` | The number of ads with impression tracking events that MediaTailor sees during server-side beaconing (not the number of impressions). -`Avail.ObservedDuration` | The observed total number of milliseconds of ad avails that occurred within the CloudWatch time period. `Avail.ObservedDuration` is emitted at the end of the ad avail, and is based on the duration of the segments reported in the manifest during the ad avail. -`Avail.ObservedFilledDuration` | The observed number of milliseconds of ad avail time that MediaTailor filled with ads within the CloudWatch time period. -`Avail.ObservedFillRate` | The observed simple average of the rates at which MediaTailor filled individual ad avails within the CloudWatch time period. Emitted only for HLS manifests, at the first `CUE-IN` tag. If there is no `CUE-IN` tag, MediaTailor doesn't emit this metric. -`Avail.ObservedSlateDuration` | The observed total number of milliseconds of slate that was inserted within the CloudWatch period. -`GetManifest.Age` | The total age of the manifest in milliseconds. Measured from when the origin creates the manifest, to when MediaTailor sends the personalized manifest. For more information about metrics for measuring manifest age, see [Using metrics to diagnose stale manifests](./stale-manifest-diagnose.html). -`GetManifest.Errors` | The number of errors received while MediaTailor was generating manifests in the CloudWatch time period that you specified. -`GetManifest.Latency` | The MediaTailor response time in milliseconds for the request to generate manifests. For more information about metrics for measuring manifest age, see [Using metrics to diagnose stale manifests](./stale-manifest-diagnose.html). -`GetManifest.MediaTailorAge` | The amount of time that the manifest has been stored in MediaTailor in milliseconds. Measured from when MediaTailor receives an origin response, to when MediaTailor sends the personalized manifest. For more information about metrics for measuring manifest age, see [Using metrics to diagnose stale manifests](./stale-manifest-diagnose.html). -`Origin.Age` | The amount of time that the origin has the manifest in milliseconds. Measured from when the origin creates the manifest, to when MediaTailor sends the origin request. All `origin.*` metrics are emitted for requests that are fulfilled directly from the origin. They are not emitted for cached origin responses. For more information about metrics for measuring manifest age, see [Using metrics to diagnose stale manifests](./stale-manifest-diagnose.html). -`Origin.Errors` | The number of non-HTTP 200 status code responses and timed-out responses that MediaTailor received from the origin server in the CloudWatch time period that you specified. All `origin.*` metrics are emitted for requests that are fulfilled directly from the origin. They are not emitted for cached origin responses. -`Origin.ManifestFileSizeBytes` | The file size of the origin manifest in bytes for both HLS and DASH. Typically this metric is used in conjunction with `Origin.ManifestFileSizeTooLarge`. All `origin.*` metrics are emitted for requests that are fulfilled directly from the origin. They are not emitted for cached origin responses. -`Origin.ManifestFileSizeTooLarge` | The number of responses from the origin that have a manifest size larger than the configured amount. Typically this metric is used in conjunction with `Origin.ManifestFileSizeBytes`. All `origin.*` metrics are emitted for requests that are fulfilled directly from the origin. They are not emitted for cached origin responses. -`Origin.Timeouts` | The number of timed-out requests to the origin server in the CloudWatch time period that you specified. All `origin.*` metrics are emitted for requests that are fulfilled directly from the origin. They are not emitted for cached origin responses. -`Requests` | The number of concurrent transactions per second across all request types. The transaction count depends mainly on the number of players and how often the players request updated manifests. Each player request counts as a transaction. -`SkippedReason.DurationExceeded` | The number of ads that were not inserted into an avail because the ADS returned a duration of ads that was greater than the specified avail duration. A high value for this metric might contribute to a discrepancy between the `Avail.Ads` and `AdDecisionServer.Ads` metric. For more information about ad skipped reasons, see [Ad skipping troubleshooting](./troubleshooting-ad-skipping-overview.html). -`SkippedReason.EarlyCueIn` | The number of ads skipped due to an early `CUE-IN`. -`SkippedReason.ImportError` | The number of ads skipped due to an error in the import job. -`SkippedReason.ImportInProgress` | The number of ads skipped due to an existing active import job. -`SkippedReason.InternalError` | The number of ads skipped due to a MediaTailor internal error. -`SkippedReason.NewCreative` | The number of ads that were not inserted into an avail because it was the first time the asset had been requested by a client. A high value for this metric might temporarily contribute to a low overall `Avail.FillRate`, until assets can be successfully transcoded. -`SkippedReason.NoVariantMatch` | The number of ads skipped due to there being no variant match between the ad and content. -`SkippedReason.PersonalizationThresholdExceeded` | The duration of ads exceeding the **Personalization Threshold** setting in this configuration. -`SkippedReason.ProfileNotFound` | The number of ads skipped due to the transcoding profile not being found. -`SkippedReason.TranscodeError` | The number of ads skipped due to a transcode error. -`SkippedReason.TranscodeInProgress` | The count of the number of ads that were not inserted into an avail because the ad had not yet been transcoded. A high value for this metric might temporarily contribute to a low overall `Avail.FillRate`, until the assets can be successfully transcoded. +`AdDecisionServer.Ads` | The count of ads included in ad decision server (ADS) responses within the CloudWatch time period that you specified. **Dimensions:** + + * `ConfigurationName` + * Account-level (no dimensions) + + +`AdDecisionServer.Duration` | The total duration, in milliseconds, of all ads that MediaTailor received from the ADS within the CloudWatch time period that you specified. This duration can be greater than the `Avail.Duration` that you specified. **Dimensions:** `ConfigurationName` +`AdDecisionServer.Errors` | The number of non-HTTP 200 status code responses, empty responses, and timed-out responses that MediaTailor received from the ADS within the CloudWatch time period that you specified. **Dimensions:** `ConfigurationName` +`AdDecisionServer.FillRate` | The simple average of the rates at which the responses from the ADS filled the corresponding individual ad avails for the time period that you specified. To get the weighted average, calculate the `AdDecisionServer.Duration` as a percentage of the `Avail.Duration`. For more information about simple and weighted averages, see Simple and weighted averages. **Dimensions:** `ConfigurationName` +`AdDecisionServer.Latency` | The response time in milliseconds for requests made by MediaTailor to the ADS. **Dimensions:** `ConfigurationName` +`AdDecisionServer.Timeouts` | The number of timed-out requests to the ADS in the CloudWatch time period that you specified. **Dimensions:** `ConfigurationName` +`AdNotReady` | The number of times that the ADS pointed at an ad that wasn't yet transcoded by the internal transcoder service in the time period that you specified. A high value for this metric might contribute to a low overall `Avail.FillRate`. **Dimensions:** `ConfigurationName` +`AdsBilled` | The number of ads for which MediaTailor bills customers based on insertion. **Dimensions:** + + * `ConfigurationName` + * Account-level (no dimensions) + + +`Avail.Duration` | The planned total number of milliseconds of ad avails within the CloudWatch time period. The planned total is based on the ad avail durations in the origin manifest. **Dimensions:** + + * `ConfigurationName` + * Account-level (no dimensions) + + +`Avail.FilledDuration` | The planned number of milliseconds of ad avail time that MediaTailor will fill with ads within the CloudWatch time period. **Dimensions:** + + * `ConfigurationName` + * Account-level (no dimensions) + + +`Avail.FillRate` | The planned simple average of the rates at which MediaTailor will fill individual ad avails within the CloudWatch time period. To get the weighted average, calculate the `Avail.FilledDuration` as a percentage of the `Avail.Duration`. For more information about simple and weighted averages, see Simple and weighted averages. The maximum `Avail.FillRate` that MediaTailor can attain is bounded by the `AdDecisionServer.FillRate`. If the `Avail.FillRate` is low, compare it to the `AdDecisionServer.FillRate`. If the `AdDecisionServer.FillRate` is low, your ADS might not be returning enough ads for the avail durations. **Dimensions:** `ConfigurationName` +`Avail.Impression` | The number of ads for which MediaTailor fired impression beacons during server-side reporting. MediaTailor emits one count for each ad that has at least one impression URI, regardless of whether those beacons were ultimately delivered. Use this metric as the denominator to calculate the video completion rate (VCR) (see `Avail.Complete`). **Dimensions:** + + * `ConfigurationName` + * Account-level (no dimensions) + + +`Avail.Complete` | The number of ads for which MediaTailor fired complete beacons during server-side reporting. MediaTailor emits one count for each ad that has at least one complete tracking URI, regardless of whether those beacons were ultimately delivered. To calculate the video completion rate (VCR), divide the sum of `Avail.Complete` by the sum of `Avail.Impression`. **Dimensions:** + + * `ConfigurationName` + * Account-level (no dimensions) + + +`Avail.ObservedDuration` | The observed total number of milliseconds of ad avails that occurred within the CloudWatch time period. `Avail.ObservedDuration` is emitted at the end of the ad avail, and is based on the duration of the segments reported in the manifest during the ad avail. **Dimensions:** `ConfigurationName` +`Avail.ObservedFilledDuration` | The observed number of milliseconds of ad avail time that MediaTailor filled with ads within the CloudWatch time period. **Dimensions:** `ConfigurationName` +`Avail.ObservedFillRate` | The observed simple average of the rates at which MediaTailor filled individual ad avails within the CloudWatch time period. Emitted only for HLS manifests, at the first `CUE-IN` tag. If there is no `CUE-IN` tag, MediaTailor doesn't emit this metric. **Dimensions:** `ConfigurationName` +`Avail.ObservedSlateDuration` | The observed total number of milliseconds of slate that was inserted within the CloudWatch period. **Dimensions:** `ConfigurationName` +`GetManifest.Age` | The total age of the manifest in milliseconds. Measured from when the origin creates the manifest, to when MediaTailor sends the personalized manifest. For more information about metrics for measuring manifest age, see [Using metrics to diagnose stale manifests](./stale-manifest-diagnose.html). **Dimensions:** `ConfigurationName` +`GetManifest.Errors` | The number of errors received while MediaTailor was generating manifests in the CloudWatch time period that you specified. **Dimensions:** `ConfigurationName` +`GetManifest.Latency` | The MediaTailor response time in milliseconds for the request to generate manifests. For more information about metrics for measuring manifest age, see [Using metrics to diagnose stale manifests](./stale-manifest-diagnose.html). **Dimensions:** `ConfigurationName` +`GetManifest.MediaTailorAge` | The amount of time that the manifest has been stored in MediaTailor in milliseconds. Measured from when MediaTailor receives an origin response, to when MediaTailor sends the personalized manifest. For more information about metrics for measuring manifest age, see [Using metrics to diagnose stale manifests](./stale-manifest-diagnose.html). **Dimensions:** `ConfigurationName` +`Origin.Age` | The amount of time that the origin has the manifest in milliseconds. Measured from when the origin creates the manifest, to when MediaTailor sends the origin request. All `origin.*` metrics are emitted for requests that are fulfilled directly from the origin. They are not emitted for cached origin responses. For more information about metrics for measuring manifest age, see [Using metrics to diagnose stale manifests](./stale-manifest-diagnose.html). **Dimensions:** `ConfigurationName` +`Origin.Errors` | The number of non-HTTP 200 status code responses and timed-out responses that MediaTailor received from the origin server in the CloudWatch time period that you specified. All `origin.*` metrics are emitted for requests that are fulfilled directly from the origin. They are not emitted for cached origin responses. **Dimensions:** `ConfigurationName` +`Origin.ManifestFileSizeBytes` | The file size of the origin manifest in bytes for both HLS and DASH. Typically this metric is used in conjunction with `Origin.ManifestFileSizeTooLarge`. All `origin.*` metrics are emitted for requests that are fulfilled directly from the origin. They are not emitted for cached origin responses. **Dimensions:** `ConfigurationName` +`Origin.ManifestFileSizeTooLarge` | The number of responses from the origin that have a manifest size larger than the configured amount. Typically this metric is used in conjunction with `Origin.ManifestFileSizeBytes`. All `origin.*` metrics are emitted for requests that are fulfilled directly from the origin. They are not emitted for cached origin responses. **Dimensions:** `ConfigurationName` +`Origin.Timeouts` | The number of timed-out requests to the origin server in the CloudWatch time period that you specified. All `origin.*` metrics are emitted for requests that are fulfilled directly from the origin. They are not emitted for cached origin responses. **Dimensions:** `ConfigurationName` +`Requests` | The number of concurrent transactions per second across all request types. The transaction count depends mainly on the number of players and how often the players request updated manifests. Each player request counts as a transaction. **Dimensions:** + + * `ConfigurationName` + * Account-level (no dimensions) + + +`SkippedReason.DurationExceeded` | The number of ads that were not inserted into an avail because the ADS returned a duration of ads that was greater than the specified avail duration. A high value for this metric might contribute to a discrepancy between the `AdsBilled` and `AdDecisionServer.Ads` metrics. For more information about ad skipped reasons, see [Ad skipping troubleshooting](./troubleshooting-ad-skipping-overview.html). **Dimensions:** `ConfigurationName` +`SkippedReason.EarlyCueIn` | The number of ads skipped due to an early `CUE-IN`. **Dimensions:** `ConfigurationName` +`SkippedReason.ImportError` | The number of ads skipped due to an error in the import job. **Dimensions:** `ConfigurationName` +`SkippedReason.ImportInProgress` | The number of ads skipped due to an existing active import job. **Dimensions:** `ConfigurationName` +`SkippedReason.InternalError` | The number of ads skipped due to a MediaTailor internal error. **Dimensions:** `ConfigurationName` +`SkippedReason.NewCreative` | The number of ads that were not inserted into an avail because it was the first time the asset had been requested by a client. A high value for this metric might temporarily contribute to a low overall `Avail.FillRate`, until assets can be successfully transcoded. **Dimensions:** `ConfigurationName` +`SkippedReason.NoVariantMatch` | The number of ads skipped due to there being no variant match between the ad and content. **Dimensions:** `ConfigurationName` +`SkippedReason.PersonalizationThresholdExceeded` | The duration of ads exceeding the **Personalization Threshold** setting in this configuration. **Dimensions:** `ConfigurationName` +`SkippedReason.ProfileNotFound` | The number of ads skipped due to the transcoding profile not being found. **Dimensions:** `ConfigurationName` +`SkippedReason.TranscodeError` | The number of ads skipped due to a transcode error. **Dimensions:** `ConfigurationName` +`SkippedReason.TranscodeInProgress` | The count of the number of ads that were not inserted into an avail because the ad had not yet been transcoded. A high value for this metric might temporarily contribute to a low overall `Avail.FillRate`, until the assets can be successfully transcoded. **Dimensions:** `ConfigurationName` @@ -123,6 +159,6 @@ Metric | Description -`PreSessionInitHook.Invocations` | The number of times the pre-session initialization hook was invoked. -`PreSessionInitHook.Errors` | The number of pre-session initialization hook executions that resulted in an error. -`PreSessionInitHook.Latency` | The execution time in milliseconds for the pre-session initialization hook. -`PreAdsRequestHook.Invocations` | The number of times the pre-ads request hook was invoked. -`PreAdsRequestHook.Errors` | The number of pre-ads request hook executions that resulted in an error. -`PreAdsRequestHook.Latency` | The execution time in milliseconds for the pre-ads request hook. +`PreSessionInitHook.Invocations` | The number of times the pre-session initialization hook was invoked. **Dimensions:** `ConfigurationName` +`PreSessionInitHook.Errors` | The number of pre-session initialization hook executions that resulted in an error. **Dimensions:** `ConfigurationName` +`PreSessionInitHook.Latency` | The execution time in milliseconds for the pre-session initialization hook. **Dimensions:** `ConfigurationName` +`PreAdsRequestHook.Invocations` | The number of times the pre-ads request hook was invoked. **Dimensions:** `ConfigurationName` +`PreAdsRequestHook.Errors` | The number of pre-ads request hook executions that resulted in an error. **Dimensions:** `ConfigurationName` +`PreAdsRequestHook.Latency` | The execution time in milliseconds for the pre-ads request hook. **Dimensions:** `ConfigurationName` @@ -134,3 +170,18 @@ Metric | Description -`Function.Invocations` | The number of times an individual function was executed. -`Function.Errors` | The number of individual function executions that resulted in an error. -`Function.Latency` | The execution time in milliseconds for an individual function. +`Function.Invocations` | The number of times an individual function was executed. **Dimensions:** + + * `ConfigurationName` + * `ConfigurationName`, `FunctionId`, `FunctionType`, `HookType` + + +`Function.Errors` | The number of individual function executions that resulted in an error. **Dimensions:** + + * `ConfigurationName` + * `ConfigurationName`, `FunctionId`, `FunctionType`, `HookType` + + +`Function.Latency` | The execution time in milliseconds for an individual function. **Dimensions:** + + * `ConfigurationName` + * `ConfigurationName`, `FunctionId`, `FunctionType`, `HookType` + +