New Relic Infrastructure 用の MySQL インテグレーション

New Relic Infrastructure の MySQL インテグレーションは、MySQL データベースから New Relic 製品にデータをレポートします。ここでは、MySQL インテグレーションをインストールする方法、アクティブにする方法、取り込むことができるデータについて説明します。インテグレーションに関する共通情報については、インテグレーションの導入をご覧ください。

この機能を利用できるかは契約しているサブスクリプションレベルによります。

互換性と要件

要件:

インストール

MySQL インテグレーションをインストールする手順は以下の通りです。

  1. Infrastructure インテグレーションパッケージを入手します。
  2. 以下の bash コマンドを実行し、レプリケーション権限付きのユーザーを作成します。

    sudo mysql -e "CREATE USER 'newrelic'@'localhost' IDENTIFIED BY 'YOUR_SELECTED_PASSWORD';"
    
    sudo mysql -e "GRANT REPLICATION CLIENT ON *.* TO 'newrelic'@'localhost' WITH MAX_USER_CONNECTIONS 5;"
    
  3. bash で、インテグレーションフォルダーに移動します。
    cd /etc/newrelic-infra/integrations.d
    
  4. 以下を実行し、サンプルの設定ファイルのコピーを作成します。

    sudo cp mysql-config.yml.sample mysql-config.yml
    
  5. 次のセクションで説明するように、設定ファイル mysql-config.yml を編集します。
  6. Infrastructure エージェントを再起動します。

設定

このインテグレーションにより、メトリックとすべての設定項目をキャプチャするのコマンド、status が提供されます。このコマンドは、次の設定可能な引数を受け取ります。

  • hostname: MySQL のホスト名
  • port: MySQL サーバーがリッスンしているポート
  • username: the user connected to the MySQL
    サーバーに接続しているユーザー。上記の CREATE USER コマンドを使っていた場合、これは “newrelic” にセットされています。
  • password: 上記で指定されたユーザーのパスワード。
  • extended_metrics: 拡張された一連のメトリクスを提供します。デフォルトでは無効です。有効にするには 1 を設定します。
  • extended_innodb_metrics:
    追加の innodb のメトリクスをキャプチャします。デフォルトでは無効です。有効にするには1を設定します。
  • extended_myisam_metrics:
    追加の MyISAM メトリクスを取得します。デフォルトでは無効です。有効にするには1を設定します。

システムのメタデータ

MySQL インテグレーションは、MySQL システムに関する以下のメタデータを収集します。
この属性は、Insight の MysqlSample イベントタイプに対して問い合わせを行うと見つかります。

名前 説明
software.edition software.edition は、MySQL のversion_comment 変数の値をとります。
software.version MySQL サーバーのバージョン
cluster.nodeType 監視している MySQL ノードのロールに応じて、master または slave のどちらか。

メトリックデータ

MySQL インテグレーションは、以下のメトリックデータ属性を収集します。この属性は、Insight の MysqlSample イベントタイプに対して問い合わせると見つかります。インテグレーションのデータを検索して使用する方法については、インテグレーションデータの検索と使用をご覧ください。

デフォルトでキャプチャするメトリクス。

