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 ログ] コマンドを使用して検索できます。不正アクセスの試みを検出するために、このアラームを設定することをお勧めします。 カウント
BytesUsedForCache データセット、バッファなど、すべての目的で Redis によって割り当てられた合計バイト数。これは、 [Redis INFO] での used_memory 統計から算出されます。 バイト
CacheHits メインディクショナリで読み取り専用のキー検索に成功した数。これは、 [Redis INFO] での keyspace_hits 統計から算出されます。 カウント
CacheMisses メインディクショナリで読み取り専用のキー検索に失敗した数。これは、 [Redis INFO] での keyspace_misses 統計から算出されます。 カウント
CommandAuthorizationFailures ユーザーが呼び出すためのアクセス許可を持たないコマンドの実行に失敗した試行の合計数。個々の認証失敗の詳細については、[ACL ログ] コマンドを使用して検索できます。不正アクセスの試みを検出するために、このアラームを設定することをお勧めします。 カウント
CacheHitRate Redis インスタンスの使用効率を示します。キャッシュ比率が約 0.8 より小さい場合、かなりの量のキーが削除された、期限切れになった、または存在しないことを意味します。これは、cache_hitscache_misses 統計を使用して、次の方法で計算されます: cache_hits /(cache_hits + cache_misses) パーセント
CurrConnections リードレプリカからの接続を除く、クライアント接続の数。ElastiCache は、それぞれのケースで 2~4 個の接続を使用してクラスターをモニタリングします。これは、 [Redis INFO] での connected_clients 統計から算出されます。 カウント
DatabaseMemoryUsagePercentage 使用中のクラスターで使用可能なメモリの割合。これは、[Redis INFO] からの used_memory/maxmemory を使用して計算されます。 パーセント
DB0AverageTTL [Redis INFO] コマンドの keyspace 統計からの DBO の avg_ttl を公開します Milliseconds
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 統計から算出されます。 カウント
GlobalDatastoreReplicationLag これは、セカンダリリージョンのプライマリノードとプライマリリージョンのプライマリノード間の遅延です。クラスターモードが有効な Redis の場合、遅延はシャード間の最大遅延を示します。 Seconds
IsPrimary ノードが現在のシャード/クラスタのプライマリノードかどうかを示します。メトリクスは 0 (プライマリではない) または 1 (プライマリ) にすることができます。 カウント
KeyAuthorizationFailures ユーザーがアクセス許可を持たないキーへのアクセスに失敗した試行の合計数。個々の認証失敗の詳細については、[ACL ログ] コマンドを使用して検索できます。不正アクセスの試みを検出するために、このアラームを設定することをお勧めします。 カウント
KeysTracked Redis のキートラッキングによって追跡されるキーの数 (tracking-table-max-keys のパーセンテージ)。キーラッキングは、クライアント側のキャッシュを支援するために使用され、キーが変更されたときにクライアントに通知します。 カウント
PrimaryLinkHealthStatus このステータスの値は、0 または 1 のいずれかになります。値 0 は、ElastiCache プライマリノードのデータが、EC2 の Redis と同期されていないことを示します。値 1 は、データが同期されていることを示します。移行を完了するには、CompleteMigration API オペレーションを使用します。 ブール値
MemoryFragmentationRatio Redis エンジンのメモリ割り当ての効率を示します。特定のしきい値は、異なる動作を意味します。推奨値は、1.0 を超える断片化です。これは、[Redis INFO] の mem_fragmentation_ratio statistic から計算されます。 数値
NewConnections この期間内にサーバーによって受け入れられた接続の総数。これは、 [Redis INFO] での total_connections_received 統計から算出されます。 カウント
Reclaimed キーの有効期限切れイベントの総数。これは、 [Redis INFO] での expired_keys 統計から算出されます。 カウント
ReplicationBytes レプリケートされたノードについては、ReplicationBytes は、プライマリがすべてのレプリカに対して送信するバイト数を報告します。このメトリクスは、レプリケーショングループに対する書き込み負荷を表します。これは、 [Redis INFO] での master_repl_offset 統計から算出されます。 バイト
ReplicationLag このメトリクスは、リードレプリカとして実行中のノードにのみ適用できます。レプリカのプライマリノードからの変更適用の進行状況を秒で表します。Redis エンジンバージョン 5.0.6 以降では、ラグはミリ秒単位で測定できます。 Seconds
SaveInProgress このバイナリメトリクスは、バックグラウンド保存 (分岐または分岐なし) が進行中の場合は常に 1 を返し、それ以外の場合は 0 を返します。バックグラウンド保存プロセスは一般に、スナップショットおよび同期の際に使用されます。これらのオペレーションによりパフォーマンスが低下する可能性があります。SaveInProgress メトリクスを使用して、パフォーマンスが低下した原因がバックグラウンド保存プロセスであるかどうかを診断できます。これは、 [Redis INFO] での rdb_bgsave_in_progress 統計から算出されます。 カウント

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 アジアパシフィック (シドニー)
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 分以内の差分として計算されます。

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

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