Redisモニターインテグレーション

当社のRedisインテグレーションは、ご利用の Redis サーバーから重要なパフォーマンスデータをNew Relic製品にレポートします。このメトリックデータインベントリデータに関するプレビルドダッシュボードを閲覧し、アラートポリシーを作成して、カスタムクエリおよびチャートを作成することができます。また、ご利用のアプリケーションにとって重要なキーを指定して、その長さに関する詳細を入手することもできます。

インテグレーションのインストールと、当社がどのようなデータを収集するかについてお読みください。

互換性と要件

当社のインテグレーションは、Redisバージョン3.0以上と互換性があります。

インテグレーションをインストールする前に、以下の要件を満たしていることを確認してください。

このインテグレーションは、Redisコマンドを実行することでデータを取得します。

  • INFOコマンド:INFOコマンドによるデータが、メトリックデータと一部のインベントリデータを入力します。

  • CONFIG GETコマンド:大半のインベントリデータは、このコマンドによって取得できます。
    • CONFIG コマンドの実行許可を持たないマネージドRedisインスタレーション(例:AWS ElastiCache)では、このコマンドの実行を config_inventory: false 設定オプションで無効にできます。
  • キーの長さの取得: キーの種類によっては、以下のコマンドを使用します
    • listタイプに対してLLEN
    • setタイプに対してSCARD
    • zsetタイプに対してZCOUNT
    • hashタイプに対してHLEN

キーの長さに関するデータ収集において、エージェントは パイプライニング を使用してRedisのパフォーマンスへの影響を最小限に抑えます。ただし、多数のキーの長さを収集している場合は、Redisのパフォーマンスにも影響が出る場合があります。こうした理由から、エージェントにはデフォルトのキー制限が含まれています(ただし、この制限は上書き可能)。

上記のRedisコマンド名を修正した場合、インテグレーションがRedisデータを回収できなくなります。

このインテグレーションは、GithubでのMITライセンスの下でオープンソースとしてリリースされます。

インストールと有効化

Redisインテグレーションをインストールするには、お使いの環境の指示に従います:

ECS

ECSで実行しているサービスを監視するをご覧ください。

Kubernetes

Kubernetesで実行しているサービスを監視するをご覧ください。

Linux
  1. ファイル名nri-redisを使用して、インテグレーションのインストールのための手順に従ってください。

  2. ディレクトリをインテグレーションの設定フォルダに変更します:

    cd /etc/newrelic-infra/integrations.d
    
  3. サンプルの設定ファイルのコピー:

    sudo cp redis-config.yml.sample redis-config.yml
    
  4. Redisサーバーの接続方法に基づいて、redis-config.yml設定ファイルを編集します:

    Unix socketで接続する

    Unixソケットを使って接続している場合は、設定ファイルunix_socket_pathを指定します。

    必ず、Redisインテグレーションを実行するユーザーが、そのUnix socketへの適切なアクセス権限を持っていることを確認してください。Unixソケットのパーミッションは、Redis設定(unixsocketpermの値)に設定されています。

    TCPで接続する

    TCPを介して接続する場合、設定ファイルはデフォルトでlocalhostとポート6379に設定されます。これは、hostnameport、またはそれら両方の引数を指定することで変更できます。この方法を使う場合、unix_socket_pathパラメーターは設定できません。

  5. 必要に応じて、設定に書かれている通り、ご利用のRedisのセットアップに基づき、その他の設定ファイルを設定してください。
  6. Infrastructureエージェントを再起動 します。

追加の注:

インテグレーションを設定する

インテグレーションのYAML形式設定では、必要なログインクレデンシャルやデータの収集方法を設定できます。どのオプションを変更するかは、設定とプリファレンスにより異なります。

インストールの方法により、インテグレーションの設定方法はいくつかあります。

Configコマンドには、次のものが含まれます:

メトリックス

metricsは、メトリックデータをレポートし、次の引数を受け入れます:

  • hostname:Redisサーバーのホスト名。デフォルト値: localhost
  • port:Redisサーバーがリッスンするポート。デフォルト値: 6379
  • unix_socket_path:RedisサーバーがリッスンしているUnix socketパス(設定してある場合)。デフォルト値: なし。
  • keys:長さを読みだすキーの一覧。デフォルト値: なし。詳しくは キースペース構成 を参照してください。
  • keys_limit:長さを読みだすキーの最大数。デフォルト値: 30。詳しくは、このインテグレーションについておよびキースペースメトリックスの設定を参照してください。
  • password:Redisサーバーに接続する際のパスワード。ご利用のRedisサーバーがパスワード保護されている場合にのみ使用してください。デフォルト値: なし。
  • config_inventory: CONFIG GET Redisコマンドの呼び出しを回避するには、false に設定します。このオプションは、CONFIG コマンドの実行許可を持たないマネージド環境(例:AWS ElastiCache)において便利です。デフォルト値: true
