このページでは、Memorystore for Redis Cluste で使用可能な Cloud Monitoring 指標を一覧表示するとともに、各指標の測定値について説明します。
Cloud Monitoring の指標
クラスタレベルの指標
これらの指標は、クラスタの全体的な健全性とパフォーマンスの概要を示します。これらは、クラスタの全体的な容量と使用率を把握し、潜在的なボトルネックや改善すべき領域を特定するのに役立ちます。
指標名 | 説明 |
---|---|
redis.googleapis.com/cluster/clients/average_connected_clients |
クラスタ全体の現在の平均クライアント接続数。 |
redis.googleapis.com/cluster/clients/maximum_connected_clients |
クラスタ全体の現在の最大クライアント接続数。 |
redis.googleapis.com/cluster/clients/total_connected_clients |
クラスタへの現在のクライアント接続の数。 |
redis.googleapis.com/cluster/stats/total_connections_received_count |
過去 1 分間に作成されたクラスタレベルのクライアント接続の合計数。 |
redis.googleapis.com/cluster/stats/cluster/stats/total_rejected_connections_count |
最大クライアント上限が原因で拒否された接続の数。 |
redis.googleapis.com/cluster/commandstats/total_usec_count |
コマンドごとに消費された合計時間。 |
redis.googleapis.com/cluster/commandstats/total_calls_count |
このコマンドの 1 分あたりの合計呼び出し数。 |
redis.googleapis.com/cluster/cpu/average_utilization |
クラスタの平均 CPU 使用率(0.0 ~ 1.0)。 |
redis.googleapis.com/cluster/cpu/maximum_utilization |
クラスタの最大 CPU 使用率(0.0 ~ 1.0)。 CPU 使用率がプライマリ ノードで 0.8 秒、リードレプリカとして指定された各レプリカで 0.5 秒を超えないようにします。詳細については、CPU 使用率のベスト プラクティスをご覧ください。 |
redis.googleapis.com/cluster/stats/average_expired_keys |
プライマリのキーの有効期限切れイベントの平均数。 |
redis.googleapis.com/cluster/stats/maximum_expired_keys |
プライマリのキー有効期限切れイベントの最大数。 |
redis.googleapis.com/cluster/stats/total_expired_keys_count |
プライマリのキーの有効期限切れイベントの合計数。 |
redis.googleapis.com/cluster/stats/average_evicted_keys |
プライマリのメモリ容量が原因で強制排除されたキーの平均数。 |
redis.googleapis.com/cluster/stats/maximum_evicted_keys |
プライマリのメモリ容量が原因で強制排除されたキーの最大数。 |
redis.googleapis.com/cluster/stats/total_evicted_keys_count |
プライマリのメモリ容量が原因で強制排除されたキーの数。 |
redis.googleapis.com/cluster/keyspace/total_keys |
クラスタに保存されているキーの数。 |
redis.googleapis.com/cluster/stats/average_keyspace_hits |
クラスタ全体でのキーの正常な検索の平均数。 |
redis.googleapis.com/cluster/stats/maximum_keyspace_hits |
クラスタ全体でのキーの正常な検索の最大数。 |
redis.googleapis.com/cluster/stats/total_keyspace_hits_count |
クラスタ全体でのキーの正常な検索の数。 |
redis.googleapis.com/cluster/stats/average_keyspace_misses |
クラスタ全体でのキーのルックアップに失敗した平均数。 |
redis.googleapis.com/cluster/stats/maximum_keyspace_misses |
クラスタ全体でのキーのルックアップに失敗した最大数。 |
redis.googleapis.com/cluster/stats/total_keyspace_misses_count |
クラスタ全体でのキーのルックアップに失敗した合計数。 |
redis.googleapis.com/cluster/memory/average_utilization |
クラスタ全体の平均メモリ使用率(0.0 ~ 1.0)。 |
redis.googleapis.com/cluster/memory/maximum_utilization |
クラスタ全体の最大メモリ使用率(0.0 ~ 1.0)。 |
redis.googleapis.com/cluster/memory/total_used_memory |
クラスタの合計メモリ使用量。 |
redis.googleapis.com/cluster/memory/size |
クラスタのメモリサイズ。 |
redis.googleapis.com/cluster/replication/average_ack_lag |
クラスタ全体におけるレプリカの平均確認応答ラグ(秒単位)。 確認応答ラグは、クラスタ内のプライマリ ノードのボトルネックです。このボトルネックは、プライマリ ノードから送信される情報にレプリカが対応できないことが原因で発生します。この場合、プライマリ ノードはレプリカが情報を受信したことを確認するまで待機する必要があります。これにより、トランザクションの commit が遅くなり、プライマリ ノードのパフォーマンスが低下する可能性があります。 |
redis.googleapis.com/cluster/replication/maximum_ack_lag |
クラスタ全体におけるレプリカの最大確認応答ラグ(秒単位)。 |
redis.googleapis.com/cluster/replication/average_offset_diff |
クラスタ全体におけるレプリケーション確認応答オフセットの平均差分(バイト単位)。 レプリケーション確認応答オフセットの差分とは、レプリカとそのプライマリ間でレプリケートされていないバイト数を意味します。 |
redis.googleapis.com/cluster/replication/maximum_offset_diff |
クラスタ全体におけるレプリケーション オフセット差分(バイト単位)。 レプリケーション オフセットの差分とは、レプリカとそのプライマリ間でレプリケートされていないバイト数を意味します。 |
redis.googleapis.com/cluster/stats/total_net_input_bytes_count |
クラスタ エンドポイントで受信された受信ネットワーク バイト数。 |
redis.googleapis.com/cluster/stats/total_net_output_bytes_count |
クラスタ エンドポイントから送信された送信ネットワーク バイト数。 |
ノードレベルの指標
これらの指標は、クラスタ内の個々のノードの健全性とパフォーマンスに関する詳細な分析情報を提供します。これらは、特定のノードの問題のトラブルシューティングや、パフォーマンスの最適化に役立ちます。
指標名 | 説明 |
---|---|
redis.googleapis.com/cluster/node/clients/connected_clients |
クラスタノードに接続されているクライアントの数。 |
redis.googleapis.com/cluster/node/clients/blocked_clients |
クラスタノードによってブロックされたクライアント接続の数。 |
redis.googleapis.com/cluster/node/server/uptime |
クラスタノードの稼働時間を測定します。 |
redis.googleapis.com/cluster/node/stats/connections_received_count |
クラスタノードで過去 1 分間に作成されたクライアント接続の合計数。 |
redis.googleapis.com/cluster/node/stats/rejected_connections_count |
クラスタノードの maxclients 上限が原因で拒否された接続の数。 |
redis.googleapis.com/cluster/node/commandstats/usec_count |
クラスタノード内のコマンドあたりの合計消費時間。 |
redis.googleapis.com/cluster/node/commandstats/calls_count |
クラスタノードでのこのコマンドの 1 分あたりの合計呼び出し数。 |
redis.googleapis.com/cluster/node/cpu/utilization |
クラスタノードの CPU 使用率(0.0 ~ 1.0)。 |
redis.googleapis.com/cluster/node/stats/expired_keys_count |
クラスタノードの有効期限切れイベントの合計数。 |
redis.googleapis.com/cluster/node/stats/evicted_keys_count |
クラスタノードによって削除されたキーの合計数。 |
redis.googleapis.com/cluster/node/keyspace/total_keys |
クラスタノードに保存されているキーの数。 |
redis.googleapis.com/cluster/node/stats/keyspace_hits_count |
クラスタノードでのキーの正常な検索の数。 |
redis.googleapis.com/cluster/node/stats/keyspace_misses_count |
クラスタノードでのキーのルックアップに失敗した数。 |
redis.googleapis.com/cluster/node/memory/utilization |
クラスタノード内のメモリ使用率(0.0 ~ 1.0)。 |
redis.googleapis.com/cluster/node/memory/usage |
クラスタノードの合計メモリ使用量。 |
redis.googleapis.com/cluster/node/stats/net_input_bytes_count |
クラスタノードが受信した受信ネットワーク バイト数。 |
redis.googleapis.com/cluster/node/stats/net_output_bytes_count |
クラスタノードから送信された送信ネットワーク バイト数。 |
redis.googleapis.com/cluster/node/replication/offset |
クラスタノードのレプリケーション オフセット バイト数を測定します。 |
redis.googleapis.com/cluster/node/server/healthy |
クラスタノードが使用可能で、正しく機能しているかどうかを判断します。この指標はプレビュー版です。 |
クロスリージョン レプリケーションの指標
このセクションでは、クロスリージョン レプリケーションに使用される指標を一覧表示します。
指標名 | 説明 |
---|---|
redis.googleapis.com/cluster/cross_cluster_replication/secondary_replication_links |
この指標は、プライマリ クラスタとセカンダリ クラスタ間のシャードリンクの数を示します。クロスリージョン レプリケーション(CRR)グループ内で、プライマリ クラスタは、グループ内のセカンダリ クラスタとの CRR レプリケーション リンクの数を報告します。各セカンダリ クラスタでは、この数はシャード数と同じになることが想定されています。予期せずシャード数がシャード数を下回った場合、これはレプリケータとフォロワー間のレプリケーションが停止したシャードの数を示します。理想的な状態では、この指標はプライマリ クラスタのシャード数と同じ値になります。 |
redis.googleapis.com/cluster/cross_cluster_replication/secondary_maximum_replication_offset_diff |
プライマリ シャードとセカンダリ シャード間の最大レプリケーション オフセット差。 |
redis.googleapis.com/cluster/cross_cluster_replication/secondary_average_replication_offset_diff |
プライマリ シャードとセカンダリ シャード間のレプリケーション オフセットの平均差。 |
バックアップ指標
このセクションでは、バックアップとインポートの指標について説明します。
クラスタレベルの指標
指標名 | 説明 |
---|---|
redis.googleapis.com/cluster/backup/last_backup_start_time |
前回のバックアップ オペレーションの開始時刻。 |
redis.googleapis.com/cluster/backup/last_backup_status |
最後のバックアップ オペレーションのステータス。ステータスは 1 (成功)と 0 (失敗)です。 |
redis.googleapis.com/cluster/backup/last_backup_duration |
前回のバックアップ オペレーションの所要時間(ミリ秒単位)。 |
redis.googleapis.com/cluster/backup/last_backup_size |
前回のバックアップのサイズ(バイト単位)。 |
redis.googleapis.com/cluster/import/last_import_start_time |
最後のインポート オペレーションの開始時刻。 |
redis.googleapis.com/cluster/import/last_import_duration |
最後のインポート オペレーションの所要時間(ミリ秒単位)。 |
永続性指標
このセクションでは、永続性指標のリストと、永続性指標のユースケースの例を示します。
RDB 永続性指標
クラスタレベルの指標
指標名 | 説明 |
---|---|
redis.googleapis.com/cluster/persistence/rdb_saves_count |
この指標は、クラスタが RDB スナップショット(保存とも呼ばれます)を取得した累積回数を示します。この指標には status_code フィールドがあります。スナップショットが失敗したかどうかを確認するには、status_code フィールドで次のエラーをフィルタします。3 - INTERNAL_ERROR |
redis.googleapis.com/cluster/persistence/rdb_save_ages |
この指標は、クラスタ内のすべてのノードのディストリビューション スナップショットの経過時間を示します。理想的には、スナップショットの頻度よりも遅延時間が短い(または同じ)値が分布に含まれていることが望ましいです。 |
ノードレベルの指標
指標名 | 説明 |
---|---|
redis.googleapis.com/cluster/node/persistence/rdb_bgsave_in_progress |
この指標は、クラスタノードで RDB BGSAVE が現在進行中かどうかを示します。TRUE は進行中であることを意味します。 |
redis.googleapis.com/cluster/node/persistence/rdb_last_bgsave_status |
この指標は、クラスタノードでの前回の BGSAVE の成功を示します。TRUE は成功を意味します。bgrewrite が発生していない場合、値はデフォルトで TRUE になることがあります。 |
redis.googleapis.com/cluster/node/persistence/rdb_saves_count |
この指標は、クラスタノードで実行された RDB 保存の累積数を示します。 |
redis.googleapis.com/cluster/node/persistence/rdb_last_save_age |
この指標は、前回の正常なスナップショットからの経過時間を秒単位で示します。 |
redis.googleapis.com/cluster/node/persistence/rdb_next_save_time_until |
この指標は、次のスナップショットまでの残り時間を秒単位で示します。 |
redis.googleapis.com/cluster/node/persistence/current_save_keys_total |
この指標は、クラスタノードで実行されている現在の RDB 保存のキーの数を示します。 |
AOF 永続性指標
クラスタレベルの指標
指標名 | 説明 |
---|---|
redis.googleapis.com/cluster/persistence/aof_fsync_lags |
この指標は、クラスタ内のすべてのノードの遅延(データの書き込みから永続ストレージの同期まで)の分布を示します。これは、appendfsync=everysec のクラスタでのみ出力されます。理想的には、AOF 同期頻度よりも遅延時間が短い(または同じ)値が分布に含まれていることが望ましいです。 |
redis.googleapis.com/cluster/persistence/aof_rewrite_count |
この指標は、クラスタでノードが AOF 書き換えをトリガーした累積回数を示します。この指標には status_code フィールドがあります。AOF 書き換えが失敗しているかどうかを確認するには、status_code フィールドをフィルタして、次のエラー(3 - INTERNAL_ERROR)を探します。 |
ノードレベルの指標
指標名 | 説明 |
---|---|
redis.googleapis.com/cluster/node/persistence/aof_last_write_status |
この指標は、クラスタノードでの最新の AOF 書き込みの成功を示します。TRUE は成功を意味します。書き込みが行われていない場合、値はデフォルトで TRUE になることがあります。 |
redis.googleapis.com/cluster/node/persistence/aof_last_bgrewrite_status |
この指標は、クラスタノードで最後に実行された AOF bgrewrite オペレーションの成功を示します。TRUE は成功を意味します。bgrewrite が発生していない場合、値はデフォルトで TRUE になることがあります。 |
redis.googleapis.com/cluster/node/persistence/aof_fsync_lag |
この指標は、クラスタノードのメモリと永続ストア間の AOF ラグを示します。これは、appendfsync=EVERYSEC の AOF 対応クラスタにのみ適用されます。 |
redis.googleapis.com/cluster/node/persistence/aof_rewrites_count |
この指標は、クラスタノードでの AOF 書き換えの数を示します。AOF 書き換えが失敗しているかどうかを確認するには、status_code フィールドをフィルタして、次のエラー(3 - INTERNAL_ERROR)を探します。 |
redis.googleapis.com/cluster/node/persistence/aof_fsync_errors_count |
この指標は、AOF fsync() 呼び出しエラーの数を示します。appendfsync=EVERYSEC|ALWAYS の AOF 対応クラスタにのみ適用されます。 |
一般的な永続性指標
AOF と RDB の両方の永続メカニズムに適用される指標。
ノードレベルの指標
指標名 | 説明 |
---|---|
redis.googleapis.com/cluster/node/persistence/auto_restore_count |
この指標は、ダンプファイル(AOF または RDB)からの復元の数を示します。 |
永続性指標のユースケースの例
AOF 書き込みオペレーションがレイテンシとメモリの負荷を引き起こしているかどうかを確認する
クラスタまたはクラスタ内のノードでレイテンシやメモリ使用量の増加が検出されたとします。この場合は、追加の使用量が AOF 永続性に関連しているかどうかを確認することをおすすめします。
AOF 書き換えオペレーションによって一時的な負荷の急増が引き起こされる可能性があることがわかっているため、aof_rewrites_count
指標を調べて、クラスタの存続期間またはクラスタ内のノードにおける AOF 書き換えの累積数を取得できます。この指標で、書き換え数の増加がレイテンシの増加に対応していることがわかったとします。このような状況では、書き込みレートを下げるか、シャード数を増やして書き換えの頻度を下げることで、問題を解決できます。
RDB 保存オペレーションがレイテンシとメモリの負荷を引き起こしているかどうかを確認する
クラスタまたはクラスタ内のノードでレイテンシやメモリ使用量の増加が検出されたとします。この場合は、追加の使用量が RDB 永続性に関連しているかどうかを確認することをおすすめします。
RDB 保存オペレーションによって一時的な負荷の急増が引き起こされる可能性があることがわかっているため、rdb_saves_count
指標を調べることができます。この指標は、クラスタまたはクラスタ内のノードのライフサイクル全体にわたる RDB 保存の累積カウントを示します。この指標で、RDB 保存数の増加がレイテンシの増加に対応していることがわかったとします。このような状況では、RDB スナップショットの間隔を短くして、書き換えの頻度を減らすことができます。クラスタをスケールアウトして、ベースラインの負荷レベルを下げることもできます。
Memorystore for Redis Cluste の指標の解釈
上記のリストに示されているように、指標の多くは、平均、最大、合計の 3 つのカテゴリに分かれます。
Memorystore for Redis Cluster の場合、同じ指標の平均と最大のバリエーションが提供されるため、両方を使用してその指標ファミリーのホットスポットを特定できます。
指標の合計値は独立しており、平均と最大でホットスポットを特定する目的とは関係なく、個別の分析情報を提供します。
平均値と最大値の指標について
クラスタの average_keyspace_hits
と maximum_keyspace_hits
の値を比較するとします。2 つの指標の差が大きくなるほど、インスタンスで発生するホットスポットが増加します。理想は、average_keyspace_hits
と maximum_keyspace_hits
の値が近いことです。これは、ホットスポットの発生がインスタンス間で均等に分散されていることを意味するためです。
この原則は、同じ指標の平均および最大の変動を持つすべての指標に適用されます。
ホットスポットの例
クラスタ内のすべてのシャードの average_keyspace_hits
と maximum_keyspace_hits
を比較すると、これらの値を比較することで、ホットスポットが発生している場所を特定できます。たとえば、6 シャード クラスタのシャードのヒット数が次のようになっているとします。
- シャード 1 ~ 2 ヒット
- シャード 2 ~ 2 ヒット
- シャード 3 - 2 ヒット
- シャード 4 - 2 ヒット
- シャード 5 - 2 ヒット
- シャード 6 ~ 8 ヒット
この例では、average_keyspace_hits
は値 3 を返し、maximum_keyspace_hits
は 8 を返します。これは、シャード 6 がホットであることを示しています。
クラスタ内のホットスポットを特定するために使用できるノードレベルの指標が提供されています。