Latency insights は、CloudDBA の機能であり、Tair (Redis OSS-compatible) インスタンスにおけるすべての Redis コマンドと最大 27 の内部イベントの実行時間を追跡します。統計はマイクロ秒単位で正確であり、3 日間保持されるため、リアルタイム診断とレイテンシースパイクの過去の分析の両方に役立ちます。
仕組み
Redis 2.8.13 では、組み込みのレイテンシーモニタリングが導入されました。これは限られたイベントセットをカバーし、データを 160 秒間のみ保持し、1 秒あたり 1 レコード (最高レイテンシーイベント) のみを保存します。
Latency insights はこれを以下のように拡張します。
永続性 — データは 3 日間保存され、その期間にわたるレイテンシースパイクを追跡できます。
高精度 — 完全なイベントがミリ秒単位でモニタリングされます。
低オーバーヘッド — インスタンスのパフォーマンスへの影響を最小限に抑えながら、非同期に実装されます。
リアルタイムクエリ — データは即座にクエリおよび集計できます。
複数の分析ディメンション — イベントタイプ、時間範囲、またはレイテンシー値でデータをスライスします。
定義されたしきい値を超えるコマンドとイベントのみが記録されます。しきい値はイベントタイプによって異なります (30 ミリ秒、50 ミリ秒、または 100 ミリ秒)。詳細については、「付録: 一般的な特殊イベント」をご参照ください。
前提条件
開始する前に、以下を確認してください。
インスタンスのマイナーバージョンがご利用のエディションの最小要件を満たしていること。マイナーバージョンの更新方法については、「インスタンスのマイナーバージョンを更新」をご参照ください。
エディション 最小マイナーバージョン 備考 Tair (Enterprise Edition) メモリ最適化 1.6.9 Tair モジュールコマンド統計には、1.7.28 以降を使用します。 Redis Open-Source Edition 5.0 5.1.4 Redis Open-Source Edition 6.0 0.1.15 Redis Open-Source Edition 7.0 7.0.0.6
課金
Latency insights は無料です。
レイテンシー統計の表示
コンソールにログインし、インスタンスページに移動します。上部のナビゲーションバーで、インスタンスがデプロイされているリージョンを選択します。インスタンスを見つけて、その ID をクリックします。
左側のナビゲーションウィンドウで、[CloudDBA] > [Latency Insights] をクリックします。
[レイテンシーインサイト] ページで、時間範囲を選択し、[検索] をクリックします。デフォルトビューでは、過去 5 分間の統計が表示されます。クエリは最大 3 日間のデータに対応できますが、1 回のクエリでカバーできる期間は 1 時間以内です。クラスターおよび読み書き分離インスタンスの場合、[データノード] タブと [プロキシノード] タブを使用して、ノードタイプ別に統計を表示します。
リスト内のイベント名またはカウントをクリックして、そのレイテンシー傾向チャートを開きます。チャートで、追加のメトリックを選択して傾向を重ねて表示します。

