Home > Article > Backend Development > How to use Elasticsearch for performance monitoring of PHP applications
How to use Elasticsearch to perform performance monitoring of PHP applications
Introduction:
When we develop and maintain PHP applications, we often need to monitor their performance and quickly discover and solve problems. Elasticsearch is a powerful open source search engine that can be used not only for searching data, but also for log analysis and monitoring. In this article, we will learn how to use Elasticsearch for performance monitoring of PHP applications and demonstrate how to do it with code examples.
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'], ], ], ]);
In the above example code, we created an index named "php_performance_monitoring" and defined a mapping that contains the performance monitoring we need to record Data fields.
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, ]);
In the above example, we have used the Monolog library to process the logs. We created an Elasticsearch handler and added it to the logging instance. We can then use the info
method to log our performance monitoring data, including timestamps, request durations, endpoints, and response codes.
// 构建查询 $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; }
The above example code shows how to build a query to retrieve performance data for a specific endpoint and process the query results.
Summary:
By using Elasticsearch to perform performance monitoring of PHP applications, we can quickly record and analyze performance data to help us discover and solve potential performance problems. In this article, we learned how to install, configure, and use Elasticsearch to record performance data, and demonstrated how to query and analyze this data through code examples. Hope this article is helpful for performance monitoring of your PHP applications.
The above is the detailed content of How to use Elasticsearch for performance monitoring of PHP applications. For more information, please follow other related articles on the PHP Chinese website!