

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

# MemoryDB 的指标
<a name="metrics.memorydb"></a>

`Amazon/MemoryDB` 命名空间包括以下指标。

除 `ReplicationLag`、`EngineCPUUtilization`、`SuccessfulWriteRequestLatency` 和 `SuccessfulReadRequestLatency` 外，这些指标源自 Valkey 和 Redis OSS 的 **info** 命令。每项指标都是按照节点级计算的。

有关 **INFO** 命令的完整文档，请参阅 [INFO](http://valkey.io/commands/info)。

**另请参阅。**
+ [主机级指标](metrics.HostLevel.md)



- **`ActiveDefragHits`**
  - **描述:** 活动碎片整理进程每分钟执行的值重新分配数。这是根据 [INFO](http://valkey.io/commands/info) 的 active\_defrag\_hits 统计数据得出的。
  - **单位:** 数字

- **`AuthenticationFailures`**
  - **描述:** 使用 AUTH 命令进行身份验证时的总失败尝试次数。您可以使用 [ACL LOG](https://valkey.io/commands/acl-log) 命令查找有关个人身份验证失败的更多信息。我们建议为此设置告警以检测未经授权的访问尝试。
  - **单位:** 计数

- **`BytesUsedForMemoryDB`**
  - **描述:** MemoryDB 为所有目的（包括数据集、缓冲区等）分配的字节的总数。 / **单位:** 字节
  - **描述:** Dimension: Tier=SSD（对于使用 [数据分层](data-tiering.md) 功能的集群）：SSD 所使用的总字节数。 / **单位:** 字节
  - **描述:** Dimension: Tier=Memory（对于使用 [数据分层](data-tiering.md) 功能的集群）：内存所使用的总字节数。这是 [INFO](http://valkey.io/commands/info) 的 used\_memory 统计数据的值。 / **单位:** 字节

- **`BytesReadFromDisk`**
  - **描述:** 每分钟从磁盘读取的总字节数。仅支持使用[数据分层](data-tiering.md)功能的集群。
  - **单位:** 字节

- **`BytesWrittenToDisk`**
  - **描述:** 每分钟写入磁盘的总字节数。仅支持使用[数据分层](data-tiering.md)功能的集群。
  - **单位:** 字节

- **`CommandAuthorizationFailures`**
  - **描述:** 用户运行其无权限调用的命令的失败尝试次数。您可以使用 [ACL LOG](https://valkey.io/commands/acl-log) 命令查找有关个人身份验证失败的更多信息。我们建议为此设置告警以检测未经授权的访问尝试。
  - **单位:** 计数

- **`CurrConnections`**
  - **描述:** 客户端连接数，不包括来自只读副本的连接。MemoryDB 使用 2 至 4 个连接来监控各种情况下的集群。这是根据 [INFO](http://valkey.io/commands/info) 的 connected\_clients 统计数据得出的。
  - **单位:** 计数

- **`CurrItems`**
  - **描述:** 缓存中的项目数。这是根据 keyspace 统计数据得出的，方法是计算整个键空间中所有键的总和。 / **单位:** 计数
  - **描述:** Dimension: Tier=Memory（对于使用[数据分层](data-tiering.md)功能的集群）。内存中的项目数。 / **单位:** 计数
  - **描述:** Dimension: Tier=SSD（固态硬盘）（对于使用功能的 Redis 集群）[数据分层](data-tiering.md)。SSD 中的项目数。 / **单位:** 计数

- **`DatabaseMemoryUsagePercentage`**
  - **描述:**  正在使用的集群的可用内存的百分比。这是使用 used\_memory/maxmemory 根据 [INFO](http://valkey.io/commands/info) 计算得出的。
  - **单位:** 百分比

- **`DatabaseCapacityUsagePercentage`**
  - **描述:** 集群的总数据容量中正在使用的百分比。<br />在数据分层实例上，指标的计算方式为 `(used_memory - mem_not_counted_for_evict + SSD used) / (maxmemory + SSD total capacity)`，其中 `used_memory` 和 `maxmemory` 取自 [INFO](https://valkey.io/commands/info/)。<br />在所有其他情况下，使用 `used_memory/maxmemory` 计算指标。
  - **单位:** 百分比

- **`DB0AverageTTL`**
  - **描述:**  根据 [INFO](http://valkey.io/commands/info) 命令中的 keyspace 统计数据公开 DBO 的 avg\_ttl。
  - **单位:** 毫秒

- **`EngineCPUUtilization`**
  - **描述:** 提供 Valkey 或 Redis OSS 引擎线程的 CPU 使用率。由于引擎为单线程，您可以使用该指标来分析该进程本身的负载。`EngineCPUUtilization` 指标更精确地呈现了该进程。您可以将其与 `CPUUtilization` 指标配合使用。`CPUUtilization` 公开服务器实例整体的 CPU 使用率，包括其他操作系统和管理流程。对于有四个或更多 vCPU 的较大节点类型，可使用 `EngineCPUUtilization` 指标来监控和设置扩展阈值。 在 MemoryDB 主机上，后台进程将监控主机以提供托管式数据库体验。这些后台进程可能会占用很大一部分 CPU 工作负载。这在具有两个以上 vCPU 的大型主机上影响不大，但在 vCPU 个数不超过 2 个的小型主机上影响较大。如果仅监控 `EngineCPUUtilization` 指标，您将无法发现因 Valkey 或 Redis OSS 引擎或后台监控进程的 CPU 使用率过高而导致主机过载情况。因此，我们建议对于具有不超过两个 vCPU 的主机，还需要监控 `CPUUtilization` 指标。
  - **单位:** 百分比

- **`Evictions`**
  - **描述:** 由于 maxmemory 限制而被驱逐的密钥数。这是根据 [INFO](http://valkey.io/commands/info) 的 evicted\_keys 统计数据得出的。
  - **单位:** 计数

- **`IsPrimary`**
  - **描述:** 指示节点是否为当前分片的主节点。指标可以是 0（非主节点）或 1（主节点）。
  - **单位:** 计数

- **`KeyAuthorizationFailures`**
  - **描述:** 用户访问其无权限访问的密钥的失败尝试次数。您可以使用 [ACL LOG](https://valkey.io/commands/acl-log) 命令查找有关个人身份验证失败的更多信息。我们建议为此设置告警以检测未经授权的访问尝试。
  - **单位:** 计数

- **`KeyspaceHits`**
  - **描述:** 主字典中成功的只读键查找次数。这是根据 [INFO](http://valkey.io/commands/info) 的 keyspace\_hits 统计数据得出的。
  - **单位:** 计数

- **`KeyspaceMisses`**
  - **描述:** 主字典中失败的只读键查找次数。这是根据 [INFO](http://valkey.io/commands/info) 的 keyspace\_misses 统计数据得出的。
  - **单位:** 计数

- **` KeysTracked`**
  - **描述:**  键跟踪所跟踪的键数占 tracking-table-max-keys 的百分比。密钥跟踪用于帮助客户端侧缓存，并在修改密钥时通知客户端。
  - **单位:** 计数

- **`MaxReplicationThroughput`**
  - **描述:** 观测到的最大吞吐量。吞吐量在短时间间隔内采样以识别流量突发。报告采样值中的最大值。采样频率为 1 分钟。例如，如果在 10 毫秒期间写入了 1MB 数据，则此指标的值将为 100 MB/秒。请注意，当此指标超过 100 MB/秒时，由于写入吞吐量限制，可能会观察到较高的写入延迟。
  - **单位:** 每秒字节数

- **`MemoryFragmentationRatio`**
  - **描述:**  指示 Valkey 或 Redis OSS 引擎的内存分配效率。某些阈值将表示不同的行为。建议的值是让碎片化大于 1.0。这是根据 [INFO](http://valkey.io/commands/info) 的 mem\_fragmentation\_ratio statistic 计算得出的。
  - **单位:** 数字

- **`MultiRegionClusterReplicationLag`**
  - **描述:**  在 MemoryDB 多区域集群中，MultiRegionClusterReplicationLag 测量从更新写入某个区域集群的多可用区事务日志，到该更新写入多区域集群中另一个区域集群的主节点之间所经过的时间。该指标在分片级别为每个源区域和目标区域对发出。
  - **单位:** 毫秒

- **`NewConnections`**
  - **描述:** 在此期间，服务器接受的连接总数。这是根据 [INFO](http://valkey.io/commands/info) 的 total\_connections\_received 统计数据得出的。
  - **单位:** 计数

- **`NumItemsReadFromDisk`**
  - **描述:** 每分钟从磁盘检索的项目总数。仅支持使用[数据分层](data-tiering.md)功能的集群。
  - **单位:** 计数

- **`NumItemsWrittenToDisk`**
  - **描述:** 每分钟写入磁盘的项目总数。仅支持使用[数据分层](data-tiering.md)功能的集群。
  - **单位:** 计数

- **`PrimaryLinkHealthStatus`**
  - **描述:** 此状态有两个值：0 或 1。值为 0 表示 MemoryDB 主节点中的数据未与 EC2 上的 Valkey 或 Redis OSS 引擎同步。值为 1 表示数据已同步。
  - **单位:** 布尔值

- **`Reclaimed`**
  - **描述:** 密钥过期事件的总数。这是根据 [INFO](http://valkey.io/commands/info) 的 expired\_keys 统计数据得出的。
  - **单位:** 计数

- **`ReplicationBytes`**
  - **描述:** 对于重复配置中的节点，ReplicationBytes 报告主项向其所有副本发送的字节数。此指标代表集群上的写入负载。这是根据 [INFO](http://valkey.io/commands/info) 的 master\_repl\_offset 统计数据得出的。
  - **单位:** 字节

- **`ReplicationDelayedWriteCommands`**
  - **描述:** 由于同步复制而延迟的写入命令数。复制会由于各种因素而延迟，例如网络拥塞或超过[最大复制吞吐量](https://docs.amazonaws.cn/memorydb/latest/devguide/metrics.whichshouldimonitor.html#metrics-replication)。
  - **单位:** 计数

- **`ReplicationLag`**
  - **描述:** 该指标仅适用于作为只读副本运行的节点。它代表副本在应用主节点的改动方面滞后的时间（以秒为单位）。
  - **单位:** 秒

- **`SuccessfulWriteRequestLatency`**
  - **描述:** 成功写入请求的延迟。<br /> 有效统计量：平均值、总和、最小值、最大值、样本数、p0 到 p100 之间的任何百分位数。样本数仅包括成功执行的命令。[可从 Valkey 7.2 开始使用](https://www.amazonaws.cn/about-aws/whats-new/2024/10/amazon-memorydb-valkey-cloudwatch-metrics-monitor-server-response-time/)。
  - **单位:** 微秒

- **`SuccessfulReadRequestLatency`**
  - **描述:** 成功读取请求的延迟。<br /> 有效统计量：平均值、总和、最小值、最大值、样本数、p0 到 p100 之间的任何百分位数。样本数仅包括成功执行的命令。[可从 Valkey 7.2 开始使用](https://www.amazonaws.cn/about-aws/whats-new/2024/10/amazon-memorydb-valkey-cloudwatch-metrics-monitor-server-response-time/)。
  - **单位:** 微秒

- **`ErrorCount`**
  - **描述:** 指定时间段内失败命令的总数。<br /> 有效统计量：平均值、总和、最小值、最大值
  - **单位:** 计数



以下是一些类型的命令的集合，派生自 **info commandstats**。commandstats 部分根据命令类型提供统计信息，包括调用次数。

有关可用命令的完整列表，请参阅[命令](https://valkey.io/commands)。


| 指标  | 描述  | 单位  | 
| --- | --- | --- | 
| EvalBasedCmds | 基于 eval 的命令的命令总数。这是根据 commandstats 统计数据得出的，方式是计算 eval 与 evalsha 的总和。 | 计数 | 
| GeoSpatialBasedCmds | 基于地理空间的命令的命令总数。这是根据 commandstats 统计数据得出的。它是通过汇总所有地理类型的命令的总和得出的：geoadd、geodist、geohash、geopos、georadius 和 georadiusbymember。 | 计数 | 
| GetTypeCmds | read-only 类型命令的总数。这是根据 commandstats 统计数据得出的，方法是计算所有 read-only 类型命令（get、hget、scard、lrange 等）的总和。 | 计数 | 
| HashBasedCmds | 基于哈希的命令总数。这是根据 commandstats 统计数据得出的，方法是计算所有作用于一个或多个哈希的命令（hget、hkeys、hvals、hdel 等）的总和。 | 计数 | 
| HyperLogLogBasedCmds | 基于 HyperLogLog 的命令的总数。这是根据 commandstats 统计数据得出的，方法是计算所有 pf 类型的命令（pfadd、pfcount、pfmerge 等）的总和。 | 计数 | 
|  JsonBasedCmds |  基于 JSON 的命令总数。这是根据 commandstats 统计数据得出的，方式是计算所有作用于一个或多个 JSON 文档对象的命令的总和。 | 计数 | 
| KeyBasedCmds | 基于密钥的命令总数。这是根据 commandstats 统计数据得出的，方法是计算所有作用于多个数据结构中的一个或多个键的命令（del、expire、rename 等）的总和。 | 计数 | 
| ListBasedCmds | 基于列表的命令总数。这是根据 commandstats 统计数据得出的，方法是计算所有作用于一个或多个列表的命令（lindex、lrange、lpush、ltrim 等）的总和。 | 计数 | 
| PubSubBasedCmds | 用于发布/订阅功能的命令总数。这是根据 commandstats 统计数据得出的，方式是计算所有用于发布/订阅功能的命令（psubscribe、publish、pubsub、punsubscribe、subscribe 和 unsubscribe）的总和。 | 计数 | 
| SearchBasedCmds | 二级索引和搜索命令的总数，包括读取和写入命令。这是根据 commandstats 统计数据得出的，方式是计算所有作用于二级索引的搜索命令的总和。 | 计数 | 
| SearchBasedGetCmds | 二级索引和搜索只读命令的总数。这是根据 commandstats 统计数据得出的，方式是计算所有二级索引和搜索获取命令的总和。 | 计数 | 
| SearchBasedSetCmds | 二级索引和搜索写入命令的总数。这是根据 commandstats 统计数据得出的，方式是计算所有二级索引和搜索集命令的总和。 | 计数 | 
| SearchNumberOfIndexes | 索引的总数。 | 计数 | 
| SearchNumberOfIndexedKeys | 已编入索引的键的总数  | 计数 | 
| SearchTotalIndexSize | 所有索引占用的内存（字节）。 | 字节 | 
| SetBasedCmds | 基于设置的命令总数。这是根据 commandstats 统计数据得出的，方法是计算所有作用于一个或多个集合的命令（scard、sdiff、sadd、sunion 等）的总和。 | 计数 | 
| SetTypeCmds | write 类型命令的总数。这是根据 commandstats 统计数据得出的，方法是计算对数据执行操作的所有 mutative 类型的命令（set、hset、sadd、lpop 等）的总和。 | 计数 | 
| SortedSetBasedCmds | 基于设置的已排序命令总数。这是根据 commandstats 统计数据得出的，方法是计算所有作用于一个或多个已排序集合的命令（zcount、zrange、zrank、zadd 等）的总和。 | 计数 | 
| StringBasedCmds | 基于字符串的命令总数。这是根据 commandstats 统计数据得出的，方法是计算所有作用于一个或多个字符串的命令（strlen、setex、setrange 等）的总和。 | 计数 | 
| StreamBasedCmds | 基于流的命令总数。这是根据 commandstats 统计数据得出的，方法是计算所有作用于一个或多个流数据类型的命令（xrange、xlen、xadd、xdel 等）的总和。 | 计数 | 