redis-observability について
redis-observability は、Redis の運用担当者や開発者向けの監視・診断ガイドです。主要メトリクスやアラート条件、組み込みの調査コマンドに加え、Redis Insight による対話的な診断も扱います。
主な機能
- 01主要な Redis 監視メトリクスの整理
- 02メトリクスごとのアラート条件
- 03組み込み診断コマンドの紹介
- 04低速クエリとメモリの診断
- 05Redis Insight による対話的な診断
活用シーン
- 01Redis インスタンスの監視とアラート設定
- 02遅延、メモリ、接続問題の調査
- 03FT.SEARCH やパイプラインの性能分析
- 04Redis メトリクスの監視システムへの連携
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ redis/ agent-skills --skill redis-observabilityインストール後、Claude Code で/redis-observabilityを入力して読み込まれたか確認します。
同梱ファイルreferences/commands.mdreferences/metrics.md
詳細
Redis のオブザーバビリティ
何を監視し、何を実行し、何にアラートを設定するか。すべての Redis デプロイで監視すべきメトリクスと、アドホックな診断に使える組み込みコマンドを紹介します。
適用するタイミング
- Redis インスタンスの監視やアラートを設定するとき。
- Redis のパフォーマンス低下(レイテンシーの増加、メモリー圧迫、接続の急増)を診断するとき。
- 遅い
FT.SEARCHやパイプラインのプロファイリングを行うとき。 - Redis のメトリクスを Prometheus、Datadog、CloudWatch などに連携するとき。
1. これらのメトリクスを監視する
これらのメトリクスは INFO から取得し、監視システムにエクスポートしてください。
| メトリクス | わかること | アラートを設定する条件 |
|---|---|---|
used_memory | 現在のメモリー使用量 | maxmemory の 80% 超 |
connected_clients | 開いている接続数 | 急激な増加または減少 |
blocked_clients | ブロッキング操作で待機しているクライアント数 | 0 を超える状態が継続 |
instantaneous_ops_per_sec | 現在のスループット | 大幅な低下 |
keyspace_hits / keyspace_misses | キャッシュヒット率 | ヒット率が 80% 未満 |
rejected_connections | maxclients の上限に達した回数 | 0 を超える |
rdb_last_save_time | 最後に永続化スナップショットを保存した時刻 | RPO に対して古すぎる |
info = redis.info()
hit_ratio = info["keyspace_hits"] / max(1, info["keyspace_hits"] + info["keyspace_misses"])
print(f"Memory: {info['used_memory_human']}")
print(f"Clients: {info['connected_clients']}")
print(f"Ops/sec: {info['instantaneous_ops_per_sec']}")
print(f"Hit ratio: {hit_ratio:.1%}")
references/metrics.mdを参照してください。
2. デバッグに使える組み込みコマンド
異常が見られたときは、次のコマンドを使ってください。
| 項目 | コマンド |
|---|---|
| 遅いコマンド | SLOWLOG GET 10 / SLOWLOG LEN / SLOWLOG RESET |
| サーバーのスナップショット | INFO all(または INFO memory / INFO stats / INFO clients / INFO replication) |
| メモリー診断 | MEMORY DOCTOR / MEMORY STATS / MEMORY USAGE <key> |
| 接続 | CLIENT LIST / CLIENT INFO |
| RQE / Search | FT.INFO <idx> / FT.PROFILE <idx> SEARCH QUERY "..." |
インシデントの初期調査で特に役立つのは、次の 2 つです。
- **
SLOWLOG GET**を使うと、slowlog-log-slower-thanのしきい値(デフォルトでは 10ms)を超えたクエリを確認できます。出力には、コマンドそのものと所要時間がマイクロ秒単位で表示されます。 - **
MEMORY DOCTOR**はメモリー圧迫の調査に使えます。現時点でメモリー使用量に見られる異常を、1 段落で要約して返します。
for entry in redis.slowlog_get(10):
print(f"{entry['duration']}μs {entry['command']}")
references/commands.mdを参照してください。
Redis Insight
対話的な操作(クエリの実行、キーの参照、インデックスのプロファイリング)には、公式 GUI のRedis Insightを利用できます。SLOWLOG / INFO / FT.PROFILE のデータを視覚的に表示し、自然言語によるクエリに使える Redis Copilot も備えています。開発中やインシデント対応時に便利ですが、メトリクスを監視システムにエクスポートする代わりにはなりません。
参考資料
コメント
Markdown 対応