構文
newrelic_record_datastore_segment(callable $func, array $parameters)
データストアのセグメントを記録します。
要件
エージェントのバージョン 7.5.0.199 以上。
説明
データストアセグメントを記録します。データストアセグメントは、New Relic UI の Breakdown table および Databases tab of the Transactions page に表示されます。
この関数は、サポートされていないデータストアを、PHPエージェントが サポートされているデータストアを自動的にインスツルメンテーションするのと同じように、インスツルメンテーションすることができます 。
パラメータ
パラメーター | 説明 |
---|---|
キャラブル | 必要です。データストア・セグメントを作成するために時間を設定する必要がある関数です。 |
アレイ | 必要です。データストアの呼び出しを説明するパラメータの連想配列です。 |
$parameters
配列でサポートされているキーは次のとおりです。
キー | 説明 |
---|---|
文字列 | 必須項目です。使用されているデータストア製品の名前です。例えば、 |
文字列 | オプションです。使用または問い合わせを行うテーブルまたはコレクション。 |
文字列 | オプション。実行される操作:例えば、 操作名の大文字小文字は問いませんが、PHP エージェントの自動データストア計測機能で使用する操作名との整合性をとるために、New Relic では小文字を使用することを推奨します。 |
文字列 | オプションです。データストアのホスト名です。 |
文字列 | オプションです。データストアへの接続に使用するポートまたはソケットです。 |
文字列 | オプションです。使用中のデータベース名または番号です。 |
文字列 | オプションです。サーバーに送信されたクエリです。 セキュリティ上の理由から、この値は、サポートされているデータストアに |
文字列 | オプションです。使用しているORMの名前です(例: |
文字列 | オプションです。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,));