View a markdown version of this page

使用以下方式监控 Amazon Kinesis 视频流指标 CloudWatch - Amazon Kinesis Video Streams

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

使用以下方式监控 Amazon Kinesis 视频流指标 CloudWatch

您可以使用亚马逊监控 Kinesis 视频流 CloudWatch,亚马逊收集来自亚马逊 Kinesis Video Streams 的原始数据并将其处理为可读的近乎实时的指标。这些统计数据记录的时间为 15 个月,因此您可以访问历史信息,更好地了解您的 Web 应用程序或服务的性能。

亚马逊 Kinesis 视频流控制台中,您可以通过两种 CloudWatch 方式查看亚马逊 Kinesis 视频流的指标:

  • 在 “控制面板” 页面中,选择 “当前区域Account-level 指标” 部分中的 “视频流” 选项卡。

  • 在视频流的详细信息页面中,选择 Monitoring (监控) 选项卡。

亚马逊 Kinesis Video Streams 提供以下指标:

指标 说明
ArchivedFragmentsConsumed.Media 所有 API 消耗的片段媒体配额点的数量。有关配额积分概念的解释,请参阅Fragment-metadata 和片段媒体配额

单位:计数

ArchivedFragmentsConsumed.Metadata 所有 API 消耗的片段元数据配额点的数量。有关配额积分概念的解释,请参阅Fragment-metadata 和片段媒体配额

单位:计数

PutMedia.Requests

给定流PutMedia的 API 请求数。

单位:计数

PutMedia.IncomingBytes

作为流的一部分接收PutMedia的字节数。

单位:字节

PutMedia.IncomingFragments

作为直播的一部分收到的完整片段PutMedia的数量。

单位:计数

PutMedia.IncomingFrames

作为流的一部分收到PutMedia的完整帧数。

单位:计数

PutMedia.ActiveConnections

与服务主机的连接总数。

单位:计数

PutMedia.ConnectionErrors

为直播建立PutMedia连接时出现错误。

单位:计数

PutMedia.FragmentIngestionLatency

亚马逊 Kinesis Video Streams 接收片段的第一个字节和最后一个字节的时间差。

单位:毫秒

PutMedia.FragmentPersistLatency

从接收和存档完整片段数据起所花费的时间。

单位:计数

PutMedia.Latency

建立连接时请求和来自 InletService 的 HTTP 响应之间的时间差。

单位:计数

PutMedia.BufferingAckLatency

Amazon Kinesis Video Streams 收到新片段的第一个字节与发送该片段的缓冲 ACK 之间的时间差。

单位:毫秒

PutMedia.ReceivedAckLatency

Amazon Kinesis Video Streams 接收新片段的最后一个字节与发送该片段收到的 ACK 之间的时间差。

单位:毫秒

PutMedia.PersistedAckLatency

Amazon Kinesis Video Streams 收到新片段的最后一个字节的时间与发送该片段的持久化 ACK 之间的时间差。

单位:毫秒

PutMedia.ErrorAckCount

在进行直播时发送的错误 AC PutMedia K 的数量。

单位:计数

PutMedia.Success

成功写入的每个片段为 1;每个失败的片段为 0。该指标的平均值表示发送的完整有效片段数。

单位:计数

GetMedia.Requests

给定流GetMedia的 API 请求数。

单位:计数

GetMedia.OutgoingBytes

作为给定流的 GetMedia API 的一部分从服务发出的总字节数。

单位:字节

GetMedia.OutgoingFragments

在进行直播时发送GetMedia的片段数量。

单位:计数

GetMedia.OutgoingFrames

在给定流中发送GetMedia的帧数。

单位:计数

GetMedia.MillisBehindNow

当前服务器时间戳与上次发送片段的服务器时间戳之间的时间差。

单位:毫秒

GetMedia.ConnectionErrors

未成功建立的连接数。

单位:计数

GetMedia.Success