インベントリは

inventoryは、requirepassを除くすべてのRedis設定パラメーターを取得します。インベントリデータの収集を無効にするには、構成ファイルからインベントリコマンドを削除します。

キースペース

選択したキーの長さに関連するメトリックスを表示したい場合は、redis-config.ymlに1行のJSONフォーマットでkeysパラメーターを指定してください。例えば:

keys: '{"0":["KEY_1"],"1":["KEY_2"]}'

選択したキーがRedisデータベース0だけに格納されている場合、keysパラメーターを以下のように設定できます:

keys: '["KEY_1","KEY_2"]'

keys_limitパラメーターは、パフォーマンス上の理由から30にデフォルト設定されます。この数値を増やした場合、ご利用のRedisサーバーのパフォーマンスに相当な影響が及ぶ可能性がある点に注意してください。

収集されたキースペースのメトリックデータを確認するには、RedisKeyspaceSampleを参照してください。

遠隔監視を起動する

remote_monitoringパラメーターにより、このインテグレーションの遠隔監視とマルチテナンシーが有効になります。

remote_monitoringを起動すると、一部の属性が変更されるほか、設定アラートに影響が及ぶ可能性があります。詳しくは、オンホストインテグレーションにおける遠隔監視を参照してください。

remote_monitoringを使用するには、Infrastructureエージェントのバージョン1.2.25以降が必要です。

環境変数パススルー

環境変数は構成設定の管理に使用された後、Infrastructureエージェントにパススルーされます。この機能の利用手順に関しては、Infrastructureエージェントを設定するを参照してください。

ホスト名

Redisサーバーのホスト名。

種類 文字列
デフォルト ローカルホスト

例:

HOSTNAME='Redis DB'
ポート

Redisサーバーがリッスンするポート。

種類 整数
デフォルト 6379

例:

PORT=7199
UNIX_SOCKET_PATH

RedisサーバーがリッスンしているUnix socketパス(設定してある場合)。

種類 文字列
デフォルト (なし)

例:

UNIX_SOCKET_PATH='tpf_unix_sock.server'
キー

長さを読みだすキーの一覧。

種類 JSON
デフォルト (なし)

例:

KEYS='{"0":["KEY_1"],"1":["KEY_2"]}'
KEYS_LIMIT

長さを読みだすキーの最大数。

種類 整数
デフォルト 30

例:

KEYS_LIMIT=50
パスワード

Redisサーバーに接続する際のパスワード。

種類 文字列
デフォルト (なし)

例:

PASSWORD='Hhv*$jIV'

オンホストインテグレーション設定の一般的な構成の詳細については、設定をご覧ください。

データの検索と使用

このサービスからのデータは、インテグレーションダッシュボードにレポートされます。

メトリックスはRedisSampleおよびRedisKeyspaceSampleイベントタイプに関連付けられます。トラブルシューティング目的で、またはカスタムのチャートとダッシュボードを作成するために、このデータのクエリを行えます。

データの検索・使用方法の詳細については、 インテグレーションデータを理解するをご覧ください。

メトリックデータ

Redisインテグレーションは、以下のメトリックデータ属性を収集します。

これらの属性は、RedisSampleイベントタイプに関連付けられます:

