Comment utiliser Elasticsearch pour effectuer la surveillance des performances des applications PHP
Introduction :
Lorsque nous développons et maintenons des applications PHP, nous devons souvent surveiller leurs performances et découvrir et résoudre rapidement des problèmes. Elasticsearch est un puissant moteur de recherche open source qui peut être utilisé non seulement pour rechercher des données, mais également pour l'analyse et la surveillance des journaux. Dans cet article, nous apprendrons comment utiliser Elasticsearch pour surveiller les performances des applications PHP et montrerons comment le faire avec des exemples de code.
use ElasticsearchClientBuilder; // 创建Elasticsearch客户端 $client = ClientBuilder::create()->build(); // 创建索引 $client->indices()->create([ 'index' => 'php_performance_monitoring', ]); // 定义映射 $client->indices()->putMapping([ 'index' => 'php_performance_monitoring', 'body' => [ 'properties' => [ 'timestamp' => ['type' => 'date'], 'duration' => ['type' => 'float'], 'endpoint' => ['type' => 'keyword'], 'response_code' => ['type' => 'integer'], ], ], ]);
Dans l'exemple de code ci-dessus, nous avons créé un index nommé "php_performance_monitoring" et défini un mappage qui contient les champs pour les données de surveillance des performances que nous devons enregistrer.
use MonologLogger; use MonologHandlerElasticsearchHandler; // 创建Monolog日志实例 $logger = new Logger('performance'); // 创建Elasticsearch处理程序 $handler = new ElasticsearchHandler($client, [ 'index' => 'php_performance_monitoring', 'type' => 'log', ]); // 添加处理程序到日志实例 $logger->pushHandler($handler); // 记录性能监控数据 $logger->info('Performance monitoring', [ 'timestamp' => time(), 'duration' => 0.753, 'endpoint' => '/api/v1/users', 'response_code' => 200, ]);
Dans l'exemple ci-dessus, nous avons utilisé la bibliothèque Monolog pour gérer les logs. Nous avons créé un gestionnaire Elasticsearch et l'avons ajouté à l'instance de journalisation. Nous pouvons ensuite utiliser la méthode info
pour enregistrer nos données de surveillance des performances, y compris les horodatages, les durées des requêtes, les points de terminaison et les codes de réponse.
// 构建查询 $query = [ 'index' => 'php_performance_monitoring', 'size' => 10, 'body' => [ 'query' => [ 'match' => [ 'endpoint' => '/api/v1/users', ], ], 'sort' => [ 'timestamp' => [ 'order' => 'desc', ], ], ], ]; // 执行查询 $response = $client->search($query); // 处理查询结果 foreach ($response['hits']['hits'] as $hit) { $timestamp = $hit['_source']['timestamp']; $duration = $hit['_source']['duration']; $responseCode = $hit['_source']['response_code']; // 处理结果数据 echo "Timestamp: " . date('Y-m-d H:i:s', $timestamp) . PHP_EOL; echo "Duration: " . $duration . "s" . PHP_EOL; echo "Response Code: " . $responseCode . PHP_EOL; echo PHP_EOL; }
L'exemple de code ci-dessus montre comment créer une requête pour récupérer les données de performances pour un point de terminaison spécifique et traiter les résultats de la requête.
Résumé :
En utilisant Elasticsearch pour la surveillance des performances des applications PHP, nous pouvons rapidement enregistrer et analyser les données de performances pour nous aider à découvrir et à résoudre les problèmes de performances potentiels. Dans cet article, nous avons appris à installer, configurer et utiliser Elasticsearch pour enregistrer des données de performances, et avons montré comment interroger et analyser ces données à l'aide d'exemples de code. J'espère que cet article sera utile pour surveiller les performances de vos applications PHP.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!