使用以下方式监控亚马逊 DocumentDB CloudWatch - Amazon DocumentDB

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

使用以下方式监控亚马逊 DocumentDB CloudWatch

Amazon DocumentDB(兼容 MongoDB)与亚马逊集成, CloudWatch 因此您可以收集和分析集群的运行指标。您可以使用 CloudWatch 控制台、Amazon DocumentDB 控制台、 AWS Command Line Interface (AWS CLI) 或 API 来监控这些指标。 CloudWatch

CloudWatch 还允许您设置警报,以便在指标值违反您指定的阈值时收到通知。您甚至可以设置 Amazon Ev CloudWatch ents,以便在发生违规行为时采取纠正措施。有关使用 CloudWatch 和警报的更多信息,请参阅 Amazon CloudWatch 文档

Amazon DocumentDB 指标

要监控 Amazon DocumentDB 集群和实例的运行状况和性能,您可以在 Amazon DocumentDB 控制台中查看以下指标。

注意

下表中的指标适用于基于实例的集群和弹性集群。

资源利用率指标

指标 描述
BackupRetentionPeriodStorageUsed 在 Amazon DocumentDB 的保留期内,用于支持 point-in-time还原功能的备份存储总量(以字节为单位)。包含在 TotalBackupStorageBilled 指标报告的总数中。针对每个 Amazon DocumentDB 集群单独计算。
ChangeStreamLogSize 集群用于存储变更流日志的存储量(以兆字节为单位)。此值是集群总存储量的子集 (VolumeBytesUsed),将影响集群的成本。有关存储定价信息,请参阅 Amazon DocumentDB 产品页面。变更流日志大小取决于集群上发生了多少更改以及变更流日志的保留时间。有关变更流的更多信息,请参阅将变更流与 Amazon DocumentDB 结合使用
CPUUtilization 实例占用的 CPU 百分比。
DatabaseConnections 以 1 分钟为频率在实例上打开的连接数。
DatabaseConnectionsMax 1 分钟内实例上打开的最大数据库连接数。
DatabaseCursors 在以 1 分钟频率拍摄的实例上打开的游标数。
DatabaseCursorsMax 1 分钟内实例上打开的最大游标数。
DatabaseCursorsTimedOut 在 1 分钟内超时的游标数量。
FreeableMemory 随机存取内存的可用量 (以字节为单位)。
FreeLocalStorage

此指标报告每个实例中可用于临时表和日志的存储量。此值取决于实例类。您可通过为实例选择较大的实例类来增加对实例可用的存储空间量。

LowMemThrottleQueueDepth

由于可用内存不足而受到限制的请求的队列深度,频率为 1 分钟。

LowMemThrottleMaxQueueDepth

1 分钟内由于可用内存不足而受到限制的请求的最大队列深度。

LowMemNumOperationsThrottled

1 分钟内由于可用内存不足而受到限制的请求数。

SnapshotStorageUsed 给定 Amazon DocumentDB 集群在备份保留期之外的所有快照消耗的备份存储总量(以字节为单位)。包含在 TotalBackupStorageBilled 指标报告的总数中。针对每个 Amazon DocumentDB 集群单独计算。
SwapUsage 实例上使用的交换空间的大小。
TotalBackupStorageBilled 您为给定的 Amazon DocumentDB 集群计费的备份存储总量(以字节为单位)。包含由 BackupRetentionPeriodStorageUsedSnapshotStorageUsed 指标度量的备份存储。针对每个 Amazon DocumentDB 集群单独计算。
TransactionsOpen 以 1 分钟为频率在实例上打开的交易数量。
TransactionsOpenMax 1 分钟内在实例上打开的最大交易数量。
VolumeBytesUsed 您的集群使用的存储量(以字节为单位)。此值将影响集群的成本。有关定价信息,请参阅 Amazon DocumentDB 定价页面

延迟指标

指标 描述
DBClusterReplicaLagMaximum 数据库集群中主实例和每个 Amazon DocumentDB 实例之间的最大滞后量(以毫秒为单位)。
DBClusterReplicaLagMinimum 集群中主实例和每个副本实例之间的最小滞后量(以毫秒为单位)。
DBInstanceReplicaLag 在从主实例向副本实例复制更新时的滞后总量(以毫秒为单位)。
ReadLatency 每个磁盘 I/O 操作所需的平均时间。
WriteLatency 每个磁盘 I/O 操作所需的平均时间(以毫秒为单位)。

NVMe支持的实例指标

