Rumah >pembangunan bahagian belakang >tutorial php >Cara menggunakan Elasticsearch untuk pemantauan prestasi aplikasi PHP
Cara menggunakan Elasticsearch untuk melaksanakan pemantauan prestasi aplikasi PHP
Pengenalan:
Apabila kami membangunkan dan menyelenggara aplikasi PHP, kami selalunya perlu memantau prestasinya dan menemui serta menyelesaikan masalah dengan cepat. Elasticsearch ialah enjin carian sumber terbuka yang berkuasa yang boleh digunakan bukan sahaja untuk mencari data, tetapi juga untuk analisis dan pemantauan log. Dalam artikel ini, kita akan belajar cara menggunakan Elasticsearch untuk pemantauan prestasi aplikasi PHP dan menunjukkan cara melakukannya dengan contoh kod.
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'], ], ], ]);
Dalam kod sampel di atas, kami mencipta indeks bernama "php_performance_monitoring" dan menentukan pemetaan yang mengandungi medan untuk data pemantauan prestasi yang perlu kami rekod.
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, ]);
Dalam contoh di atas, kami telah menggunakan perpustakaan Monolog untuk mengendalikan log. Kami mencipta pengendali Elasticsearch dan menambahkannya pada contoh pengelogan. Kami kemudiannya boleh menggunakan kaedah info
untuk log data pemantauan prestasi kami, termasuk cap masa, tempoh permintaan, titik akhir dan kod respons.
// 构建查询 $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; }
Kod contoh di atas menunjukkan cara membina pertanyaan untuk mendapatkan semula data prestasi untuk titik akhir tertentu dan memproses hasil pertanyaan.
Ringkasan:
Dengan menggunakan Elasticsearch untuk pemantauan prestasi aplikasi PHP, kami boleh merekod dan menganalisis data prestasi dengan cepat untuk membantu kami menemui dan menyelesaikan masalah prestasi yang berpotensi. Dalam artikel ini, kami mempelajari cara memasang, mengkonfigurasi dan menggunakan Elasticsearch untuk merekod data prestasi dan menunjukkan cara untuk membuat pertanyaan dan menganalisis data ini melalui contoh kod. Semoga artikel ini berguna untuk pemantauan prestasi aplikasi PHP anda.
Atas ialah kandungan terperinci Cara menggunakan Elasticsearch untuk pemantauan prestasi aplikasi PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!