Valkey 和 Redis 的指标 OSS - Amazon ElastiCache
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Valkey 和 Redis 的指标 OSS

Amazon ElastiCache命名空间包括以下 Valkey 和 Redis 指标OSS。使用 Valkey 引擎时,这些指标是相同的。

除了ReplicationLag、、和之外 EngineCPUUtilization SuccessfulWriteRequestLatencySuccessfulReadRequestLatency,这些指标都是从info命令中派生出来的。每项指标均是按照缓存节点级计算的。

有关该info命令的完整文档,请参阅 http://valkey。 io/commands/info

另请参阅

指标 描述 单位
ActiveDefragHits 活动碎片整理进程每分钟执行的值重新分配数。这是根据的active_defrag_hits统计数据得出的INFO 数字
AuthenticationFailures OSS使用命令尝试向 Valkey 或 Redis 进行身份验证的失败总数。AUTH您可以使用ACLLOG命令查找有关个别身份验证失败的更多信息。我们建议为此设置告警以检测未经授权的访问尝试。 计数
BytesUsedForCache Valkey 或 Redis OSS 为所有目的分配的总字节数,包括数据集、缓冲区等。 字节
Dimension: Tier=Memory对于 Valkey 或 Redis OSS 集群,使用数据分层 ElastiCache:内存用于缓存的总字节数。这是used_memory统计数据的值INFO 字节
Dimension: Tier=SSD对于 Valkey 或 Redis OSS 集群,使用数据分层 ElastiCache:用于缓存的总字节数。SSD 字节
BytesReadFromDisk 每分钟从磁盘读取的总字节数。仅支持使用数据分层 ElastiCache功能的集群。 字节
BytesWrittenToDisk 每分钟写入磁盘的总字节数。仅支持使用数据分层 ElastiCache功能的集群。 字节
CacheHits 主字典中成功的只读键查找次数。这是根据的keyspace_hits统计数据得出的INFO 计数
CacheMisses 主字典中失败的只读键查找次数。这是根据的keyspace_misses统计数据得出的INFO 计数
CommandAuthorizationFailures 用户运行其无权限调用的命令的失败尝试次数。您可以使用ACLLOG命令查找有关个别身份验证失败的更多信息。我们建议为此设置告警以检测未经授权的访问尝试。 计数
CacheHitRate 表示 Valkey 或 Redis OSS 实例的使用效率。如果缓存比率低于 0.8 左右,则意味着大量的密钥被移出、过期或不存在。这是使用 cache_hitscache_misses 统计数据按以下方式计算的:cache_hits /(cache_hits + cache_misses) 百分比
ChannelAuthorizationFailures 用户访问其无权限访问的通道的失败尝试次数。您可以使用ACLLOG命令查找有关个别身份验证失败的更多信息。我们建议为此指标设置告警以检测未经授权的访问尝试。 计数
CurrConnections 客户端连接数,不包括来自只读副本的连接。 ElastiCache 在每种情况下都使用 4 到 6 个连接来监控集群。这是根据上的connected_clients统计数据得出的INFO 计数
CurrItems 缓存中的项目数。这是根据 keyspace 统计数据得出的,方法是计算整个键空间中所有键的总和。 计数
Dimension: Tier=Memory(对于使用数据分层 ElastiCache功能的集群)。内存中的项目数。 计数
Dimension: Tier=SSD(固态硬盘)(对于使用数据分层 ElastiCache功能的 Redis 集群)。中的商品数量SSD。 计数
CurrVolatileItems 所有数据库中具有 ttl 集的键的总数。这是根据 expires 统计数据得出的,方法是计算整个键空间中有 ttl 集的所有键的总和。 计数
DatabaseCapacityUsagePercentage

集群的总数据容量中正在使用的百分比。

在数据分层实例上,该指标的计算方式为(used_memory - mem_not_counted_for_evict + SSD used) / (maxmemory + SSD total capacity)、位置used_memorymaxmemory来源INFO

在所有其他情况下,使用 used_memory/maxmemory 计算指标。

百分比
DatabaseCapacityUsageCountedForEvictPercentage

正在使用的集群总数据容量的百分比,不包括用于开销和的内存COB。该指标的计算方式如下:

used_memory - mem_not_counted_for_evict/maxmemory

在数据分层实例上,该指标的计算方式如下:

(used_memory + SSD used) / (maxmemory + SSD total capacity)

取自maxmemory何处 used_memory INFO