每个成功发送的片段为 1;每个失败的片段为 0。平均值表示成功率。

注意

故障包含 400(用户)错误和 500(系统)错误。有关启用请求和响应摘要(包括 AWS 请求 ID)的更多信息,请参阅Request/Response 摘要日志

单位:计数

GetMediaForFragmentList.OutgoingBytes

作为给定流的 GetMediaForFragmentList API 的一部分从服务发出的总字节数。

单位:字节

GetMediaForFragmentList.OutgoingFragments

作为 GetMediaForFragmentList API 的一部分从服务发出的片段总数,用于给定流。

单位:计数

GetMediaForFragmentList.OutgoingFrames

作为 GetMediaForFragmentList API 的一部分从服务发出的帧总数,用于给定流。

单位:计数

GetMediaForFragmentList.Requests

给定流GetMediaForFragmentList的 API 请求数。

单位:计数

GetMediaForFragmentList.Success

每个成功发送的片段为 1;每个失败的片段为 0。平均值表示成功率。

注意

故障包含 400(用户)错误和 500(系统)错误。有关启用请求和响应摘要(包括 AWS 请求 ID)的更多信息,请参阅Request/Response 摘要日志

单位:计数

ListFragments.Latency

ListFragmentsAPI 的延迟调用给定的直播名称。

单位:毫秒

ListFragments.Requests

给定流ListFragments的 API 请求数。

单位:计数

ListFragments.Success

每个成功的请求为 1;每个失败的请求为 0。平均值表示成功率。

注意

故障包含 400(用户)错误和 500(系统)错误。有关启用请求和响应摘要(包括 AWS 请求 ID)的更多信息,请参阅Request/Response 摘要日志

单位:计数

GetHLSStreamingSessionURL.Latency

GetHLSStreamingSessionURLAPI 的延迟调用给定的直播名称。

单位:毫秒

GetHLSStreamingSessionURL.Requests

给定流GetHLSStreamingSessionURL的 API 请求数。

单位:计数

GetHLSStreamingSessionURL.Success

每个成功的请求为 1;每个失败的请求为 0。平均值表示成功率。

注意

故障包含 400(用户)错误和 500(系统)错误。有关启用请求和响应摘要(包括 AWS 请求 ID)的更多信息,请参阅Request/Response 摘要日志

单位:计数

GetHLSMasterPlaylist.Latency

GetHLSMasterPlaylistAPI 的延迟调用给定的直播名称。

单位:毫秒

GetHLSMasterPlaylist.Requests

给定流GetHLSMasterPlaylist的 API 请求数。

单位:计数

GetHLSMasterPlaylist.Success

每个成功的请求为 1;每个失败的请求为 0。平均值表示成功率。

注意

故障包含 400(用户)错误和 500(系统)错误。有关启用请求和响应摘要(包括 AWS 请求 ID)的更多信息,请参阅Request/Response 摘要日志

单位:计数

GetHLSMediaPlaylist.Latency

GetHLSMediaPlaylistAPI 的延迟调用给定的直播名称。

单位:毫秒

GetHLSMediaPlaylist.Requests

给定流GetHLSMediaPlaylist的 API 请求数。

单位:计数

GetHLSMediaPlaylist.Success

每个成功的请求为 1;每个失败的请求为 0。平均值表示成功率。

注意

故障包含 400(用户)错误和 500(系统)错误。有关启用请求和响应摘要(包括 AWS 请求 ID)的更多信息,请参阅Request/Response 摘要日志

单位:计数

GetMP4InitFragment.Latency

GetMP4InitFragmentAPI 的延迟调用给定的直播名称。

单位:毫秒

GetMP4InitFragment.Requests

给定流GetMP4InitFragment的 API 请求数。

单位:计数

GetMP4InitFragment.Success

每个成功的请求为 1;每个失败的请求为 0。平均值表示成功率。

注意