名前 単位 説明
db.handlerRollbackPerSecond rollbacks / second ストレージエンジンがロールバック操作を実行するリクエストの割合。
db.innodb.bufferPoolPagesData pages データを含む InnoDB バッファプール内のページ数。
db.innodb.bufferPoolPagesFree pages InnoDB バッファプール内の空きページ数。
db.innodb.bufferPoolPagesTotal pages InnoDB バッファプールの合計サイズ(ページ単位)。
db.innodb.dataReadBytesPerSecond bytes / second InnoDB テーブルからデータを読み込む割合。
db.innodb.dataWrittenBytesPerSecond bytes / second InnoDB テーブルにデータが書き込まれる割合。
db.innodb.logWaitsPerSecond waits / second ログバッファーが小さ過ぎて、続行前にログバッファーがフラッシュされるまで待つ必要があった回数。
db.innodb.rowLockCurrentWaits rows InnoDB テーブルの操作によって現在待機されている行ロック数。
db.innodb.rowLockTimeAvg milliseconds InnoDB テーブルの行ロックを取得する平均時間(ミリ秒単位)。
db.innodb.rowLockWaitsPerSecond waits / second InnoDB テーブルの操作が、行ロックを待たなければならなかった回数。
db.openedTablesPerSecond tables / second my_open() (mysys ライブラリ関数)で開かれたファイル数。この機能を使わずにファイルを開いているサーバーの処理に関しては、カウントしません。
db.openFiles files 開いているファイル数。このカウントには、サーバーが開いた通常のファイルが含まれます。ソケットやパイプなどの他のタイプのファイルは含まれません。
db.openTables tables 開いているテーブル数。
db.qCacheFreeMemoryBytes bytes クエリキャッシュの空きメモリ量。
db.qCacheHitRatio percent キャッシュから取得されたクエリの割合。
db.qCacheNotCachedPerSecond queries / second キャッシュされていないクエリの数 (query_cache_type 設定のためにキャッシュ可能でない、またはキャッシュされていない)
db.qCacheUtilization percent 使用されているクエリキャッシュメモリの割合。
db.tablesLocksWaitedPerSecond queries / second テーブルロックの要求がすぐに許可されず、待機が必要だった回数。
net.abortedClientsPerSecond connections / second クライアントが正しく接続を終了せずに終了したために中止された接続数。
net.abortedConnectsPerSecond attempts / second MySQL サーバーへの接続に失敗した回数。
net.bytesReceivedPerSecond bytes / second すべてのクライアントから受信したスループット。
net.bytesSentPerSecond bytes / second すべてのクライアントに送信されたスループット。
net.connectionErrorsMaxConnectionsPerSecond connections / second サーバーの max_connections 制限に達したために接続が拒否された割合。
net.connectionsPerSecond connections / second 1秒当たりの接続試行回数。
net.maxUsedConnections connections サーバーが起動してから同時に使用された最大接続数。
net.threadsConnected connections 現在開いている接続数。
net.threadsRunning connections スリープしていないスレッド数。
query.comDeletePerSecond queries / second 1秒あたりに実行される DELETE ステートメントの数。
query.comDeleteMultiPerSecond queries / second 1秒あたりに実行される複数テーブルの構文を使用する DELETE ステートメント数。
query.comInsertPerSecond queries / second 1秒あたりに実行された INSERT 文の数。
query.comInsertSelectPerSecond queries / second 1秒あたりに実行される INSERT SELECT ステートメントの数。
query.comReplaceSelectPerSecond queries / second 1秒あたりに実行される REPLACE SELECT ステートメントの数。
query.comSelectPerSecond queries / second 1秒あたりに実行された SELECT ステートメントの数。
query.comUpdateMultiPerSecond queries / second 1秒あたりに実行される複数テーブルの構文を使用する UPDATE ステートメントの数。
query.comUpdatePerSecond queries / second 1秒あたりに実行された UPDATE ステートメントの数。
query.preparedStmtCountPerSecond statements / second プリペアードステートメントの現在の数。 (ステートメントの最大数は、システム変数
max_prepared_stmt_count によって与えられます)。
query.queriesPerSecond statements / second サーバーが実行するステートメントの合計数。ストアドプログラム内で実行されるステートメントを含む。
query.questionsPerSecond statements / second クライアントが送信したステートメントのみに制限されたサーバーが実行するステートメントの数。
query.slowQueriesPerSecond queries / second long_query_time 秒を超えたクエリの数。このカウンタは、低速クエリログが有効かどうかにかかわらず増分されます。

設定ファイルextended_metrics が有効になっている場合に取得されるメトリクスは以下の通りです。

名前 単位 説明
db.createdTmpDiskTablesPerSecond tables / second 文の実行中にサーバによって作成されたディスク上の一時的なテーブルの数。

The number of internal on-disk temporary tables created by the server while executing statements.

