使用 Amazon Kinesis Video Streams 监控指标 CloudWatch - Amazon Kinesis Video Streams

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

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

单位:计数

GetMediaForFragmentList.OutgoingBytes

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

单位:字节

GetMediaForFragmentList.OutgoingFragments

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

单位:计数

GetMediaForFragmentList.OutgoingFrames

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

单位:计数

GetMediaForFragmentList.Requests

给定直播GetMediaForFragmentList的 API 请求数。

单位:计数

GetMediaForFragmentList.Success

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

注意

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

单位:计数

ListFragments.Latency

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

单位:毫秒

ListFragments.Requests

给定直播ListFragments的 API 请求数。

单位:计数

ListFragments.Success

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

注意

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

单位:计数

GetHLSStreamingSessionURL.Latency

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

单位:毫秒

GetHLSStreamingSessionURL.Requests

给定直播GetHLSStreamingSessionURL的 API 请求数。

单位:计数

GetHLSStreamingSessionURL.Success

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

注意

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

单位:计数

GetHLSMasterPlaylist.Latency

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

单位:毫秒

GetHLSMasterPlaylist.Requests

给定直播GetHLSMasterPlaylist的 API 请求数。

单位:计数

GetHLSMasterPlaylist.Success

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

注意

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

单位:计数

GetHLSMediaPlaylist.Latency

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

单位:毫秒

GetHLSMediaPlaylist.Requests

给定直播GetHLSMediaPlaylist的 API 请求数。

单位:计数

GetHLSMediaPlaylist.Success

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

注意

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

单位:计数

GetMP4InitFragment.Latency

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

单位:毫秒

GetMP4InitFragment.Requests

给定直播GetMP4InitFragment的 API 请求数。

单位:计数

GetMP4InitFragment.Success

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

注意

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

单位:计数

GetMP4MediaFragment.Latency

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

单位:毫秒

GetMP4MediaFragment.Requests

给定直播GetMP4MediaFragment的 API 请求数。

单位:计数

GetMP4MediaFragment.Success

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

注意

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

单位:计数

GetMP4MediaFragment.OutgoingBytes

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

单位:字节

GetTSFragment.Latency

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

单位:毫秒

GetTSFragment.Requests

给定直播GetTSFragment的 API 请求数。

单位:计数

GetTSFragment.Success

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

注意

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

单位:计数

GetTSFragment.OutgoingBytes

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

单位:字节

GetDASHStreamingSessionURL.Latency

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

单位:毫秒

GetDASHStreamingSessionURL.Requests

给定直播GetDASHStreamingSessionURL的 API 请求数。

单位:计数

GetDASHStreamingSessionURL.Success

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

注意

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

单位:计数

GetDASHManifest.Latency

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

单位:毫秒

GetDASHManifest.Requests

给定直播GetDASHManifest的 API 请求数。

单位:计数

GetDASHManifest.Success

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

注意

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

单位:计数

GetClip.Latency

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

单位:毫秒

GetClip.Requests

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

单位:计数

GetClip.Success

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

注意

故障包含 400(用户)错误和 500(系统)错误。有关启用请求和响应摘要(包括 AWS 请求 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,则可能是由于服务无法将数据发送给消费者。如果情况持续很长时间,请咨询您的客户服务联系人,看看您的服务是否存在问题。