故障包含 400(用户)错误和 500(系统)错误。有关启用请求和响应摘要(包括 AWS 请求 ID)的更多信息,请参阅Request/Response 摘要日志

单位:计数

GetMP4MediaFragment.Latency

GetMP4MediaFragmentAPI 的延迟调用给定的直播名称。

单位:毫秒

GetMP4MediaFragment.Requests

给定流GetMP4MediaFragment的 API 请求数。

单位:计数

GetMP4MediaFragment.Success

每个成功的请求为 1;每个失败的请求为 0。平均值表示成功率。

注意

故障包含 400(用户)错误和 500(系统)错误。有关启用请求和响应摘要(包括 AWS 请求 ID)的更多信息,请参阅Request/Response 摘要日志

单位:计数

GetMP4MediaFragment.OutgoingBytes

作为给定流的 GetMP4MediaFragment API 的一部分从服务发出的总字节数。

单位:字节

GetTSFragment.Latency

GetTSFragmentAPI 的延迟调用给定的直播名称。

单位:毫秒

GetTSFragment.Requests

给定流GetTSFragment的 API 请求数。

单位:计数

GetTSFragment.Success

每个成功的请求为 1;每个失败的请求为 0。平均值表示成功率。

注意

故障包含 400(用户)错误和 500(系统)错误。有关启用请求和响应摘要(包括 AWS 请求 ID)的更多信息,请参阅Request/Response 摘要日志

单位:计数

GetTSFragment.OutgoingBytes

作为给定流的 GetTSFragment API 的一部分从服务发出的总字节数。

单位:字节

GetDASHStreamingSessionURL.Latency

GetDASHStreamingSessionURLAPI 的延迟调用给定的直播名称。

单位:毫秒

GetDASHStreamingSessionURL.Requests

给定流GetDASHStreamingSessionURL的 API 请求数。

单位:计数

GetDASHStreamingSessionURL.Success

每个成功的请求为 1;每个失败的请求为 0。平均值表示成功率。

注意

故障包含 400(用户)错误和 500(系统)错误。有关启用请求和响应摘要(包括 AWS 请求 ID)的更多信息,请参阅Request/Response 摘要日志

单位:计数

GetDASHManifest.Latency

GetDASHManifestAPI 的延迟调用给定的直播名称。

单位:毫秒

GetDASHManifest.Requests

给定流GetDASHManifest的 API 请求数。

单位:计数

GetDASHManifest.Success

每个成功的请求为 1;每个失败的请求为 0。平均值表示成功率。

注意

故障包含 400(用户)错误和 500(系统)错误。有关启用请求和响应摘要(包括 AWS 请求 ID)的更多信息,请参阅Request/Response 摘要日志

单位:计数

GetClip.Latency

GetClip API 的延迟调用给定的视频流名称。

单位:毫秒

GetClip.Requests

对给定视频流 GetClip 的 API 请求数量。

单位:计数

GetClip.Success

每个成功的请求为 1;每个失败的请求为 0。平均值表示成功率。

注意

故障包含 400(用户)错误和 500(系统)错误。有关启用请求和响应摘要(包括 AWS 请求 ID)的更多信息,请参阅Request/Response 摘要日志

单位:计数

GetClip.OutgoingBytes

作为 GetClip API 的一部分从服务发出的总字节数,用于给定视频流。

单位:字节

CloudWatch 指标指导

CloudWatch 指标可以帮助找到以下问题的答案:

数据是否已到达亚马逊 Kinesis Video Streams 服务?

相关指标:

  • PutMedia.IncomingBytes

  • PutMedia.IncomingFragments

  • PutMedia.IncomingFrames

操作项:

  • 如果这些指标有所下降,请检查您的应用程序是否仍在向该服务发送数据。

  • 检查网络带宽。如果您的网络带宽不足,可能会降低服务接收数据的速率。