設定されたしきい値を超えるコマンドとイベントのみが記録されます。高レイテンシーイベントが表示される場合は、修復ガイダンスについて「一般的なレイテンシーイベントの処理に関する推奨事項」をご参照ください。
メトリックリファレンス
Latency Insights テーブルには、次の列が表示されます。
| メトリック | 説明 |
|---|---|
| イベント | イベント名。例: ExpireCycle、EventLoop、Ping、Scan、Commands、Info。詳細については、「付録: 一般的な特殊イベント」をご参照ください。 |
| 合計 | 記録された発生回数の合計。 |
| 平均レイテンシー (us) | 記録されたすべての発生における平均レイテンシー (マイクロ秒単位)。 |
| 最大レイテンシー (us) | 観測された最大レイテンシー (マイクロ秒単位)。 |
| 集計カウント (< 1 ms) | レイテンシーが 1 ミリ秒未満のイベントのカウント。 |
| <2 ms、<4 ms、...、>33s | 各レイテンシー範囲におけるイベントのカウント。 |
カウントルール: 各範囲は下限で排他的であり、上限で包括的です。たとえば、<2 us は 1 us から 2 us までのレイテンシーを持つイベントをカウントします。<2 ms は 1 ms から 2 ms までのレイテンシーを持つイベントをカウントします。>33s は 33 秒を超えるレイテンシーを持つイベントをカウントします。
次のステップ
一般的なレイテンシーイベントの処理に関する推奨事項 — 各イベントタイプの修復手順
インスタンスのマイナーバージョンを更新 — バージョン要件を満たすようにインスタンスを更新します。
付録: 一般的な特殊イベント
イベントは、関連する Redis サブシステムによってグループ化されます。しきい値列は、記録をトリガーする最小レイテンシーを示します。
メモリのエビクション
| イベント | しきい値 | 説明 |
|---|---|---|
| EvictionDel | 30 ms | 1 回のエビクションサイクルでエビクトされたキーを削除する時間。 |
| EvictionLazyFree | 30 ms | 1 回のエビクションサイクルでバックグラウンドスレッドがメモリを解放する時間。 |
| EvictionCycle | 30 ms | キー選択、削除、バックグラウンドスレッドの待機を含む、1 回のエビクションサイクルの合計時間。 |
メモリデフラグメンテーション
| イベント | しきい値 | 説明 |
|---|---|---|
| ActiveDefragCycle | 100 ms | 1 回のメモリデフラグメンテーションサイクルを実行する時間。 |
再ハッシュ
| イベント | しきい値 | 説明 |
|---|---|---|
| Rehash | 100 ms | ハッシュテーブルの再ハッシュを完了する時間。 |
データ構造のアップグレード
| イベント | しきい値 | 説明 |
|---|---|---|
| ZipListConvertHash | 30 ms | ziplist をハッシュエンコーディングを使用して辞書に変換する時間。 |
| IntsetConvertSet | 30 ms | intset をセットエンコーディングを使用してセットに変換する時間。 |
| ZipListConvertZset | 30 ms | ziplist を ziplist エンコーディングを使用して skiplist に変換する時間。 |
AOF (Append-only file)
| イベント | しきい値 | 説明 |
|---|---|---|
| AofWriteAlone | 30 ms | 通常の条件で AOF を書き込む時間。 |
| AofWrite | 30 ms | AOF を書き込む合計時間。AOF の書き込みが成功するたびに、このイベントは AofWriteAlone、AofWriteActiveChild、または AofWritePendingFsync のいずれか 1 つとともに記録されます。 |
| AofFstat | 30 ms | AOF ファイルのメタデータを取得する時間。 |
| AofRename | 30 ms | AOF ファイルの名前を変更する時間。 |
| AofReWriteDiffWrite | 30 ms | 子プロセスが AOF 再書き込みを完了した後、親プロセスが増分 AOF データを書き込む時間。 |
| AofWriteActiveChild | 30 ms | 別のプロセスも書き込みを行っているときに、AOF データをディスクに書き込む時間。 |
| AofWritePendingFsync | 30 ms | バックグラウンドプロセスが fsync を実行しているときに AOF データを書き込む時間。 |
RDB ファイル
| イベント | しきい値 | 説明 |
|---|---|---|
| RdbUnlinkTempFile | 50 ms | bgsave 子プロセスが終了した後、一時 RDB ファイルを削除する時間。 |
その他のイベント
| イベント | しきい値 | 説明 |
|---|---|---|
| Commands | 30 ms | 高速としてタグ付けされていないコマンドを実行する時間。 |
| FastCommand | 30 ms | 計算量が O(1) または O(log N) の高速タグ付きコマンドの実行時間。高速コマンドのリストについては、FastCommands セクションをご参照ください。 |
| EventLoop | 50 ms | メインイベントループの 1 回の反復を完了する時間。 |
| Fork | 100 ms | fork() を呼び出す時間。 |
| Transaction | 50 ms | トランザクションの実行時間。 |
| PipeLine | 50 ms | マルチスレッドパイプラインによって消費される時間。 |
| ExpireCycle | 30 ms | 1 サイクルで期限切れキーをスキャンしてクリアする時間。 |
| ExpireDel | 30 ms | 1 回の有効期限サイクル内で期限切れキーを削除する時間。 |
| SlotRdbsUnlinkTempFile | 30 ms | bgsave 子プロセスが終了した後、スロットの一時 RDB ファイルを削除する時間。 |
| LoadSlotRdb | 100 ms | スロットから RDB ファイルをロードする時間。 |
| SlotreplTargetcron | 50 ms | 子プロセスを使用して、スロットの RDB ファイルを一時データベースにロードし、ターゲットデータベースに移行する時間。 |