【Azure Redis 缓存】Redis的监控方式? 是否有API接口调用来获取监控值

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: 【Azure Redis 缓存】Redis的监控方式? 是否有API接口调用来获取监控值

问题描述

对于PaaS的Azure Cache for Redis,Azure中有哪些监控方式?是否能有api接口调用来获取监控值?

 

问题答案

1) 在Redis的门户中,使用Metrics查看Redis的Service Load,Memroy, CPU指标:https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-how-to-monitor#monitoring-charts

 

2) 在Azure Monitor -> Insight 来监控:https://docs.azure.cn/zh-cn/azure-monitor/insights/redis-cache-insights-overview

 

3) 使用API调用指标,参考文章:使用Python代码获取Azure Redis的监控指标值 (含Powershell脚本方式)

   Metric Definitions - List: https://docs.microsoft.com/en-us/rest/api/monitor/metricdefinitions/list,(注:替代文件中的url host为management.chinacloudapi.cn

 

 

Redis的监控指标

Metrics Name 指标 说明
Cache Hits

缓存命中数

在指定的报告间隔期间,成功的键查找次数。 此数目映射到 Redis INFO 命令输出中的 keyspace_hits。
Cache Latency (Preview) 缓存延迟(预览)

基于缓存的节点间延迟计算缓存的延迟。该指标以微秒为单位,具有三个维度:Avg、Min 和 Max,分别表示指定的报告间隔期间缓存的平均延迟、最小延迟和最大延迟。

Cache Misses 缓存未命中数

在指定的报告间隔期间,失败的键查找次数。此数目映射到 Redis INFO 命令输出中的 keyspace_misses。缓存未命中并不一定意味着缓存出现了问题。

例如,在使用缓存端编程模式时,应用程序会首先查找缓存中的项。

  • 如果该项不存在(缓存未命中),则将从数据库中检索该项并将其添加到下一次缓存中。 对于缓存端编程模式,缓存未命中是正常行为。
  • 如果缓存未命中数大于预期值,请检查从缓存中填充并读取的应用程序逻辑。
  • 如果由于内存压力而导致项目从缓存中逐出,则可能存在一些缓存未命中的情况,但指标 Used Memory 或 Evicted Keys 可以更好的监视内存压力。
Cache Read 缓存读取量

指定报告间隔期间,从缓存中读取的数据量,以每秒兆字节数(MB/秒)为单位。

此值来源于支持虚拟机的网络接口卡,该虚拟机托管缓存,但并不特定于 Redis。 此值对应于该缓存使用的网络带宽。

Cache Write 缓存写入量

指定报告间隔期间,写入缓存中的数据量,以每秒兆字节数(MB/秒)为单位。

此值来源于支持虚拟机的网络接口卡,该虚拟机托管缓存,但并不特定于 Redis。 此值对应于从客户端发送到缓存的数据的网络带宽。

Connected Clients 连接的客户端数

指定的报告间隔期间,客间户端与缓存的连接数。 此数目映射到 Redis INFO 命令输出中的 connected_clients。

一旦达到了连接限制,则对缓存的后续连接尝试将失败。

即使没有任何活动的客户端应用程序,由于内部进程和连接,仍可能存在一些连接的客户端的实例。

CPU CPU 指定报告间隔期间,用于 Redis 的 Azure 缓存服务器的 CPU 使用率(以百分比表示)。 此值映射到操作系统 \Processor(_Total)\% Processor Time 性能计数器
Errors 错误

在指定的报告间隔期间,缓存可能会出现的特定故障和性能问题。 该指标现在具有7个维度,表示不同的错误类型。 它们所代表的错误类型如下:

  1. Failover - 缓存故障转移时(从属缓存提升为主缓存)
  2. Dataloss - 缓存上发生数据丢失时
  3. UnresponsiveClients - 客户端从服务器读取数据的速度不够快时
  4. AOF - 存在与 AOF 暂留有关的问题时
  5. RDB - 存在与 RDB 暂留有关的问题时
  6. Import - 存在与导入 RDB 有关的问题时
  7. Export - 存在与导出 RDB 有关的问题时