为什么 Amazon Kinesis Video Streams 服务无法成功摄取数据?

相关指标:

  • PutMedia.Requests

  • PutMedia.ConnectionErrors

  • PutMedia.Success

  • PutMedia.ErrorAckCount

操作项:

  • 如果数量增加PutMedia.ConnectionErrors,请查看生产者客户端收到的 HTTP 响应和错误代码,看看在建立连接时发生了什么错误。

  • 如果出现下降PutMedia.Success或增加PutMedia.ErrorAckCount,请查看服务发送的 ack 响应中的 ack 错误代码,了解数据摄取失败的原因。有关更多信息,请参阅 AckErrorCode.Values

为什么从亚马逊 Kinesis Video Streams 服务读取数据的速度不能与制作人发送数据的速率相同?

相关指标:

  • PutMedia.FragmentIngestionLatency

  • PutMedia.IncomingBytes

操作项:

  • 如果这些指标有所下降,请检查您的连接的网络带宽。 Low-bandwidth 连接可能会导致数据以较低的速率到达服务。

为什么控制台中没有视频,或者为什么视频播放出现延迟?

相关指标:

  • PutMedia.FragmentIngestionLatency

  • PutMedia.FragmentPersistLatency

  • PutMedia.Success

  • ListFragments.Latency

  • PutMedia.IncomingFragments

操作项:

  • 如果增加PutMedia.FragmentIngestionLatency或减少PutMedia.IncomingFragments,请检查网络带宽以及数据是否仍在发送中。

  • 如果出现漏洞PutMedia.Success,请检查 ack 错误代码。有关更多信息,请参阅 AckErrorCode.Values

  • 如果PutMedia.FragmentPersistLatency或有所增加ListFragments.Latency,则您很可能遇到了服务问题。如果这种情况持续了很长时间,请咨询您的客户服务联系人,看看您的服务是否存在问题。

什么是实时数据读取延迟,以及为何客户端会滞后于流头?

相关指标:

  • GetMedia.MillisBehindNow

  • GetMedia.ConnectionErrors

  • GetMedia.Success

操作项:

  • 如果数量增加GetMedia.ConnectionErrors,则由于经常尝试重新连接直播,消费者可能会在阅读直播方面落后。查看为GetMedia请求返回 response/error 的 HTTP 代码。

  • 如果出现中断GetMedia.Success,则可能是由于该服务无法将数据发送给消费者,这将导致连接中断,以及消费者的重新连接,这将导致消费者落后于主流。

  • 如果有增加GetMedia.MillisBehindNow,请查看您的带宽限制,看看您的数据接收速度是否因为带宽降低而变慢。

客户是否正在从 Kinesis 视频流中读取数据,速度如何?

相关指标:

  • GetMedia.OutgoingBytes

  • GetMedia.OutgoingFragments

  • GetMedia.OutgoingFrames

  • GetMediaForFragmentList.OutgoingBytes

  • GetMediaForFragmentList.OutgoingFragments

  • GetMediaForFragmentList.OutgoingFrames

操作项:

  • 这些指标表示读取实时和存档数据的速率。

为什么客户无法从 Kinesis 视频流中读取数据?

相关指标:

  • GetMedia.ConnectionErrors

  • GetMedia.Success

  • GetMediaForFragmentList.Success

  • PutMedia.IncomingBytes

操作项:

  • 如果数量增加GetMedia.ConnectionErrors,请查看GetMedia请求返回的 HTTP 响应和错误代码。有关更多信息,请参阅 AckErrorCode.Values

  • 如果你想读取最新的或实时的数据,PutMedia.IncomingBytes请检查是否有数据流入数据流,供该服务发送给消费者。

  • 如果GetMedia.Success或有所下降GetMediaForFragmentList.Success,则可能是由于该服务无法将数据发送给消费者。如果这种情况持续了很长时间,请咨询您的客户服务联系人,看看您的服务是否存在问题。