Redis のメトリクス - Amazon ElastiCache for Redis

Redis のメトリクス

AWS/ElastiCache 名前空間には、次の Redis メトリクスが含まれます。

ReplicationLag および EngineCPUUtilization を除き、これらのメトリクスは、Redis の info コマンドから算出されます。各メトリクスは、キャッシュノードレベルで算出されます。

Redis の info コマンドの詳細は、「http://redis.io/commands/info」を参照してください。

以下の資料も参照してください

メトリクス 説明 単位
ActiveDefragHits アクティブなデフラグメンテーションプロセスで実行された 1 分あたりの値の再割り当て数。これは、 [Redis INFO] での active_defrag_hits 統計から算出されます。 数値
AuthenticationFailures AUTH コマンドを使用した Redis への認証に失敗した試行の合計数。個々の認証失敗の詳細については、[ACL ログ] コマンドを使用して検索できます。不正アクセスの試みを検出するために、このアラームを設定することをお勧めします。 [Count] (カウント)
BytesUsedForCache データセット、バッファなど、すべての目的で Redis によって割り当てられた合計バイト数。 バイト
データ階層化 を使用する Redis クラスターの Dimension: Tier=Memory: メモリによってキャッシュに使用される合計バイト数です。これは、Redis INFO での used_memory 統計の価値です。 バイト
データ階層化 を使用する Redis クラスターの Dimension: Tier=SSD: SSD によってキャッシュに使用される合計バイト数です。 バイト
BytesReadFromDisk ディスクから読み取られる 1 分あたりの合計バイト数です。データ階層化 を使用するクラスターのみがサポートされます。 バイト
BytesWrittenToDisk ディスクに書き込まれる 1 分あたりの合計バイト数です。データ階層化 を使用するクラスターのみがサポートされます。 バイト
CacheHits メインディクショナリで読み取り専用のキー検索に成功した数。これは、 [Redis INFO] での keyspace_hits 統計から算出されます。 [Count] (カウント)
CacheMisses メインディクショナリで読み取り専用のキー検索に失敗した数。これは、 [Redis INFO] での keyspace_misses 統計から算出されます。 [Count] (カウント)
CommandAuthorizationFailures ユーザーが呼び出すためのアクセス許可を持たないコマンドの実行に失敗した試行の合計数。個々の認証失敗の詳細については、[ACL ログ] コマンドを使用して検索できます。不正アクセスの試みを検出するために、このアラームを設定することをお勧めします。 [Count] (カウント)
CacheHitRate Redis インスタンスの使用効率を示します。キャッシュ比率が約 0.8 より小さい場合、かなりの量のキーが削除された、期限切れになった、または存在しないことを意味します。これは、cache_hitscache_misses 統計を使用して、次の方法で計算されます: cache_hits /(cache_hits + cache_misses) 割合 (%)
CurrConnections リードレプリカからの接続を除く、クライアント接続の数。ElastiCache は、それぞれのケースで 2~4 個の接続を使用してクラスターをモニタリングします。これは、 [Redis INFO] での connected_clients 統計から算出されます。 [Count] (カウント)
CurrItems キャッシュの項目数。これは、Redis keyspace 統計に基づき、キー空間全体のすべてのキーを合計することで算出されます。 [Count] (カウント)
データ階層化 を使用するクラスターの Dimension: Tier=Memory です。メモリ内の項目の数です。 [Count] (カウント)
データ階層化 を使用するクラスターの Dimension: Tier=SSD (ソリッドステートドライブ) です。SSD 内の項目の数です。 [Count] (カウント)
CurrVolatileItems TTL が設定されているすべてのデータベース内のキーの総数。これは、Redis expires 統計に基づき、キー空間全体で TTL 設定を持つすべてのキーを合計することで算出されます。 [Count] (カウント)
DatabaseMemoryUsagePercentage 使用中のクラスターのメモリの割合。これは、[Redis INFO] からの used_memory/maxmemory を使用して計算されます。 割合 (%)
DatabaseMemoryUsageCountedForEvictPercentage オーバーヘッドと COB に使用されるメモリを除く、使用中のクラスターのメモリの割合です。これは、[Redis INFO] からの used_memory-mem_not_counted_for_evict/maxmemory を使用して計算されます。 割合 (%)
DB0AverageTTL [Redis INFO] コマンドの keyspace 統計からの DBO の avg_ttl を公開します レプリカはキーを失効させず、プライマリノードがキーを失効させるまで待機します。プライマリノードがキーを失効させる (または LRU のためにキーを削除する) と、プライマリノードは DEL コマンドを合成し、それはすべてのレプリカに送信されます。したがって、レプリカノードではキーの有効期限がないため、DB0AverageTTL は 0 になり、TTL を追跡しません。 ミリ秒
EngineCPUUtilization

