Valkey 和 Redis 的指标 OSS - 亚马逊 ElastiCache

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

Valkey 和 Redis 的指标 OSS

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

除了ReplicationLag和之外EngineCPUUtilization,这些指标都来自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 在每种情况下,都使用两到四个连接来监视集群。这是根据上的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 (RedisOSS) 版本 5 或更低版本,则使用此指标报告的两到四个连接 ElastiCache 来监控集群。但是,使用 ElastiCache (RedisOSS) 版本 6 或更高版本时,用于监控集群的连接不包含在此指标中。 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 指示 ElastiCache (RedisOSS) 是否通过调整分配给传入命令、监控或复制的流量来积极管理流量。当向节点发送的命令多于 Valkey 或 Redis OSS 可以处理的命令时,流量就会被管理,用于维护引擎的稳定性和最佳运行。任何为 1 的数据点都可能表示节点对于所提供的工作负载而言规模过小。
注意

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

布尔值
E ngineCPUUtilization 可用性

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

区域 区域名称
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 南美洲(圣保罗)
us-gov-west-1 AWS GovCloud (美国西部)
us-gov-east-1 AWS GovCloud (美国东部)

以下是一些类型的命令的集合,派生自 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 基于集群的命令总数。这是通过汇总所有作用于集群的命令(cluster slotcluster info、等)的commandstats统计数据得出的。 计数
ClusterBasedCmdsLatency 基于集群的命令的延迟。 微秒
EvalBasedCmds 基于 eval 的命令的命令总数。这是通过求和从commandstats统计数据中得出evalevalsha 计数
EvalBasedCmdsLatency 基于 Eval 的命令的延迟。 微秒
GeoSpatialBasedCmds 基于地理空间的命令的命令总数。这是从commandstats统计数据中得出的。它是通过汇总所有地理类型的命令的总和得出的:geoaddgeodistgeohashgeoposgeoradiusgeoradiusbymember 计数
GeoSpatialBasedCmdsLatency 基于地理空间的命令的延迟。 微秒
GetTypeCmds read-only 类型命令的总数。这是通过对所有read-only类型命令(get、、hgetscardlrange、等)求和得出commandstats统计数据的。 计数
GetTypeCmdsLatency 读取命令的延迟。 微秒
HashBasedCmds 基于哈希的命令总数。这是通过汇总所有作用于一个或多个哈希(hget、、hkeyshvalshdel、等)的命令得出的。commandstats 计数
HashBasedCmdsLatency 基于哈希的命令的延迟。 微秒
HyperLogLogBasedCmds 基于 HyperLogLog 的命令的总数。这是通过汇总所有命令pf类型(pfaddpfcountpfmerge、等)的commandstats统计数据得出的。 计数
HyperLogLogBasedCmdsLatency HyperLogLog基于命令的延迟。 微秒
JsonBasedCmds JSON命令总数,包括读取和写入命令。这是通过汇总所有作用于按JSON键的JSON命令的commandstats统计数据得出的。 计数
JsonBasedCmdsLatency 所有JSON命令的延迟,包括读取和写入命令。 微秒
JsonBasedGetCmds JSON只读命令的总数。这是通过汇总所有作用于按JSON键的JSON读取命令的commandstats统计数据得出的。 计数
JsonBasedGetCmdsLatency JSON只读命令的延迟。 微秒
JsonBasedSetCmds JSON写入命令的总数。这是通过汇总所有作用于JSON键的JSON写入命令的commandstats统计数据得出的。 计数
JsonBasedSetCmdsLatency JSON写入命令的延迟。 微秒
KeyBasedCmds 基于密钥的命令总数。这是通过汇总多个数据结构(del、、expire等)中对一个或多个键执行的所有命令的commandstats统计数据得出的。rename 计数
KeyBasedCmdsLatency 基于键的命令的延迟。 微秒
ListBasedCmds 基于列表的命令总数。这是通过汇总所有作用于一个或多个列表(lindex、、lrangelpushltrim、等)的命令得出的。commandstats 计数
ListBasedCmdsLatency 基于列表的命令的延迟。 微秒
NonKeyTypeCmds 不基于键的命令总数。这是根据commandstats统计数据得出的,方法是将所有不作用于按键的命令(例如acldbsizeinfo)相加。 计数
NonKeyTypeCmdsLatency non-key-based命令延迟。 微秒
PubSubBasedCmds 用于发布/订阅功能的命令总数。这是通过汇总用于发布/订阅功能的所有命令的commandstats统计数据得出的:psubscribe、、、、publishpubsubpunsubscribessubscribesunsubscribespublishsubscribe和。unsubscribe 计数
PubSubBasedCmdsLatency PubSub-based 命令的延迟。 微秒
SetBasedCmds 基于设置的命令总数。这是通过将所有commandstats作用于一个或多个集合(scard、、sdiffsaddsunion、等)的命令相加得出的。 计数
SetBasedCmdsLatency 基于集合的命令的延迟。 微秒
SetTypeCmds write 类型命令的总数。这是通过汇总所有对数据进行操作的命令mutative类型(set、、hsetsaddlpop、等)得出的。commandstats 计数
SetTypeCmdsLatency 写入命令的延迟。 微秒
SortedSetBasedCmds 基于设置的已排序命令总数。这是通过汇总所有作用于一个或多个排序集合(zcount、、zrangezrankzadd、等)的命令得出的。commandstats 计数
SortedSetBasedCmdsLatency 基于排序的命令的延迟。 微秒
StringBasedCmds 基于字符串的命令总数。这是通过将所有commandstats作用于一个或多个字符串(strlensetexsetrange、等)的命令相加得出的。 计数
StringBasedCmdsLatency 基于字符串的命令的延迟。 微秒
StreamBasedCmds 基于流的命令总数。这是通过汇总所有作用于一种或多种流数据类型(xrange、、、xlenxaddxdel、等)的命令得出的。commandstats 计数
StreamBasedCmdsLatency 基于流的命令的延迟。 微秒