• ログイン今すぐ開始

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

Amazon RDS Enhanced Monitoringの統合

New Relic インフラストラクチャ統合 には、 拡張された Amazon RDS データ を収集するための統合が含まれています。これは、基本的な New Relic RDS 統合 を補完するもので、データベースインスタンスが実行されているオペレーティングシステムに関するリアルタイムのメトリクスが含まれています。

特徴

このNew Relicの統合により、RDS Enhanced Monitoring上で監視と アラート を行うことができます。統合データやアラートを利用して、DBのプロセスを監視し、潜在的なトラブルスポットを特定したり、DBのプロファイリングを行い、レスポンスやコストの改善・最適化を図ることができます。

モニタリングの強化

重要

この統合を有効にすると、Amazon CloudWatchアカウントにいくつかの追加料金が発生します。また、いくつかの制限とCPUメトリックデータ収集の違いがありますが、これについてはAmazonの enhanced monitoring のドキュメントで説明されています。

RDS Enhanced Monitoring を有効にする前に、New Relic Amazon RDS monitoring integration を有効にしておく必要があります。 Connect AWS services to New Relic の手順が完了していることを確認してください。

New RelicはRDSのログを収集し、RDSインスタンスのほぼリアルタイムのデータを提供するためにAWS Lambdaを使用しており、この機能はAWSではRDS Enhanced Monitoringと呼ばれています。

以下の手順に従って、RDS Enhanced Monitoringの統合を有効にします。

  1. Enable RDS Enhanced Monitoringが必要なRDSインスタンスを指定します。インスタンスの作成または変更時に指定できます。 Monitoring の下で、 Enable Enhanced MonitoringYes を設定します。data Granularity を 15 秒に設定することをお勧めします。
  2. 拡張モニタリングを有効にすると、 RDSOSMetricsというストリームが AWS CloudWatch Logs に作成されます。強化されたモニタリング メトリックは、このストリームを介して利用できます。データを取得するには、次の手順でラムダ関数を作成し、そのストリームにサブスクライブします。
  3. サーバーレス リポジトリから新しい AWS Lambda 関数を作成します。 [Lambda] > [関数の作成] > [サーバーレス アプリ リポジトリの参照] に移動し、[カスタム IAM ロールまたはリソース ポリシーを作成するアプリを表示する] チェックボックスをオンにして、 NewRelic-log-ingestionを検索します。
  4. LICENSE_KEY環境変数に New Relic アカウントのライセンス キーを入力します。
  5. すべてのオプションのパラメータを確認し、ユースケースに基づいて適合させる。
  6. [デプロイ] を選択して、新しい CloudFormation スタック、 newrelic-log-ingestionという新しい関数、および必要なロールを作成します。
  7. newrelic-log-ingestion関数に移動します。
  8. 引き続き、 ストリームログをLambda関数 に流す手順を行います。

ヒント

newrelic-log-ingestion関数には、(AWS が推奨する) 最小限のアクセス許可を含む AWSLambdaBasicExecutionRole ポリシーが必要です。インストール時にカスタム IAM ロール名を定義できます。それ以外の場合は、CAPABILITY_IAM を承認する必要がある適切なロールが作成されます。

ラムダ関数にログを流す

RDSOSMetricsログ ストリームを Lambda 関数 (JSON 形式) にリンクするには:

  1. AWS コンソール > CloudWatch > Logsから、 RDSOSMetricsログ グループを選択し、 Actions > Create Lambda subscription filterを適用します。
  2. Lambda 関数の場合、 newrelic-log-ingestionを選択します。
  3. [ログ形式] ドロップダウンから、[ログ形式] としてJSONを選択します
  4. Subscription フィルタ名 を入力します。
  5. 下部にある「 Start streaming 」ボタンをクリックして、Lambdaサブスクリプションフィルターを保存します。

完了すると、Lambda 関数はRDSOSMetricsからのすべてのログ行を New Relic の取り込みサービスに送信します。

構成とポーリング

構成オプションを使用して、ポーリング頻度とフィルターデータを変更できます。

デフォルト ポーリング Amazon RDS Enhanced Monitoring統合の情報です。

  • New Relicのポーリング間隔。

    • 平均30秒 (CloudWatch Logs経由で収集)
    • AWS Lambdaのセットアップ時に設定可能
  • Amazon CloudWatchデータ間隔:1分

データを見つけて使用する

統合データを見つけるには、 one.newrelic.com > Infrastructure > AWSに移動し、 RDS > Enhanced monitoring dashboardリンクを選択します。