Redis エンジンスレッドの CPU 使用率を提供します。Redis はシングルスレッドであるため、このメトリクスを使用して、Redis プロセス自体のロードを分析できます。EngineCPUUtilization メトリクスは、Redis プロセスのより正確な可視性を提供します。CPUUtilization メトリクスと組み合わせてそれを使用できます。CPUUtilization は、他のオペレーティングシステムや管理プロセスを含むサーバーインスタンス全体の CPU 使用率を公開します。4 個以上の vCPU を持つ大きなノードの場合は、EngineCPUUtilization メトリクスを使用して、スケーリングのしきい値をモニタリングおよび設定します。

注記

ElastiCache ホスト上で、マネージドデータベースのエクスペリエンスを提供するために、バックグラウンドプロセスがホストをモニタリングします。これらのバックグラウンドプロセスは、CPU ワークロードのかなりの部分を占有する可能性があります。これは、vCPU が 2 個を超える大規模なホストでは重要ではありません。ただし、vCPU が 2 個以下の小規模なホストには影響を与える可能性があります。EngineCPUUtilization メトリクスのみをモニタリングする場合、Redis からの CPU 使用率と、バックグラウンドモニタリングプロセスからの CPU 使用率の両方が高く、ホストが過負荷になっている状況には気付くことができません。したがって、vCPU が 2 個以下のホストについては、CPUUtilization メトリクスをモニタリングすることをお勧めします。

割合 (%)
Evictions maxmemory の制限のため排除されたキーの数。これは、 [Redis INFO] での evicted_keys 統計から算出されます。 [Count] (カウント)
GlobalDatastoreReplicationLag これは、セカンダリリージョンのプライマリノードとプライマリリージョンのプライマリノード間の遅延です。クラスターモードが有効な Redis の場合、遅延はシャード間の最大遅延を示します。 [Seconds] (秒)
IsMaster ノードが現在のシャード/クラスタのプライマリノードかどうかを示します。メトリクスは 0 (プライマリではない) または 1 (プライマリ) にすることができます。 [Count] (カウント)
KeyAuthorizationFailures ユーザーがアクセス許可を持たないキーへのアクセスに失敗した試行の合計数。個々の認証失敗の詳細については、[ACL ログ] コマンドを使用して検索できます。不正アクセスの試みを検出するために、このアラームを設定することをお勧めします。 [Count] (カウント)
KeysTracked Redis のキートラッキングによって追跡されるキーの数 (tracking-table-max-keys のパーセンテージ)。キーラッキングは、クライアント側のキャッシュを支援するために使用され、キーが変更されたときにクライアントに通知します。 [Count] (カウント)
MemoryFragmentationRatio Redis エンジンのメモリ割り当ての効率を示します。特定のしきい値は、異なる動作を意味します。推奨値は、1.0 を超える断片化です。これは、[Redis INFO] の mem_fragmentation_ratio statistic から計算されます。 数値
NewConnections この期間内にサーバーによって受け入れられた接続の総数。これは、 [Redis INFO] での total_connections_received 統計から算出されます。 [Count] (カウント)
NumItemsReadFromDisk ディスクから取得される 1 分あたりの項目の総数です。データ階層化 を使用するクラスターのみがサポートされます。 [Count] (カウント)
NumItemsWrittenToDisk ディスクに書き込まれる 1 分あたりの項目の総数です。データ階層化 を使用するクラスターのみがサポートされます。 [Count] (カウント)
MasterLinkHealthStatus このステータスの値は、0 または 1 のいずれかになります。値 0 は、ElastiCache プライマリノードのデータが、EC2 の Redis と同期されていないことを示します。値 1 は、データが同期されていることを示します。移行を完了するには、CompleteMigration API オペレーションを使用します。 ブール値
Reclaimed キーの有効期限切れイベントの総数。これは、 [Redis INFO] での expired_keys 統計から算出されます。 [Count] (カウント)
ReplicationBytes レプリケートされたノードについては、ReplicationBytes は、プライマリがすべてのレプリカに対して送信するバイト数を報告します。このメトリクスは、レプリケーショングループに対する書き込み負荷を表します。これは、 [Redis INFO] での master_repl_offset 統計から算出されます。 バイト
ReplicationLag このメトリクスは、リードレプリカとして実行中のノードにのみ適用できます。レプリカのプライマリノードからの変更適用の進行状況を秒で表します。Redis エンジンバージョン 5.0.6 以降では、ラグはミリ秒単位で測定できます。 [Seconds] (秒)
SaveInProgress このバイナリメトリクスは、バックグラウンド保存 (分岐または分岐なし) が進行中の場合は常に 1 を返し、それ以外の場合は 0 を返します。バックグラウンド保存プロセスは一般に、スナップショットおよび同期の際に使用されます。これらのオペレーションによりパフォーマンスが低下する可能性があります。SaveInProgress メトリクスを使用して、パフォーマンスが低下した原因がバックグラウンド保存プロセスであるかどうかを診断できます。これは、 [Redis INFO] での rdb_bgsave_in_progress 統計から算出されます。 [Count] (カウント)
TrafficManagementActive ElastiCache for Redis が、受信コマンド、モニタリング、またはレプリケーションに割り当てられたトラフィックを調整することで、トラフィックをアクティブに管理しているかどうかを示します。トラフィックは、Redis が処理できる数よりも多くのコマンドがノードに送信された場合に管理され、エンジンの安定性と最適な動作を維持するために使用されます。データポイントが 1 の場合は、提供されているワークロードに対してノードが過小評価されていることを示している可能性があります。 ブール値