db.createdTmpFilesPerSecond tables / second mysqld が作成した一時ファイルの数。
db.createdTmpTablesPerSecond tables / second ステートメントの実行中にサーバーが作成した内部一時テーブルの数。
db.handlerDeletePerSecond deletes / second 表から行が削除された回数。
db.handlerReadFirstPerSecond reads / second インデックスの最初のエントリが読み取られた回数。
db.handlerReadKeyPerSecond reads / second キーに基づいて行を読み取るリクエスト数。
db.handlerReadRndNextPerSecond reads / second データファイルの次の行を読み込むリクエスト数。
db.handlerReadRndPerSecond reads / second 固定位置に基づいて行を読み取るリクエスト数。
db.handlerUpdatePerSecond rows / second テーブル内の行を更新するリクエスト数。
db.handlerWritePerSecond rows / second テーブルに行を挿入するリクエスト数。
db.maxExecutionTimeExceededPerSecond statements / second 実行タイムアウトを超えた SELECT ステートメントの数。
db.qCacheFreeBlocks blocks クエリキャッシュ内の空きメモリブロックの数。
db.qCacheHitsPerSecond hits / second クエリキャッシュヒットの数。
db.qCacheInserts queries クエリキャッシュに追加されたクエリの数。
db.qCacheLowmemPrunesPerSecond queries / second メモリ不足のためにクエリキャッシュから削除されたクエリの数。
db.qCacheQueriesInCachePerSecond queries / second クエリキャッシュに登録されたクエリの数。
db.qCacheTotalBlocks blocks クエリキャッシュ内のブロックの合計。
db.selectFullJoinPerSecond joins / second インデックスを使用しないためにで、テーブルスキャンを実行するジョインの数。
db.selectFullJoinRangePerSecond joins / second 参照テーブルで範囲検索を使用したジョインの数。
db.selectRangeCheckPerSecond joins / second 各行の後にキーの使用状況をチェックするキーのないジョインの数。
db.selectRangePerSecond joins / second 最初のテーブルの範囲を使用した結合の数。
db.sortMergePassesPerSecond passes / second 並べ替えアルゴリズムが実行しなければならなかったマージパスの数。
db.sortRangePerSecond sorts / second 範囲を使って行われたた並べ替えの数。
db.sortRowsPerSecond rows / second ソートされた行数。
db.sortScanPerSecond sorts / second テーブルをスキャンして行われた並べ替えの数。
db.tableOpenCacheHitsPerSecond hits / second オープン・テーブル・キャッシュ・ルックアップのヒット数。
db.tableOpenCacheMissesPerSecond misses / second オープンテーブルのキャッシュルックアップのミス数。
db.tableOpenCacheOverflowsPerSecond overflows / second オープン・テーブル・キャッシュのオーバーフロー数。
db.threadCacheMissRate percent キャッシュに十分なスレッドがないため、新しい接続を処理するために作成する必要があるスレッドの割合。
db.threadsCached threads スレッドキャッシュ内のスレッド数。
db.threadsCreatedPerSecond threads / second 接続処理のために作成されたスレッドの数。

設定ファイルextended_innodb_metrics が有効になっている場合に取得されるメトリクスは以下の通りです。

名前 単位 説明
db.innodb.bufferPoolPagesDirty pages InnoDB バッファプール内の現在のダーティページ数。
db.innodb.bufferPoolPagesFlushedPerSecond pages / second InnoDB バッファプールからページをフラッシュするリクエスト数。
db.innodb.bufferPoolReadAheadEvictedPerSecond reads / second 先読みバックグラウンドスレッドによって InnoDB バッファプールに読み込まれ、その後、クエリによるアクセスなしに削除されたページ数。
db.innodb.bufferPoolReadAheadPerSecond reads / second 先読みバックグラウンドスレッドによって InnoDB バッファプールに読み込まれたページ数。
db.innodb.bufferPoolReadAheadRndPerSecond reads / second InnoDBによって開始された「ランダム」先読みの数。これは、クエリがテーブルの大部分をランダムにスキャンする場合に発生します。