指标 描述
NVMeStorageCacheHitRatio 由分层缓存处理的请求的百分比。
FreeNVMeStorage 可用的临时存储 NVMe 量。
ReadIOPSNVMeStorage 对临时 NVMe 存储进行磁盘读取 I/O 操作的平均次数。
ReadLatencyNVMeStorage 临时 NVMe 存储每次磁盘读取 I/O 操作所花费的平均时间。
ReadThroughputNVMeStorage 临时 NVMe 存储每秒从磁盘读取的平均字节数。
WriteIOPSNVMeStorage 磁盘向临时 NVMe 存储写入 I/O 操作的平均次数。
WriteLatencyNVMeStorage 临时 NVMe 存储每次磁盘写入 I/O 操作所花费的平均时间。
WriteThroughputNVMeStorage 临时 NVMe 存储每秒写入磁盘的平均字节数。

操作指标

指标 描述
DocumentsDeleted 1 分钟内删除的文档数。
DocumentsInserted 1 分钟内插入的文档数。
DocumentsReturned 1 分钟内返回的文档数量。
DocumentsUpdated 1 分钟内更新的文档数量。
OpcountersCommand 在 1 分钟内发出的命令数。
OpcountersDelete 1 分钟内发出的删除操作数。
OpcountersGetmore 在 1 分钟内发布的 getmore 数量。
OpcountersInsert 在 1 分钟内发出的插入操作数。
OpcountersQuery 在 1 分钟内发出的查询数。
OpcountersUpdate 在 1 分钟内发出的更新操作数。
TransactionsStarted 1 分钟内在实例上启动的交易数量。
TransactionsCommitted 1 分钟内在实例上提交的交易数量。
TransactionsAborted 1 分钟内实例上中止的事务数量。
TTLDeletedDocuments 在 1 分钟内被删除 TTLMonitor 的文档数。

吞吐量指标

指标 描述
NetworkReceiveThroughput 集群中每个实例从客户端接收的网络吞吐量(以每秒字节数为单位)。此吞吐量不包括集群中的实例与集群卷之间的网络流量。
NetworkThroughput Amazon DocumentDB 集群中每个实例从客户端接收和发送到客户端的网络吞吐量(以每秒字节数为单位)。此吞吐量不包括集群中的实例与集群卷之间的网络流量。
NetworkTransmitThroughput 集群中每个实例发送到客户端的网络吞吐量(以每秒字节数为单位)。此吞吐量不包括集群中的实例与集群卷之间的网络流量。
ReadIOPS 每秒平均磁盘读取 I/O 操作数。Amazon DocumentDB 报告每隔 1 分钟分别读取和写入 IOPS。
ReadThroughput 每秒从磁盘读取的平均字节数。
StorageNetworkReceiveThroughput 集群中每个实例从 Amazon DocumentDB 集群存储卷接收的网络吞吐量(以每秒字节数为单位)。
StorageNetworkTransmitThroughput 集群中每个实例发送到 Amazon DocumentDB 集群存储卷的网络吞吐量(以每秒字节数为单位)。
StorageNetworkThroughput Amazon DocumentDB 集群中每个实例接收自和发送到 Amazon DocumentDB 集群存储卷的网络吞吐量(以每秒字节数为单位)。
VolumeReadIOPs

集群卷中计费读取 I/O 操作的平均数量,每隔 5 分钟报告一次。计费读取操作数是在集群卷级别计算的,由集群中的所有实例聚合而来,然后每隔 5 分钟报告一次。此值是通过采用 5 分钟以上的读取操作数指标的值计算得来的。您可通过采用计费读取操作数指标的值并除以 300 秒来确定每秒的计费读取操作数。

例如,如果 VolumeReadIOPs 返回 13,686,则每秒的计费读取操作数为 45 (13,686 / 300 = 45.62)。

您累积请求不在缓冲区缓存中因而必须从存储加载的数据库页的查询的计费读取操作数。您可能看到计费读取操作数出现峰值,因为查询结果是从存储中读取然后加载到缓冲区缓存中的。

VolumeWriteIOPs

集群卷中计费写入 I/O 操作的平均数量,每隔 5 分钟报告一次。计费写入操作数是在集群卷级别计算的,由集群中的所有实例聚合而来,然后每隔 5 分钟报告一次。此值是通过采用 5 分钟以上的写入操作数指标的值计算得来的。您可通过采用计费写入操作数指标的值并除以 300 秒来确定每秒的计费写入操作数。

例如,如果 VolumeWriteIOPs 返回 13686,则每秒的计费写入操作数为 45 (13686 / 300 = 45.62)。

请注意,VolumeReadIOPsVolumeWriteIOPs指标是由 DocumentDB 存储层计算的,其中包括主实例和副本实例 IOs 执行的指标。数据每 20-30 分钟聚合一次,然后每隔 5 分钟报告一次,因此该时间段内该指标的数据点相同。如果您正在寻找与 1 分钟间隔内的插入操作相关联的指标,则可以使用实例级别 WriteIOPs 指标。该指标可在您的 Amazon DocumentDB 主实例的“monitoring”(监控)选项卡中找到。

