简而言之使用 OTel Redis receiver 在 ClickStack 中监控 Redis 性能指标。包含演示数据集和预置仪表板。
与现有 Redis 集成
前置条件
- 正在运行的 ClickStack 实例
- 已有的 Redis 安装 (3.0 或更高版本)
- ClickStack 到 Redis 的网络访问 (默认端口 6379)
- 如果启用了身份验证,则需要 Redis 密码
1
验证 Redis 连接
首先,确认你可以连接到 Redis,并且INFO 命令能够正常执行:- 本地安装:
localhost:6379 - Docker:使用容器名称或服务名称 (例如
redis:6379) - 远程:
<redis-host>:6379
2
创建自定义 OTel collector 配置
ClickStack 支持通过挂载自定义配置文件并设置环境变量来扩展基础 OpenTelemetry collector 配置。自定义配置会与 HyperDX 通过 OpAMP 管理的基础配置合并。创建一个名为redis-metrics.yaml 的文件,内容如下:redis-metrics.yaml
- 连接到
localhost:6379上的 Redis (请根据你的部署调整端点) - 每 10 秒采集一次指标
- 采集关键性能指标 (命令、客户端、内存、keyspace 统计信息)
- 按照 OpenTelemetry 语义约定 设置必需的
service.name资源属性 - 通过专用管道将指标路由到 ClickHouse exporter
redis.commands.processed- 每秒处理的命令数redis.clients.connected- 已连接的客户端数量redis.clients.blocked- 因阻塞调用而被阻塞的客户端数量redis.memory.used- Redis 已使用的内存字节数redis.memory.peak- 峰值内存占用redis.keyspace.hits- 成功的键查找次数redis.keyspace.misses- 失败的键查找次数 (用于计算缓存命中率)redis.keys.expired- 已过期的键数量redis.keys.evicted- 因内存压力而被驱逐的键数量redis.connections.received- 接收到的连接总数redis.connections.rejected- 被拒绝的连接数
- 你只需在自定义配置中定义新的 receivers、processors 和 pipelines
memory_limiter和batchprocessors 以及clickhouseexporter 已在基础 ClickStack 配置中定义,你只需按名称引用它们resourceprocessor 会按照 OpenTelemetry 语义约定设置必需的service.name属性- 如果在生产环境中启用身份验证,请将密码存储在环境变量中:
${env:REDIS_PASSWORD} - 请根据需要调整
collection_interval(默认值为 10 秒;较低的值会增加数据量) - 如果有多个 Redis 实例,请自定义
service.name以便区分它们 (例如:"redis-cache"、"redis-sessions")
3
配置 ClickStack 以加载自定义配置
要在现有的 ClickStack 部署中启用自定义 collector 配置,您需要:- 将自定义配置文件挂载到
/etc/otelcol-contrib/custom.config.yaml - 设置环境变量
CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml - 确保 ClickStack 与 Redis 之间的网络连通
选项 1:Docker Compose
更新您的 ClickStack 部署配置:选项 2:Docker run (一体化镜像)
如果使用一体化镜像并通过docker run 运行:4
在 HyperDX 中验证指标
配置完成后,登录 HyperDX 并确认指标是否已开始流入:- 打开指标浏览器
- 搜索以
redis.开头的指标 (例如:redis.commands.processed、redis.memory.used) - 你应会看到指标数据点按你配置的采集间隔持续出现
演示数据集
1
下载样本指标数据集
下载预生成的指标文件 (24 小时的 Redis 指标 数据,包含逼真的变化模式) :- 缓存预热事件 (06:00) - 命中率从 30% 升至 80%
- 流量突增 (14:30-14:45) - 流量激增 5 倍,并伴随连接压力
- 内存压力 (20:00) - 出现 key 驱逐,缓存性能下降
- 每日流量模式 - 工作时段达到高峰、夜间回落、随机出现小尖峰
2
3
仪表盘与可视化
1
仪表盘配置
2
导入预构建仪表盘
- 打开 HyperDX 并进入 仪表盘 部分
- 点击右上角省略号菜单中的 Import Dashboard
- 上传
redis-metrics-dashboard.json文件,然后点击 Finish Import
3
查看仪表盘
导入后,仪表盘会创建完成,且所有可视化都已预先配置好:对于演示数据集,请将时间范围设置为 2025-10-20 05:00:00 - 2025-10-21 05:00:00 (UTC) (请根据你的本地时区调整) 。导入的仪表盘默认不会指定时间范围。
故障排查
自定义配置未正确加载
CUSTOM_OTELCOL_CONFIG_FILE 设置正确:
/etc/otelcol-contrib/custom.config.yaml:
HyperDX 中没有显示任何指标
身份验证错误
网络连接问题
docker run 命令中,将两个容器置于同一网络中。
后续步骤
- 为关键指标设置告警 (如内存使用量阈值、连接数限制、缓存命中率下降)
- 针对特定用例创建更多仪表盘 (如复制延迟、持久化性能)
- 通过复制 receiver 配置并使用不同的端点和服务名称,监控多个 Redis 实例