百分比
DatabaseMemoryUsagePercentage 集群中正在使用的内存的百分比。这是使用以下公式计算得used_memory/maxmemoryINFO的。 百分比
DatabaseMemoryUsageCountedForEvictPercentage 正在使用的集群内存百分比,不包括用于开销的内存和COB。这是使用以下公式计算得used_memory-mem_not_counted_for_evict/maxmemoryINFO的。 百分比
DB0AverageTTL DBO从INFO命令avg_ttlkeyspace统计数据中揭露了。副本不会使密钥过期,而是等待主节点使密钥过期。当主节点使密钥过期(或因此而将其逐出LRU)时,它会合成一条DEL命令,然后将其传输到所有副本。因此,副本节点TTL的 db0Average 为 0,因为它们不会使密钥过期,因此无法跟踪。TTL 毫秒
EngineCPUUtilization

提供 Valkey 或 Redis OSS 引擎线程的CPU利用率。由于 Valkey 和 Redis OSS 是单线程的,因此您可以使用此指标来分析进程本身的负载。EngineCPUUtilization 指标更精确地呈现了该进程。您可以将其与CPUUtilization指标结合使用。 CPUUtilization公开整个服务器实例的CPU利用率,包括其他操作系统和管理进程。对于具有四个 vCPUs 或更多节点的较大节点类型,请使用该EngineCPUUtilization指标来监控和设置扩展阈值。

注意

在 ElastiCache 主机上,后台进程监视主机以提供托管数据库体验。这些后台进程可能占用很大一部分CPU工作负载。对于拥有两个以上的大型主机,这并不重要vCPUs。但它可能会影响容量不超过 2 vCPUs 的较小主机。如果您只监控该EngineCPUUtilization指标,您将不会意识到主机因Valkey或Redis的高CPU使用率OSS和后台监控过程的高使用CPU率而导致主机过载的情况。因此,我们建议监控两台vCPUs或更少的主机的CPUUtilization指标。

百分比
Evictions 由于 maxmemory 限制而被驱逐的密钥数。这是根据上的evicted_keys统计数据得出的INFO 计数
GlobalDatastoreReplicationLag 此为辅助区域的主节点与主区域的主节点之间的滞后。对于启用了集群模式的 Valkey 或 RedisOSS,延迟表示分片之间的最大延迟。
IamAuthenticationExpirations IAM经过身份验证的 Valkey 或 Redis OSS 连接的过期总数。您可以在用户指南中找到有关 使用 IAM 进行身份验证 的更多信息。 计数
IamAuthenticationThrottling IAM经过限制的 Valkey 或 Redis 或请求的总数。OSS AUTH HELLO您可以在用户指南中找到有关 使用 IAM 进行身份验证 的更多信息。 计数
IsMaster 指示节点是否为当前分片/集群的主节点。指标可以是 0(非主节点)或 1(主节点)。 计数
KeyAuthorizationFailures 用户访问其无权限访问的密钥的失败尝试次数。您可以使用ACLLOG命令查找有关个别身份验证失败的更多信息。我们建议为此设置告警以检测未经授权的访问尝试。 计数
KeysTracked Valkey 或 Redis 密钥跟踪所跟踪的OSS密钥数量占的百分比。tracking-table-max-keys密钥跟踪用于帮助客户端侧缓存,并在修改密钥时通知客户端。 计数
MemoryFragmentationRatio 指示 Valkey 或 Redis OSS 引擎的内存分配效率。某些阈值将表示不同的行为。建议的值是让碎片化大于 1.0。这是根据的计算得出mem_fragmentation_ratio statisticINFO 数字
NewConnections 在此期间,服务器接受的连接总数。这是根据上的total_connections_received统计数据得出的INFO
注意

如果您使用 ElastiCache 的是 Redis OSS 版本 5 或更低版本,则使用此指标报告的两到四个连接 ElastiCache 来监控集群。但是,在 Redis OSS 版本 6 或更高版本中使用 ElastiCache 时, ElastiCache 用于监控集群的连接不包含在此指标中。