The number of “random” read-aheads initiated by InnoDB. This happens when a query scans a large portion of a table but in random order.

db.innodb.bufferPoolReadRequestsPerSecond pages / second 論理的な読み取りリクエスト数。
db.innodb.bufferPoolReadsPerSecond reads / second InnoDB がバッファプールから満たすことができず、ディスクから直接読み込まなければならない論理読み込みの数。
db.innodb.bufferPoolWaitFreePerSecond waits / second バッファプール内で使用可能なクリーンページがなかったために、InnoDB への読み書きが待機しなければならなかった回数。
db.innodb.bufferPoolWriteRequestsPerSecond requests / second InnoDB バッファプールへの書き込み回数。
db.innodb.dataFsyncsPerSecond fsyncs / second fsync() 操作の回数。
db.innodb.dataPendingFsyncs fsyncs 現在、保留中の fsync() 操作数。
db.innodb.dataPendingReads reads 現在、保留中の読み取り数。
db.innodb.dataPendingWrites writes / second 現在、保留中の書き込み数。
db.innodb.dataReadsPerSecond reads / second データ読み取りの回数(OSファイル読み取り)。

The number of data reads (OS file reads).

db.innodb.dataWritesPerSecond writes / second データ書き込み回数。
db.innodb.logWriteRequestsPerSecond requests / second InnoDB redo ログの書き込みリクエスト数。
db.innodb.logWritesPerSecond writes / second InnoDB redo ログファイルへの物理的な書き込み回数。
db.innodb.numOpenFiles files InnoDB が現在保持しているファイルの数。
db.innodb.osLogFsyncsPerSecond fsyncs / second InnoDB redo ログファイルに対して行われた fsync() の書き込み回数。
db.innodb.osLogPendingFsyncs fsyncs InnoDB redo ログファイルへの保留中の fsync() 操作数。
db.innodb.osLogPendingWrites writes / second InnoDB redo ログファイルへの書き込み待ちの回数。
db.innodb.osLogWrittenBytesPerSecond bytes / second InnoDB redo ログファイルに書き込まれたバイト数。
db.innodb.pagesCreatedPerSecond pages / second InnoDB テーブルの操作によって作成されたページ数。
db.innodb.pagesReadPerSecond pages / second InnoDB テーブルの操作によって InnoDB バッファプールから読み込まれたページ数。
db.innodb.pagesWrittenPerSecond pages / second InnoDB テーブルの操作によって書き込まれたページ数。
db.innodb.rowsDeletedPerSecond rows / second InnoDB テーブルから削除された行数。
db.innodb.rowsInsertedPerSecond rows / second InnoDB テーブルに挿入された行数。
db.innodb.rowsReadPerSecond rows / second InnoDB テーブルから読み込まれる行数。
db.innodb.rowsUpdatedPerSecond rows / second InnoDB テーブルで更新された行の数。

設定ファイルextended_myisam_metrics が有効になっている場合に取得されるメトリクスは以下の通りです。

名前 単位 説明
db.myisam.keyBlocksNotFlushed blocks 変更されたが、まだディスクにフラッシュされていない MyISAM キーキャッシュ内のキーブロック数。
db.myisam.keyCacheUtilization percent 使用中のキーキャッシュの割合。
db.myisam.keyReadRequestsPerSecond requests / second MyISAM キーキャッシュからキーブロックの読み取りリクエスト数。
db.myisam.keyReadsPerSecond reads / second ディスクから MyISAM キーキャッシュへのキーブロックの物理読み込み回数。
db.myisam.keyWriteRequestsPerSecond requests / second MyISAM キーキャッシュにキーブロックを書き込むリクエスト数。
db.myisam.keyWritesPerSecond writes / second MyISAM キーキャッシュからディスクへのキーブロックの物理書き込み回数。

インベントリ

MySQL インテグレーションは、SHOW GLOBAL VARIABLES によって返された MySQL ノードの設定パラメータを取得します。データは、Infrastructure Inventory ページconfig/mysql ソースの下にあります。