providerの値をRdsDbInstanceにして、 DatastoreSampleイベント タイプを使用して、データのクエリと探索を行うことができます。

データの使用方法の詳細については、統合データの理解と使用を参照してください。

メトリックデータ

New Relic は以下の拡張 RDS データを収集します。

すべてのDBエンジン(MS SQL Serverを除く)のメトリックデータ

グループ

指標

説明

General

engine

DBインスタンスのデータベースエンジン。

instanceId

DBインスタンスの識別子です。

instanceResourceId

DBインスタンスのリージョン固有の不変的な識別子で、ログストリームの識別子としても使用されます。

numVCpus

DBインスタンスの仮想CPUの数です。

timestamp

メトリクスが撮影された時間。

uptime

DBインスタンスがアクティブになっている時間です。

version

OSメトリクスのストリームJSON形式のバージョンです。

cpuUtilization

guest

ゲストプログラムが使用しているCPUの割合。

idle

アイドル状態のCPUの割合。

irq

ソフトウェア割り込みで使用されているCPUの割合。

nice

最も低い優先度で動作しているプログラムが使用しているCPUの割合。

steal

他の仮想マシンが使用しているCPUの割合。

system

カーネルが使用しているCPUの割合。

total

使用中のCPUの合計割合。この値はniceの値を除く。

user

ユーザープログラムが使用しているCPUの割合。

wait

I/Oアクセスを待っている間に使用されていないCPUの割合。

diskIO (Amazon Aurora では利用できません)

avgQueueLen

I/Oデバイスのキューで待っているリクエストの数。

avgReqSz

平均リクエストサイズ(単位:キロバイト)。

await

リクエストへの応答に必要なミリ秒数で、キュータイムやサービスタイムを含みます。

device

使用しているディスク装置の識別子です。

readIOsPS

1秒あたりの読み取り操作の回数。

readKb

読み込んだ総キロバイト数。

readKbPS

1秒間に読み込まれるキロバイト数。

rrqmPS

1秒間にキューイングされたマージされた読み取り要求の数。

tps

1秒あたりのI/Oトランザクションの数です。

util

リクエストが発行されたCPU時間の割合。

writeIOsPS

1秒あたりの書き込み操作の回数です。

writeKb

書き込まれた総キロバイト数。

writeKbPS

1秒間に書き込まれるキロバイトの数。

wrqmPS

1秒間にキューイングされたマージされた書き込み要求の数です。

fileSys

maxFiles

ファイルシステムに作成できるファイルの最大数。

total

ファイルシステムで利用可能なディスクの総容量をキロバイト単位で表したものです。

used

ファイルシステム内のファイルが使用するディスク容量をキロバイト単位で表したもの。

usedFilePercent

利用可能なファイルのうち、使用されている割合です。

usedFiles

ファイルシステム内のファイルの数です。

usedPercent

ファイルシステムのディスク使用量の割合。

loadAverageMinute

fifteen

過去15分間にCPU時間を要求したプロセスの数。

five

過去5分間にCPU時間を要求したプロセスの数。

one

過去1分間にCPU時間を要求したプロセスの数。

memory

active

割り当てられたメモリーの量(単位:キロバイト)。

buffers

ストレージデバイスへの書き込み前にI/O要求をバッファリングするために使用されるメモリの量をキロバイト単位で表したもの。

cached

ファイルシステムベースのI/Oをキャッシュするために使用されるメモリの量です。

dirty

RAM内で変更されたが、ストレージ内の関連データブロックに書き込まれていないメモリページの量(単位:キロバイト)。

free

割り当てられていないメモリの量をキロバイト単位で表します。

hugePagesFree

空いている巨大ページの数です。巨大ページは、Linuxカーネルの機能です。

hugePagesRsvd

コミットされた巨大なページの数です。

hugePagesSize

巨大なページ単位のサイズをキロバイト単位で指定します。

hugePagesSurp

トータルで見たときに、利用可能な余剰の巨大なページの数。

hugePagesTotal

システムの巨大なページの合計数です。

inactive

最も使用頻度の低いメモリページの量をキロバイト単位で表したものです。

mapped

プロセスのアドレス空間内にメモリーマップされているファイルシステムコンテンツの総量をキロバイト単位で表したもの。

pageTables

ページテーブルが使用するメモリの量をキロバイト単位で表します。

slab

再利用可能なカーネルデータ構造の量(単位:キロバイト)。

total

メモリの総量(単位:キロバイト)。

writeback

nキロバイトの量です。

network

rx

1秒あたりの受信バイト数。

tx

1秒間にアップロードされるバイト数です。

process

cpuUsedPc

