Syntaxe
newrelic_record_datastore_segment(callable $func, array $parameters)
Enregistre un segment datastore.
Exigences
Version de l'agent 7.5.0.199 ou supérieure.
Description
Enregistre un segment datastore. Les segments de datastore apparaissent dans les onglets Breakdown table et Databases de la page Transactions dans l'UI New Relic.
Cette fonction permet d'instrumenter un datastore non supporté de la même manière que l' agent PHP instrumente automatiquement ses datastores supportés.
Paramètres
paramètres | Description |
---|---|
appelable | Requis. La fonction qui doit être chronométrée pour créer le segment datastore . |
éventail | Requis. Un éventail associatif de paramètres décrivant l'appel datastore . |
Les clés prises en charge dans l'éventail $parameters
sont les suivantes :
Clé | Description |
---|---|
chaîne | Requis. Le nom du produit datastore utilisé : par exemple, |
chaîne | Facultatif. La table ou la collection utilisée ou la requête effectuée. |
chaîne | Facultatif. L'opération en cours d'exécution : par exemple, Bien que les opérations puissent être spécifiées dans n'importe quel cas, New Relic suggère d'utiliser des minuscules pour mieux s'aligner sur les noms d'opération utilisés agent par datastore instrumentation l' automatisée de l' PHP. |
chaîne | Facultatif. Le nom de l'hôte datastore . |
chaîne | Facultatif. Le port ou le socket utilisé pour se connecter au datastore. |
chaîne | Facultatif. Le nom ou le numéro de la base de données utilisée. |
chaîne | Facultatif. La requête qui a été envoyée au serveur. Pour des raisons de sécurité, cette valeur n'est utilisée que si vous définissez |
chaîne | Facultatif. Le nom de l'ORM utilisé (par exemple : |
chaîne | Facultatif. La requête d’entrée qui a été fournie à l’ORM. Pour des raisons de sécurité, et comme pour le paramètre |
Important
Les arguments de chaîne utilisés dans l'éventail $parameters
ne doivent pas contenir le caractère spécial '/'.
Valeurs de retour
La valeur de retour de $callback
est renvoyée. Si une erreur se produit, false
est renvoyé et une erreur au niveau E_WARNING
sera déclenchée.
Exemples
instrumenté un datastoreNoSQL non pris en charge
Pour instrumenter un datastore NoSQL hypothétique appelé Bucket
qui expose une méthode get
, le code suivant créerait une métrique de datastore qui s'afficherait dans l'UI New Relic :
$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,));
instrumenté une bibliothèque de clients SQL non pris en charge
Pour enregistrer une requête pour une bibliothèque cliente MySQL non prise en charge avec la requête masquée et attachée au segment :
$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,));