名前 説明
cluster.connectedSlaves 接続したスレーブの数。
db.aofLastRewriteTimeInMilliseconds 最後に行ったAOFの修正操作の時間(ミリ秒)。
db.aofLastBgrewriteStatus 最後に行ったAOFのバックグラウンド修正のステータスを示すブール表現。
db.aofLastWriteStatus 最後に行ったAOF書込み操作のステータスを示すブール表現。
db.evictedKeysPerSecond 1秒あたりのmaxmemory制限によって却下されたキーの数。
db.expiredKeysPerSecond 1秒あたりのキーの無効化イベントの数。
db.keyspaceHitsPerSecond 1秒あたりにメインディクショナリでキー検索が成功した回数。
db.keyspaceMissesPerSecond 1秒あたりにメインディクショナリでキー検索が失敗した回数。
db.latestForkUsecMilliseconds 最後に行ったフォーク操作の時間(ミリ秒)。
db.rdbBgsaveInProgress ブール値。RDBによる保存が進行中であることを示すフラグ。
db.rdbChangesSinceLastSave 最後のダンプが行われてからの変更数。
db.rdbLastBgsaveStatus 最後に行ったRDBの保存操作のステータスを示すブール表現。
db.rdbLastBgsaveTimeMilliseconds 最後に行ったRDBの保存操作の時間(ミリ秒)。
db.rdbLastSaveTime 最後に成功したRDB保存のエポックに基づくタイムスタンプ(秒)。
db.syncFull スレーブがこのマスターと完全に同期した回数。
db.syncPartialErr 部分同期の完了が失敗に終わった回数。
db.syncPartialOk 部分同期が完了した回数。
net.blockedClients ブロッキングコールで保留中のクライアント数(BLPOPBRPOPBRPOPLPUSH)。
net.clientBiggestInputBufBytes 現在のクライアント接続の中で最大の入力バッファ。
net.clientLongestOutputList 現在のクライアント接続の中で最大の出力リスト。
net.commandsProcessedPerSecond 1秒あたりにサーバーが処理するコマンドの数。
net.connectedClients クライアント接続の数(スレーブ接続を除く)。
net.connectionsReceivedPerSecond 1秒あたりにサーバーによって受け入れられた接続の数。
net.inputBytesPerSecond 1秒あたりの入力バイトの合計数。
net.outputBytesPerSecond 1秒あたりの出力バイトの合計数。
net.pubsubChannels クライアントサブスクリプションを持つpub/subチャネルのグローバルな数。
net.pubsubPatterns クライアントサブスクリプションを持つpub/subパターンのグローバルな数。
net.rejectedConnectionsPerSecond maxclientsによる制限を理由に却下された1秒あたりの接続数。
software.uptimeMilliseconds Redisサーバーを起動してから経過時間(ミリ秒)。
system.memFragmentationRatio used_memory_rssused_memoryの比率。
system.totalSystemMemoryBytes Redisが稼働中のインスタンスで利用可能なメモリ量(バイト数)。
system.usedCpuSysMilliseconds Redisサーバーで使用されるシステムのCPU(ミリ秒)。
system.usedCpuSysChildrenMilliseconds バックグラウンド処理で使用されるシステムのCPU(ミリ秒)。
system.usedCpuUserMilliseconds Redisサーバーが使用するユーザーのCPU(ミリ秒)。
system.usedCpuUserChildrenMilliseconds バックグラウンド処理で使用されるユーザーのCPU(ミリ秒)。
system.usedMemoryBytes Redisがそのアロケーター(標準libcjemalloc、またはtcmallocなどの代替アロケーター)を使用して割り当てた合計バイト数。
system.usedMemoryLuaBytes Luaエンジンが使用したバイト数。
system.usedMemoryPeakBytes Redisによるピークメモリ使用量(バイト数)。
system.usedMemoryRssBytes オペレーティングシステムから分かる、Redisが割り当てたバイト数(別名RSS=resident set size)。これは、top(1)ps(1)などのツールによってレポートされる数値です。

Redisインテグレーションは、以下のキースペースのメタデータおよびメトリックスを収集します。これらの属性は、RedisKeyspaceSampleイベントタイプに関連付けられます:

名前 説明
db.avgTtl レポートされるデータベース内で有効期限を設定されたキーの平均有効期間(TTL)(ミリ秒)。
db.keys レポートされるデータベース内のキーの数。
db.keyspace Redisデータベースの整数のインデックスです(通常、015の間の数値)。形式: dbの後にデータベースのインデックスが続きます。例えば:db0db1db2など。
db.expires レポートされるデータベース内の有効期間のあるキーの数。

インベントリデータ

インベントリデータには、Redisサーバーにパスワードを保管するrequirepassを除いた、Redis CONFIG GETコマンドによって報告されたデータのすべてが含まれます。インベントリデータの詳細に関しては、 インベントリデータを理解するを参照してください。

その他のシステムデータ

Redisインテグレーションは、Redisサービスに関する以下の追加 属性 を収集します。

名前 説明
software.version Redisサーバーのバージョン。例: 3.2.3
cluster.role 監視されているRedisノードの役割に応じて、masterまたはslave

その他のヘルプ

推奨する詳細情報: