使用以下方式监控 Amazon Kinesis Video Streams 指标 CloudWatch - Amazon Kinesis Video Streams
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用以下方式监控 Amazon Kinesis Video Streams 指标 CloudWatch

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

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

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

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

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

指标 描述
ArchivedFragmentsConsumed.Media 所有 API 消耗的片段媒体配额点数。有关配额积分概念的解释,请参阅片段元数据和片段媒体配额

单位:计数

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

单位:计数

PutMedia.Requests

给定直播PutMedia的 API 请求数。

单位:计数

PutMedia.IncomingBytes

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

单位:字节

PutMedia.IncomingFragments

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

单位:计数

PutMedia.IncomingFrames

作为直播一部分接收PutMedia的完整帧数。

单位:计数

PutMedia.ActiveConnections

与服务主机的连接总数。

单位:计数

PutMedia.ConnectionErrors

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

单位:计数

PutMedia.FragmentIngestionLatency

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

单位:毫秒

PutMedia.FragmentPersistLatency

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

单位:计数

PutMedia.Latency

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

单位:计数

PutMedia.BufferingAckLatency

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

单位:毫秒

PutMedia.ReceivedAckLatency

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

单位:毫秒

PutMedia.PersistedAckLatency

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

单位:毫秒

PutMedia.ErrorAckCount

在直播中发送的错误 ACK PutMedia 的数量。

单位:计数

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(系统)错误。有关启用请求和响应摘要(包括 Amazon 请求 ID)的更多信息,请参阅请求/响应摘要记录

单位:计数

GetMediaForFragmentList.OutgoingBytes

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

单位:字节

GetMediaForFragmentList.OutgoingFragments

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

单位:计数

GetMediaForFragmentList.OutgoingFrames

作为给定流的 GetMediaForFragmentList API 的一部分从服务发送的帧总数。

单位:计数

GetMediaForFragmentList.Requests

给定直播GetMediaForFragmentList的 API 请求数。

单位:计数

GetMediaForFragmentList.Success

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

注意

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

单位:计数

ListFragments.Latency

ListFragmentsAPI 的延迟需要给定的直播名称。

单位:毫秒

ListFragments.Requests

给定直播ListFragments的 API 请求数。

单位:计数

ListFragments.Success

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

注意

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

单位:计数

GetHLSStreamingSessionURL.Latency

GetHLSStreamingSessionURLAPI 的延迟需要给定的直播名称。

单位:毫秒

GetHLSStreamingSessionURL.Requests

给定直播GetHLSStreamingSessionURL的 API 请求数。

单位:计数

GetHLSStreamingSessionURL.Success

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

注意

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

单位:计数

GetHLSMasterPlaylist.Latency

GetHLSMasterPlaylistAPI 的延迟需要给定的直播名称。

单位:毫秒

GetHLSMasterPlaylist.Requests

给定直播GetHLSMasterPlaylist的 API 请求数。

单位:计数

GetHLSMasterPlaylist.Success

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

注意

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

单位:计数

GetHLSMediaPlaylist.Latency

GetHLSMediaPlaylistAPI 的延迟需要给定的直播名称。

单位:毫秒

GetHLSMediaPlaylist.Requests

给定直播GetHLSMediaPlaylist的 API 请求数。

单位:计数

GetHLSMediaPlaylist.Success

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

注意

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

单位:计数

GetMP4InitFragment.Latency

GetMP4InitFragmentAPI 的延迟需要给定的直播名称。

单位:毫秒

GetMP4InitFragment.Requests

给定直播GetMP4InitFragment的 API 请求数。

单位:计数

GetMP4InitFragment.Success

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

注意

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

单位:计数

GetMP4MediaFragment.Latency

GetMP4MediaFragmentAPI 的延迟需要给定的直播名称。

单位:毫秒

GetMP4MediaFragment.Requests

给定直播GetMP4MediaFragment的 API 请求数。

单位:计数

GetMP4MediaFragment.Success

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

注意

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

单位:计数

GetMP4MediaFragment.OutgoingBytes

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

单位:字节

GetTSFragment.Latency

GetTSFragmentAPI 的延迟需要给定的直播名称。

单位:毫秒

GetTSFragment.Requests

给定直播GetTSFragment的 API 请求数。

单位:计数

GetTSFragment.Success

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

注意

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

单位:计数

GetTSFragment.OutgoingBytes

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

单位:字节

GetDASHStreamingSessionURL.Latency

GetDASHStreamingSessionURLAPI 的延迟需要给定的直播名称。

单位:毫秒

GetDASHStreamingSessionURL.Requests

给定直播GetDASHStreamingSessionURL的 API 请求数。

单位:计数

GetDASHStreamingSessionURL.Success

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

注意

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

单位:计数

GetDASHManifest.Latency

GetDASHManifestAPI 的延迟需要给定的直播名称。

单位:毫秒

GetDASHManifest.Requests

给定直播GetDASHManifest的 API 请求数。

单位:计数

GetDASHManifest.Success

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

注意

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

单位:计数

GetClip.Latency

GetClip API 的延迟需要给定的视频流名称。

单位:毫秒

GetClip.Requests

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

单位:计数

GetClip.Success

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

注意

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

单位:计数

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。

为什么从 Amazon Kinesis Video Streams 服务读取数据的速率不能与从制作者发送的数据的速率相同?

相关指标:

  • PutMedia.FragmentIngestionLatency

  • PutMedia.IncomingBytes

操作项:

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

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

相关指标:

  • 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 请求所返回的 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.SuccessGetMediaForFragmentList.Success,则可能是由于服务无法将数据发送给消费者。如果这种情况持续很长时间,请咨询您的客户服务联系人,看看您的服务是否存在问题。