EngineCPUUtilization の利用可能性

以下の AWS リージョンは、サポートされているすべてのノードタイプで使用できます。

リージョン リージョン名
us-east-2 米国東部 (オハイオ)
us-east-1 米国東部(バージニア北部)
us-west-1 米国西部(北カリフォルニア)
us-west-2 米国西部 (オレゴン)
ap-northeast-1 アジアパシフィック (東京)
ap-northeast-2 アジアパシフィック (ソウル)
ap-northeast-3 アジアパシフィック (大阪)
ap-east-1 アジアパシフィック (香港)
ap-south-1 アジアパシフィック (ムンバイ)
ap-southeast-1 アジアパシフィック (シンガポール)
ap-southeast-2 アジアパシフィック (シドニー)
ap-southeast-3 アジアパシフィック (ジャカルタ)
ca-central-1 カナダ (中部)
cn-north-1 中国 (北京)
cn-northwest-2 中国 (寧夏)
me-south-1 中東 (バーレーン)
eu-central-1 欧州(フランクフルト)
eu-west-1 ヨーロッパ (アイルランド)
eu-west-2 欧州 (ロンドン)
eu-west-3 欧州 (パリ)
eu-south-1 ヨーロッパ (ミラノ)
af-south-1 アフリカ (ケープタウン)
eu-north-1 ヨーロッパ (ストックホルム)
sa-east-1 南米 (サンパウロ)
us-gov-west-1 AWS GovCloud (米国西部)
us-gov-east-1 AWS GovCloud (米国東部)

以下は特定の種類のコマンドの集計で、info commandstats から算出されています。commandstats セクションには、コール数、これらのコマンドによって消費された合計 CPU 時間、およびコマンド実行あたりの平均 CPU 消費など、コマンドタイプに基づいた統計情報が表示されます。コマンドタイプごとに、次の行が追加されます: cmdstat_XXX: calls=XXX,usec=XXX,usec_per_call=XXX

以下に示すレイテンシーメトリクスは、Redis INFO からの commandstats 統計を使用して計算されます。それらは次のように計算されます: delta(usec)/delta(calls)delta は、1 分以内の差分として計算されます。レイテンシーは、ElastiCache がコマンドを処理するのにかかった CPU 時間として定義されます。データ階層化を使用するクラスターの場合、SSD から項目を取得するのにかかる時間はこれらの測定に含まれないことにご注意ください。

利用可能なコマンドの完全なリストについては、Redis ドキュメントの「Redis コマンド」を参照してください。

