• ログイン今すぐ開始

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

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

問題を作成する

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

アレイ

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

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

説明

product

ストリング

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

collection

ストリング

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

operation

ストリング

オプション。実行中の操作: たとえば、SQL SELECT クエリの場合はselect 、Memcached セット操作の場合はset

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

host

ストリング

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

portPathOrId

ストリング

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

databaseName

ストリング

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

query

ストリング

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

セキュリティ上の理由から、この値は、サポートされているデータストアにproductを設定した場合にのみ使用されます。これにより、エージェントはクエリを正しく難読化できます。サポートされている製品の値 (大文字と小文字を区別しない方法で照合される) は、 MySQLMSSQLOraclePostgresSQLiteFirebirdSybase 、およびInformixです。

inputQueryLabel

ストリング

オプション。使用中の ORM の名前 (例: Doctrine )。

inputQuery

ストリング

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

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

重要

$parameters配列で使用される文字列引数には、特殊文字「/」を含めないでください。

戻り値

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

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

getメソッドを公開するBucketという架空の NoSQL データストアを計測するには、次のコードで 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 © 2023 New Relic Inc.

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