Evicted Keys 逐出的密钥数 由于 maxmemory 限制,指定的报告间隔期间从缓存中逐出的项目数。 此数目映射到 Redis INFO 命令输出中的 evicted_keys。
Expired Keys 过期的密钥数 指定的报告间隔期间,缓存中过期的项目数。 此值映射到 Redis INFO 命令输出中的 expired_keys 。
Gets 获取数

指定的报告间隔期间,缓存中的获取操作数。

  • 此值是以下 Redis INFO 所有命令中的值的总和:
    • cmdstat_get、cmdstat_hget、cmdstat_hgetall、cmdstat_hmget、
    • cmdstat_mget、cmdstat_getbit 和 cmdstat_getrange
  • 等效于报告间隔期间缓存命中和未命中数的总和。
Operations per Second 每秒操作数 指定的报告间隔期间,由缓存服务器处理的每秒命令总数。 此值映射到 Redis INFO 命令中的“instantaneous_ops_per_sec”
Redis Server Load Redis 服务器负载

Redis 服务器忙于处理消息并且非空闲等待消息的周期百分比。

如果此计数器达到 100,则意味着 Redis 服务器已达到性能上限并且 CPU 无法更快地工作。

如果看到高 Redis 服务器负载,则会在客户端看到超时异常。 在这种情况下,应该考虑将数据扩大或分区到多个缓存。

Sets 设置数

指定的报告间隔期间,对缓存的设置操作数。 此值是以下 Redis INFO 所有命令中的值的总和:

cmdstat_set、cmdstat_hset、cmdstat_hmset、cmdstat_hsetnx、cmdstat_lset、cmdstat_mset、

cmdstat_msetnx、cmdstat_setbit、cmdstat_setex、cmdstat_setrange 和 cmdstat_setnx。

Total Keys 总密钥数

在上一个报告时段缓存中的最大密钥数。 此数目映射到 Redis INFO 命令输出中的 keyspace。

注:由于基础指标系统存在限制,对于已启用群集的缓存,“总密钥数”将返回在上一个报告时段内密钥数最多的分片的最大密钥数。

Total Operations 总操作数

指定的报告间隔期间,由缓存服务器处理的命令总数。此值映射到 Redis INFO 命令输出中的 total_commands_processed 。

当 Azure Cache for Redis 纯粹用于发布/订阅时,将不存在 Cache Hits、Cache Misses、Gets 或 Sets 的度量值,

但存在 Total Operations 度量值,该度量值反映发布/订阅操作的缓存使用情况。

Used Memory 已用内存

在指定报告间隔期间,缓存中的键/值对所用的缓存内存量(以 MB 为单位)。 此值映射到 Redis INFO 命令输出中的 used_memory 。

此值不包括元数据或碎片。

Used Memory Percentage 已用内存百分比 指定报告间隔期间使用的总内存的百分比。 此值引用 Redis INFO 命令输出中的 used_memory 值来计算百分比。
Used Memory RSS 已用内存 RSS 指定报告间隔期间所用的缓存内存量(以 MB 为单位),包括碎片和元数据。 此值映射到 Redis INFO 命令输出中的 used_memory_rss 。

 

 

参考资料

使用Python代码获取Azure Redis的监控指标值 (含Powershell脚本方式): https://www.cnblogs.com/lulight/p/14389944.html

探究适用于 Azure Cache for Redis 的 Azure Monitorhttps://docs.azure.cn/zh-cn/azure-monitor/insights/redis-cache-insights-overview