计数
NumItemsReadFromDisk 每分钟从磁盘检索的项目总数。仅支持使用数据分层 ElastiCache功能的集群。 计数
NumItemsWrittenToDisk 每分钟写入磁盘的项目总数。仅支持使用数据分层 ElastiCache功能的集群。 计数
MasterLinkHealthStatus 此状态有两个值:0 或 1。值 0 表示 ElastiCache主节点中的数据在 Valkey 或 Redis OSS 开启时不同步。EC2值为 1 表示数据已同步。要完成迁移,请使用CompleteMigrationAPI操作。 布尔值
Reclaimed 密钥过期事件的总数。这是根据上的expired_keys统计数据得出的INFO 计数
ReplicationBytes 对于重复配置中的节点,ReplicationBytes 报告主项向其所有副本发送的字节数。此指标代表复制组上的写入负载。这是根据上的master_repl_offset统计数据得出的INFO 字节
ReplicationLag 该指标仅适用于作为只读副本运行的节点。它代表副本在应用主节点的改动方面滞后的时间(以秒为单位)。对于 Valkey 7.2 及更高版本以及 Redis OSS 5.0.6 及更高版本,延迟可以用毫秒来衡量。
SaveInProgress 只要背景保存(forked 或 forkless)在进行中,此二进制指标均返回 1,否则会返回 0。在快照和同步期间,通常使用背景保存进程。这些操作会导致性能下降。使用 SaveInProgress 指标,您可以诊断性能下降是否由背景保存进程造成。这是根据上的rdb_bgsave_in_progress统计数据得出的INFO 布尔值
TrafficManagementActive 指示 Redis OSS 是否 ElastiCache 通过调整分配给传入命令、监控或复制的流量来主动管理流量。当向节点发送的命令多于 Valkey 或 Redis OSS 可以处理的命令时,流量就会被管理,用于维护引擎的稳定性和最佳运行。任何为 1 的数据点都可能表示节点对于所提供的工作负载而言规模过小。
注意

如果此指标持续处于活动状态,请评估集群以确定是否需要纵向扩展或横向扩展。相关指标包括 NetworkBandwidthOutAllowanceExceededEngineCPUUtilization

布尔值
SuccessfulWriteRequestLatency

成功写入请求的延迟。

有效统计数据:平均值、总和、最小值、最大值、样本数、p0 和 p100 之间的任何百分位数。样本计数仅包括成功执行的命令。

微秒
SuccessfulReadRequestLatency

成功读取请求的延迟。

有效统计数据:平均值、总和、最小值、最大值、样本数、p0 和 p100 之间的任何百分位数。样本计数仅包括成功执行的命令。

微秒
ErrorCount

在指定时间段内失败的命令总数。

有效统计数据:平均值、总和、最小值、最大值

计数
E ngineCPUUtilization 可用性

Amazon 以下列出的区域适用于所有支持的节点类型。

Region 区域名称
us-east-2 美国东部(俄亥俄州)
us-east-1 美国东部(弗吉尼亚州北部)
us-west-1 美国西部(加利福尼亚北部)
us-west-2 美国西部(俄勒冈)
ap-northeast-1 亚太地区(东京)
ap-northeast-2 亚太地区 (首尔)
ap-northeast-3 亚太地区(大阪)
ap-east-1 亚太地区(香港)
ap-south-1 亚太地区(孟买)
ap-southeast-1 亚太地区(新加坡)
ap-southeast-2 亚太地区(悉尼)
ap-southeast-3 亚太地区(雅加达)
ca-central-1 加拿大(中部)
cn-north-1 中国(北京)
cn-northwest-2 中国(宁夏)
me-south-1 中东(巴林)
eu-central-1 欧洲地区(法兰克福)
eu-west-1 欧洲地区(爱尔兰)
eu-west-2 欧洲地区(伦敦)
eu-west-3 欧洲地区(巴黎)
eu-south-1 欧洲地区(米兰)
af-south-1 非洲(开普敦)
eu-north-1 欧洲地区(斯德哥尔摩)
sa-east-1 南美洲(圣保罗)

以下是一些类型的命令的集合,派生自 info commandstats。commandstats 部分根据命令类型提供统计信息,包括调用次数、这些命令消耗的总CPU时间以及每次执行命令的平均CPU消耗量。对于每种命令类型,都会添加以下行:cmdstat_XXX: calls=XXX,usec=XXX,usec_per_call=XXX

下面列出的延迟指标是使用中的 commandstats 统计数据计算得出的。INFO计算方式如下:delta(usec)/delta(calls)delta 计算为一分钟内的差异。延迟定义为处理命令 ElastiCache 所CPU花费的时间。请注意,对于使用数据分层的集群,从中提取项目所花费的时间SSD不包括在这些测量中。

有关可用命令的完整列表,请参阅 Valkey 文档中的命令