WriteIOPS 每秒平均磁盘写入 I/O 操作数。在集群级别使用时,WriteIOPs 会对集群中的所有实例进行评估。每分钟分别报告一次读取和写入 IOPS。
WriteThroughput 每秒写入磁盘的平均字节数。

系统指标

指标 描述
BufferCacheHitRatio 缓冲区缓存提供的请求的百分比。
DiskQueueDepth 等待写入磁盘或从磁盘读取的 I/O 操作的数量。
EngineUptime 实例已运行的时间长度(以秒为单位)。
IndexBufferCacheHitRatio 缓冲区缓存提供的指数请求的百分比。删除索引、集合或数据库后,您可能会立即看到该指标的峰值大于 100%。60 秒后自动更正。此限制将在未来的补丁更新中得到修复。

T3 实例指标

指标 描述
CPUCreditUsage 在测量周期内花费的 CPU 积分数。
CPUCreditBalance 实例产生的 CPU 积分数量。在 CPU 突增以及 CPU 积分的花费速度比获得速度快时,该余额将用完。
CPUSurplusCreditBalance 当余额值为零时,为维持 CPU 性能而花费的剩 CPUCredit余 CPU 积分数。
CPUSurplusCreditsCharged 超过可在 24 小时内获得的 CPU 积分数上限的超额 CPU 积分数,因而会产生额外的费用。有关更多信息,请参阅 监控您的 CPU 积分

查看 CloudWatch 数据

您可以使用 CloudWatch 控制台、亚马逊 DocumentDB 控制台 AWS Command Line Interface (AWS CLI) 或 API 查看亚马逊 CloudWatch 数据。 CloudWatch

Using the AWS Management Console

要使用 Amazon DocumentDB 管理控制台查看 CloudWatch 指标,请完成以下步骤。

  1. 登录 AWS Management Console,然后在 /docdb 上打开亚马逊文档数据库控制台。https://console.aws.amazon.com

  2. 在导航窗格中,选择集群

    提示

    如果您在屏幕左侧没有看到导航窗格,请在页面左上角选择菜单图标 (Hamburger menu icon with three horizontal lines.)。

  3. 在集群导航框中,您将看到“集群标识符”列。您的实例列于集群下,类似于以下屏幕截图。

    集群表显示了如何将实例嵌套在集群之下。
  4. 从实例列表中选择要获取其指标的实例的名称。

  5. 在生成的实例摘要页面中,选择 Monitoring(监控)选项卡,查看您的 Amazon DocumentDB 实例指标的图形表示。由于必须为每个指标生成图表,因此可能需要几分钟才能填充CloudWatch图表。

    下图显示了 Amazon DocumentDB 控制台中两个 CloudWatch 指标的图形表示,WriteIOPS以及。ReadIOPS

    两个折线图,分别代表亚马逊 DocumentDB 控制台中的 WriteIOps 和 CloudWatch readiOps 指标。
Using the CloudWatch Management Console

要使用 CloudWatch 管理控制台查看 CloudWatch 指标,请完成以下步骤。

  1. 登录并打开 Amazon DocumentDB 控制台,网址为。 AWS Management Consolehttps://console.aws.amazon.com/cloudwatch

  2. 在导航窗格中,选择指标。然后,从服务名称列表中选择 DocDB

  3. 选择指标维度(例如 集群指标)。

  4. All metrics 选项卡显示 DocDB 中该维度的所有指标。

    1. 要对表进行排序,请使用列标题。

    2. 要为指标绘制图表,请选中该指标旁的复选框。要选择所有指标,请选中表的标题行中的复选框。

    3. 要按指标筛选,请将鼠标悬停在指标名称上,然后选择指标名称旁边的下拉箭头。然后,选择 Add to search(增加到搜索),如下图所示。

      所有指标选项卡列出了指标,并显示了指标名称的下拉列表。
Using the AWS CLI

要查看 Amazon DocumentDB CloudWatch 的数据,请使用带有以下参数的 CloudWatch get-metric-statistics操作。