监视用于 Redis 的 Azure 缓存https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-how-to-monitor

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
3天前
|
缓存 NoSQL Java
Redis应用—8.相关的缓存框架
本文介绍了Ehcache和Guava Cache两个缓存框架及其使用方法,以及如何自定义缓存。主要内容包括:Ehcache缓存框架、Guava Cache缓存框架、自定义缓存。总结:Ehcache适合用作本地缓存或与Redis结合使用,Guava Cache则提供了更灵活的缓存管理和更高的并发性能。自定义缓存可以根据具体需求选择不同的数据结构和引用类型来实现特定的缓存策略。
Redis应用—8.相关的缓存框架
|
6天前
|
运维 监控 NoSQL
【赵渝强老师】监控Redis
Redis 实例的监控是运维管理中的关键内容,主要包括内存、吞吐量、运行时信息和延时的监控。 1. **监控内存**:使用 `info memory` 可查看 Redis 内存使用情况,包括已用内存、峰值内存等。 2. **监控吞吐量**:通过 `info stats` 获取每秒处理命令数(OPS)、网络输入输出流量等。 3. **监控运行时信息**:利用 `info` 命令结合 `grep` 过滤出客户端连接数、拒绝连接数等重要信息。 4. **监控延时**:可以通过客户端手动监控或服务器内部延迟监控来检测延时问题。
|
1月前
|
缓存 NoSQL 中间件
Redis,分布式缓存演化之路
本文介绍了基于Redis的分布式缓存演化,探讨了分布式锁和缓存一致性问题及其解决方案。首先分析了本地缓存和分布式缓存的区别与优劣,接着深入讲解了分布式远程缓存带来的并发、缓存失效(穿透、雪崩、击穿)等问题及应对策略。文章还详细描述了如何使用Redis实现分布式锁,确保高并发场景下的数据一致性和系统稳定性。最后,通过双写模式和失效模式讨论了缓存一致性问题,并提出了多种解决方案,如引入Canal中间件等。希望这些内容能为读者在设计分布式缓存系统时提供有价值的参考。感谢您的阅读!
130 6
Redis,分布式缓存演化之路
|
3月前
|
存储 缓存 NoSQL
解决Redis缓存数据类型丢失问题
解决Redis缓存数据类型丢失问题
205 85
|
2月前
|
存储 缓存 NoSQL
云端问道21期方案教学-应对高并发,利用云数据库 Tair(兼容 Redis®*)缓存实现极速响应
云端问道21期方案教学-应对高并发,利用云数据库 Tair(兼容 Redis®*)缓存实现极速响应
|
2月前
|
缓存 NoSQL 关系型数据库
云端问道21期实操教学-应对高并发,利用云数据库 Tair(兼容 Redis®)缓存实现极速响应
本文介绍了如何通过云端问道21期实操教学,利用云数据库 Tair(兼容 Redis®)缓存实现高并发场景下的极速响应。主要内容分为四部分:方案概览、部署准备、一键部署和完成及清理。方案概览中,展示了如何使用 Redis 提升业务性能,降低响应时间;部署准备介绍了账号注册与充值步骤;一键部署详细讲解了创建 ECS、RDS 和 Redis 实例的过程;最后,通过对比测试验证了 Redis 缓存的有效性,并指导用户清理资源以避免额外费用。
|
3月前
|
JavaScript API C#
【Azure Developer】Python代码调用Graph API将外部用户添加到组,结果无效,也无错误信息
根据Graph API文档,在单个请求中将多个成员添加到组时,Python代码示例中的`members@odata.bind`被错误写为`members@odata_bind`,导致用户未成功添加。
61 10
|
3月前
|
缓存 监控 NoSQL
Redis经典问题:缓存穿透
本文详细探讨了分布式系统和缓存应用中的经典问题——缓存穿透。缓存穿透是指用户请求的数据在缓存和数据库中都不存在,导致大量请求直接落到数据库上,可能引发数据库崩溃或性能下降。文章介绍了几种有效的解决方案,包括接口层增加校验、缓存空值、使用布隆过滤器、优化数据库查询以及加强监控报警机制。通过这些方法,可以有效缓解缓存穿透对系统的影响,提升系统的稳定性和性能。
|
4月前
|
缓存 NoSQL 关系型数据库
大厂面试高频:如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题
本文详解缓存雪崩、缓存穿透、缓存并发及缓存预热等问题,提供高可用解决方案,帮助你在大厂面试和实际工作中应对这些常见并发场景。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题
|
3月前
|
API Python
【Azure Developer】分享一段Python代码调用Graph API创建用户的示例
分享一段Python代码调用Graph API创建用户的示例
76 11