指标 描述 单位
ClusterBasedCmds 基于集群的命令总数。这是根据 commandstats 统计数据得出的,方法是计算所有作用于集群(cluster infocluster slot 等)的命令的总和。 计数
ClusterBasedCmdsLatency 基于集群的命令的延迟。 微秒
EvalBasedCmds 基于 eval 的命令的命令总数。这是根据 commandstats 统计数据得出的,方法是计算 evalevalsha 的总和。 计数
EvalBasedCmdsLatency 基于 Eval 的命令的延迟。 微秒
GeoSpatialBasedCmds 基于地理空间的命令的命令总数。这是根据 commandstats 统计数据得出的。它是通过汇总所有地理类型的命令的总和得出的:geoaddgeodistgeohashgeoposgeoradiusgeoradiusbymember 计数
GeoSpatialBasedCmdsLatency 基于地理空间的命令的延迟。 微秒
GetTypeCmds read-only 类型命令的总数。这是根据 commandstats 统计数据得出的,方法是计算所有 read-only 类型命令(gethgetscardlrange 等)的总和。 计数
GetTypeCmdsLatency 读取命令的延迟。 微秒
HashBasedCmds 基于哈希的命令总数。这是根据 commandstats 统计数据得出的,方法是计算所有作用于一个或多个哈希的命令(hgethkeyshvalshdel 等)的总和。 计数
HashBasedCmdsLatency 基于哈希的命令的延迟。 微秒
HyperLogLogBasedCmds 基于 HyperLogLog 的命令的总数。这是根据 commandstats 统计数据得出的,方法是计算所有 pf 类型的命令(pfaddpfcountpfmerge 等)的总和。 计数
HyperLogLogBasedCmdsLatency HyperLogLog基于命令的延迟。 微秒
JsonBasedCmds JSON命令总数,包括读取和写入命令。这是通过汇总所有作用于按JSON键的JSON命令的commandstats统计数据得出的。 计数
JsonBasedCmdsLatency 所有JSON命令的延迟,包括读取和写入命令。 微秒
JsonBasedGetCmds JSON只读命令的总数。这是通过汇总所有作用于按JSON键的JSON读取命令的commandstats统计数据得出的。 计数
JsonBasedGetCmdsLatency JSON只读命令的延迟。 微秒
JsonBasedSetCmds JSON写入命令的总数。这是通过汇总所有作用于JSON键的JSON写入命令的commandstats统计数据得出的。 计数
JsonBasedSetCmdsLatency JSON写入命令的延迟。 微秒
KeyBasedCmds 基于密钥的命令总数。这是根据 commandstats 统计数据得出的,方法是计算所有作用于多个数据结构中的一个或多个键的命令(delexpirerename 等)的总和。 计数
KeyBasedCmdsLatency 基于键的命令的延迟。 微秒
ListBasedCmds 基于列表的命令总数。这是根据 commandstats 统计数据得出的,方法是计算所有作用于一个或多个列表的命令(lindexlrangelpushltrim 等)的总和。 计数
ListBasedCmdsLatency 基于列表的命令的延迟。 微秒
NonKeyTypeCmds 不基于键的命令总数。这是根据 commandstats 统计数据得出的,方法是计算所有不作用于某个键的命令(例如 acldbsizeinfo 等)的总和。 计数
NonKeyTypeCmdsLatency non-key-based命令延迟。 微秒
PubSubBasedCmds 用于发布/订阅功能的命令总数。这是根据 commandstats 统计数据得出的,方法是计算以下用于发布/订阅功能的所有命令的总和:psubscribepublishpubsubpunsubscribessubscribesunsubscribespublishsubscribeunsubscribe 计数
PubSubBasedCmdsLatency PubSub-based 命令的延迟。 微秒
SetBasedCmds 基于设置的命令总数。这是根据 commandstats 统计数据得出的,方法是计算所有作用于一个或多个集合的命令(scardsdiffsaddsunion 等)的总和。 计数
SetBasedCmdsLatency 基于集合的命令的延迟。 微秒
SetTypeCmds write 类型命令的总数。这是根据 commandstats 统计数据得出的,方法是计算对数据执行操作的所有 mutative 类型的命令(sethsetsaddlpop 等)的总和。 计数
SetTypeCmdsLatency 写入命令的延迟。 微秒
SortedSetBasedCmds 基于设置的已排序命令总数。这是根据 commandstats 统计数据得出的,方法是计算所有作用于一个或多个已排序集合的命令(zcountzrangezrankzadd 等)的总和。 计数
SortedSetBasedCmdsLatency 基于排序的命令的延迟。 微秒
StringBasedCmds 基于字符串的命令总数。这是根据 commandstats 统计数据得出的,方法是计算所有作用于一个或多个字符串的命令(strlensetexsetrange 等)的总和。 计数
StringBasedCmdsLatency 基于字符串的命令的延迟。 微秒
StreamBasedCmds 基于流的命令总数。这是根据 commandstats 统计数据得出的,方法是计算所有作用于一个或多个流数据类型的命令(xrangexlenxaddxdel 等)的总和。 计数
StreamBasedCmdsLatency 基于流的命令的延迟。 微秒