参数
  • --namespace – 必需。需要其 CloudWatch 指标的服务命名空间。对于 Amazon DocumentDB 来说,必须为 AWS/DocDB

  • --metric-name – 必需。需要其数据的指标的名称。

  • --start-time – 必需。用于确定要返回的第一个数据点的时间戳。

    包含指定的值;结果包括具有指定时间戳的数据点。时间戳必须采用 ISO 8601 UTC 格式(例如,2016-10-03T23:00:00Z)。

  • --end-time – 必需。用于确定要返回的最后一个数据点的时间戳。

    包含指定的值;结果包括具有指定时间戳的数据点。时间戳必须采用 ISO 8601 UTC 格式(例如,2016-10-03T23:00:00Z)。

  • --period – 必需。返回的数据点的粒度(以秒为单位)。对于具有常规精度的指标,期间可以短到一分钟(60 秒),并且必须为 60 的倍数。对于以小于一分钟的间隔收集的高精度指标,期间可以是 1、5、10、30、60 或 60 的任意倍数。

  • --dimensions— 可选。如果该指标包含多个维度,则必须为每个维度包含一个值。 CloudWatch 将每个唯一的维度组合视为一个单独的指标。如果未发布某个特定的维度组合,则无法检索该组合的统计数据。您必须指定创建指标时使用的同一维度。

  • --statistics – 可选。百分位数之外的指标统计数据。对于百分位数统计数据,请使用 ExtendedStatistics。调用 GetMetricStatistics 时,必须指定 StatisticsExtendedStatistics,但不能同时指定两者。

    允许的值:
    • SampleCount

    • Average

    • Sum

    • Minimum

    • Maximum

  • --extended-statistics – 可选。percentile 统计数据。指定介于 p0.0 到 p100 之间的值。调用 GetMetricStatistics 时,必须指定 StatisticsExtendedStatistics,但不能同时指定两者。

  • --unit – 可选。给定指标的单位。可以用多个单位报告指标。如果不提供单位,将返回所有单位。如果您仅指定指标不报告的单位,调用的结果将为空。

    可能的值:
    • Seconds

    • Microseconds

    • Milliseconds

    • Bytes

    • Kilobytes

    • Megabytes

    • Gigabytes

    • Terabytes

    • Bits

    • Kilobytes

    • Megabits

    • Gigabits

    • Terabits

    • Percent

    • Count

    • Bytes/Second

    • Kilobytes/Second

    • Megabytes/Second

    • Gigabytes/Second

    • Terabytes/Second

    • Bits/Second

    • Kilobits/Second

    • Megabits/Second

    • Gigabits/Second

    • Terabits/Second

    • Count/Second

    • None

以下示例查找 2 小时时段的最大 CPUUtilization,每隔 60 秒采样一次。

对于 Linux、macOS 或 Unix:

aws cloudwatch get-metric-statistics \ --namespace AWS/DocDB \ --dimensions \ Name=DBInstanceIdentifier,Value=docdb-2019-01-09-23-55-38 \ --metric-name CPUUtilization \ --start-time 2019-02-11T05:00:00Z \ --end-time 2019-02-11T07:00:00Z \ --period 60 \ --statistics Maximum

对于 Windows:

aws cloudwatch get-metric-statistics ^ --namespace AWS/DocDB ^ --dimensions ^ Name=DBInstanceIdentifier,Value=docdb-2019-01-09-23-55-38 ^ --metric-name CPUUtilization ^ --start-time 2019-02-11T05:00:00Z ^ --end-time 2019-02-11T07:00:00Z ^ --period 60 ^ --statistics Maximum

此操作的输出类似于以下内容:

{ "Label": "CPUUtilization", "Datapoints": [ { "Unit": "Percent", "Maximum": 4.49152542374361, "Timestamp": "2019-02-11T05:51:00Z" }, { "Unit": "Percent", "Maximum": 4.25000000000485, "Timestamp": "2019-02-11T06:44:00Z" }, ********* some output omitted for brevity ********* { "Unit": "Percent", "Maximum": 4.33333333331878, "Timestamp": "2019-02-11T06:07:00Z" } ] }

Amazon DocumentDB 维度

Amazon DocumentDB 的指标由账户或操作的值来限定。您可以使用 CloudWatch 控制台检索按下表中任意维度筛选的 Amazon DocumentDB 数据。

维度 描述
DBClusterIdentifier 筛选您为特定 Amazon DocumentDB 集群请求的数据。
DBClusterIdentifier, Role 筛选您为特定 Amazon DocumentDB 集群请求的数据,并按实例角色 (WRITER/READER) 聚合指标。例如,您可以聚合属于某个群集的所有 READER 实例的指标。
DBInstanceIdentifier 筛选您为特定数据库实例请求的数据。

监控 Opcounter 指标

对于空闲集群,Opcounter 指标具有非零值(通常约为 50)。这是因为 Amazon DocumentDB 会定期执行运行状况检查、内部操作和指标收集任务。

监控数据库连接

当你使用数据库引擎命令查看连接数时db.runCommand( { serverStatus: 1 }),你看到的连接数可能比你看到的DatabaseConnections多达 10 个 CloudWatch。发生这种情况的原因是,Amazon DocumentDB 执行定期运行状况检查和指标收集任务,而这些任务不记入 DatabaseConnectionsDatabaseConnections 仅显示客户启动的连接数。