• ログイン今すぐ開始

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

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

問題を作成する

newrelic_record_datastore_segment (PHPエージェントAPI)

構文

newrelic_record_datastore_segment(callable $func, array $parameters)

データストアのセグメントを記録します。

要件

エージェントのバージョン 7.5.0.199 以上。

説明

データストアセグメントを記録します。データストアセグメントは、New Relic UI の Breakdown table および Databases tab of the Transactions page に表示されます。

この関数は、サポートされていないデータストアを、PHPエージェントが サポートされているデータストアを自動的にインスツルメンテーションするのと同じように、インスツルメンテーションすることができます

パラメータ

パラメーター

説明

$callback

キャラブル

必要です。データストア・セグメントを作成するために時間を設定する必要がある関数です。

パラメーター

アレイ

必要です。データストアの呼び出しを説明するパラメータの連想配列です。

$parameters 配列でサポートされているキーは次のとおりです。

キー

説明

製品

文字列

必須項目です。使用されているデータストア製品の名前です。例えば、 MySQL とすると、セグメントがMySQLデータベースに対するクエリを表していることになります。

コレクション

文字列

オプションです。使用または問い合わせを行うテーブルまたはコレクション。

操作

文字列

オプション。実行される操作:例えば、 select は SQL の SELECT クエリ、 set は Memcached のセット操作です。

操作名の大文字小文字は問いませんが、PHP エージェントの自動データストア計測機能で使用する操作名との整合性をとるために、New Relic では小文字を使用することを推奨します。

ホスト

文字列

オプションです。データストアのホスト名です。

ポートパスオリジン

文字列

オプションです。データストアへの接続に使用するポートまたはソケットです。

データベース名

文字列

オプションです。使用中のデータベース名または番号です。

問い合わせ

文字列

オプションです。サーバーに送信されたクエリです。

セキュリティ上の理由から、この値は、サポートされているデータストアに 製品 を設定した場合にのみ使用されます。これにより、エージェントはクエリを正しく難読化することができます。サポートされている product の値 (大文字小文字を区別せずに照合されます) は次のとおりです。 MySQL, MSSQL, Oracle, Postgres, SQLite, Firebird, Sybase, and Informix.

inputQueryLabel

文字列

オプションです。使用しているORMの名前です(例: Doctrine )。

inputQuery

文字列

オプションです。ORM に提供された入力クエリ。

セキュリティ上の理由から、また、 クエリ パラメータと同様に、製品がサポートされていないデータストアの場合、この値は無視されます。

戻り値

$callback の戻り値が返されます。エラーが発生した場合は、 false が返され、 E_WARNING レベルのエラーが発生します。

サポートされていないNoSQLデータストアのインストゥルメント化

Bucket という仮想的な NoSQL データストアで、 get メソッドを公開しているものをインストルメントするには、以下のコードでデータストアメトリクスを作成し、New Relic UI に表示させます。

$bucket = new Bucket($host, $port);
$id = 12345;
$value = newrelic_record_datastore_segment(function () use ($bucket, $id) {
return $bucket->get($id);
}, array(
'product' => 'Bucket',
'collection' => $id,
'operation' => 'get',
'host' => $host,
'portPathOrId' => $port,
));

サポートされていないSQLクライアントライブラリのインストゥルメント化

サポートされていないMySQLクライアントライブラリのクエリを、難読化してセグメントに添付して記録する。

$sql = 'SELECT * FROM table';
$stmt = $db->prepare($sql);
$result = newrelic_record_datastore_segment(function () use ($stmt) {
return $stmt->execute();
}, array(
'product' => 'MySQL',
'collection' => 'table',
'operation' => 'select',
'host' => $host,
'portPathOrId' => $port,
'databaseName' => 'dbname',
'query' => $query,
));
Copyright © 2022 New Relic株式会社。

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