メトリクス 説明 単位
ClusterBasedCmds クラスターベースのコマンドの総数。これは、クラスターに対して実行されるすべてのコマンド (cluster slotcluster info など) を合計することによって Redis commandstats 統計から算出されます。 [Count] (カウント)
ClusterBasedCmdsLatency クラスターベースのコマンドのレイテンシー。 マイクロ秒
EvalBasedCmds eval ベースのコマンドの合計数。これは、evalevalsha を合計することによって Redis commandstats 統計から算出されます。 [Count] (カウント)
EvalBasedCmdsLatency Eval ベースのコマンドのレイテンシー。 マイクロ秒
GeoSpatialBasedCmds 地理空間ベースのコマンドの総数。これは Redis commandstats 統計から算出されます。これは、すべての geo の種類のコマンド (geoaddgeodistgeohashgeoposgeoradius、および georadiusbymember) を合計することによって算出されます。 [Count] (カウント)
GeoSpatialBasedCmdsLatency 地理空間ベースのコマンドのレイテンシー。 マイクロ秒
GetTypeCmds read-only 型のコマンドの合計数。これは、すべての read-only の種類のコマンド (gethgetscardlrange など) を合計することによって Redis commandstats 統計から算出されます。 [Count] (カウント)
GetTypeCmdsLatency 読み取りコマンドのレイテンシー。 マイクロ秒
HashBasedCmds ハッシュベースのコマンドの総数。これは、1 つ以上のハッシュに対して実行されるすべてのコマンド (hgethkeyshvalshdel など) を合計することによって Redis commandstats 統計から算出されます。 [Count] (カウント)
HashBasedCmdsLatency ハッシュベースのコマンドのレイテンシー。 マイクロ秒
HyperLogLogBasedCmds HyperLogLog ベースのコマンドの合計数。これは、すべての pf の種類のコマンド (pfaddpfcountpfmerge など) を合計することによって Redis commandstats 統計から算出されます。 [Count] (カウント)
HyperLogLogBasedCmdsLatency HyperLogLogBased コマンドのレイテンシー。 マイクロ秒
JsonBasedCmds JSON ベースのコマンドの総数。これは、Redis commandstats 統計に基づき、1 つ以上の JSON ドキュメントオブジェクトに対して実行されるすべてのコマンドを合計することで算出されます。 [Count] (カウント)
JsonBasedCmdsLatency 1 つ以上の JSON ドキュメントオブジェクトに作用するすべてのコマンドの Delta[Usec]/Delta[Calls] として計算された合計レイテンシー (サーバー側の CPU 時間) を公開します。 マイクロ秒
KeyBasedCmds キーベースのコマンドの総数。これは、複数のデータ構造で 1 つ以上のキーに対して実行されるすべてのコマンド (delexpirerename など) を合計することによって Redis commandstats 統計から算出されます。 [Count] (カウント)
KeyBasedCmdsLatency キーベースのコマンドのレイテンシー。 マイクロ秒
ListBasedCmds リストベースのコマンドの総数。これは、1 つ以上のリストに対して実行されるすべてのコマンド (lindexlrangelpushltrim など) を合計することによって Redis commandstats 統計から算出されます。 [Count] (カウント)
ListBasedCmdsLatency リストベースのコマンドのレイテンシー。 マイクロ秒
PubSubBasedCmds pub/sub 機能のコマンドの総数。これは、pub/sub 機能で使用されるすべてのコマンド (psubscribepublishpubsubpunsubscribesubscribeunsubscribe) を合計することによって Redis commandstats 統計から算出されます。 [Count] (カウント)
PubSubBasedCmdsLatency PubSubBased コマンドのレイテンシー。 マイクロ秒
SetBasedCmds セットベースのコマンドの総数。これは、1 つ以上のソートされたセットに対して実行されるすべてのコマンド (scardsdiffsaddsunion など) を合計することによって Redis commandstats 統計から算出されます。 [Count] (カウント)
SetBasedCmdsLatency セットベースのコマンドのレイテンシー。 マイクロ秒
SetTypeCmds write 型のコマンドの合計数。これは、データ上で動作する mutative の種類のすべてのコマンド (sethsetsaddlpop など) を合計することによって Redis commandstats 統計から算出されます。 [Count] (カウント)
SetTypeCmdsLatency 書き込みコマンドのレイテンシー。 マイクロ秒
SortedSetBasedCmds ソートされたセットベースのコマンドの総数。これは、1 つ以上のソートされたセットに対して実行されるすべてのコマンド (zcountzrangezrankzadd など) を合計することによって Redis commandstats 統計から算出されます。 [Count] (カウント)
SortedSetBasedCmdsLatency ソートベースのコマンドのレイテンシー。 マイクロ秒
StringBasedCmds 文字列ベースのコマンドの総数。これは、1 つ以上の文字列に対して実行されるすべてのコマンド (strlensetexsetrange など) を合計することによって Redis commandstats 統計から算出されます。 [Count] (カウント)
StringBasedCmdsLatency 文字列ベースのコマンドのレイテンシー。 マイクロ秒
StreamBasedCmds ストリームベースのコマンドの総数。これは、1 つ以上のストリームデータの種類に対して実行されるすべてのコマンド (xrangexlenxaddxdel など) を合計することによって Redis commandstats 統計から算出されます。 [Count] (カウント)
StreamBasedCmdsLatency ストリームベースのコマンドのレイテンシー。 マイクロ秒