プロセスが使用しているCPUの割合。

rss

プロセスに割り当てられたRAMの量(単位:キロバイト)。

memoryUsedPc

プロセスが使用しているメモリの量をキロバイト単位で表します。

processName

プロセスの名前です。

swap

cached

キャッシュメモリとして使用されるスワップメモリの量(単位:キロバイト)。

free

スワップメモリーの空き容量をキロバイト単位で表示します。

total

利用可能なスワップメモリーの総量(単位:キロバイト)。

tasks

blocked

ブロックされているタスクの数です。

running

実行中のタスクの数です。

sleeping

眠っているタスクの数です。

stopped

停止しているタスクの数です。

total

タスクの総数です。

zombie

アクティブな親タスクに対して非アクティブな子タスクの数。

MS SQLのメトリックデータ

グループ

指標

説明

disks

totalKb

ディスクの総容量(単位:キロバイト)。

usedKb

ディスク上で使用されている容量をキロバイト単位で表示します。

usedPc

ディスクの使用容量の割合です。

availKb

ディスクの空き容量(単位:キロバイト)。

availPc

ディスクの空き容量の割合です。

rdCountPS

1秒あたりの読み込み操作回数

rdBytesPS

1秒間に読まれたバイト数です。

wrCountPS

1秒あたりの書き込み操作の回数です。

wBytesPS

1秒間に書き込まれるバイト数。

memory

commitToKb

ページファイルでバックアップされた仮想アドレス空間の使用量、つまり現在のコミットチャージです。この値は、メインメモリ(RAM)とディスク(ページファイル)で構成されています。

commitLimitKb

commitTotKbメトリックの最大可能値。この値は、現在のページファイルのサイズと、ページング可能なコンテンツに使用できる物理メモリ(ページング不可能な領域に割り当てられているRAMを除く)の合計です。

commitPeakKb

オペレーティングシステムを最後に起動してからのcommitTotKbメトリックの最大値。

kernTotKb

ページングされたカーネルプールと、ページングされていないカーネルプールのメモリの合計(単位:キロバイト)。

kernPagedKb

ページングされたカーネルプールのメモリ量(単位:キロバイト)。

kernNonpagedKb

ページングされていないカーネルプールのメモリ量(単位:キロバイト)です。

pageSize

1ページのサイズをバイト単位で表します。

physTotKb

物理的なメモリの量をキロバイト単位で表します。

physAvailKb

利用可能な物理メモリの容量(単位:キロバイト)。

sqlServerTotKb

Microsoft SQL Serverにコミットされているメモリの量をキロバイト単位で表しています。

sysCacheKb

システムキャッシュメモリの容量(単位:キロバイト)。

network

rdBytesPS

1秒あたりの受信バイト数。

wrBytesPS

1秒あたりの送信バイト数です。

process

cpuUsedPc

プロセスが使用しているCPUの割合。

memUsedPc

プロセスが使用しているメモリの量をキロバイト単位で表します。

processName

プロセスの名前です。

workingSetKb

プライベートワーキングセットのメモリ量に、プロセスが使用中で他のプロセスと共有可能なメモリ量を加えたもので、単位はキロバイトです。

workingSetPrivKb

プロセスが使用しているが、他のプロセスと共有できないメモリの量をキロバイト単位で表したもの。

workingSetShareableKb

プロセスが使用中で、他のプロセスと共有可能なメモリの量をキロバイト単位で表したもの。

virtKb

プロセスが使用している仮想アドレス空間の量(単位:キロバイト)。仮想アドレス空間の使用は、必ずしもディスクやメインメモリのページの使用を意味するものではありません。

system

handles

システムが使用しているハンドルの数です。

processes

システム上で動作しているプロセスの数。

threads

システム上で動作しているスレッドの数。

定義

学期

説明

イベントタイプ

DataStoreSample

プロバイダー

RdsDbInstance

プロセス

Enhanced Monitoringでは、RDSインスタンスに関連する以下のプロセスを監視することができます。

  • RDS Process: RDS 管理エージェント、診断モニタリング プロセス、および RDS DB インスタンスをサポートするために必要なその他の AWS プロセスによって使用されるリソースの概要を示します。
  • RDS Child Process: RDS プロセスの下にネストされ、DB インスタンスをサポートする RDS プロセスの概要を示します。たとえば、Amazon Aurora DB クラスターの場合はaurora 、MySQL DB インスタンスの場合はmysqldです。
  • OS Processes: カーネルおよびシステム プロセスの概要を示します。通常、パフォーマンスへの影響は最小限です。
Copyright © 2022 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.