Elasticsearch를 사용하여 PHP 애플리케이션의 성능 모니터링을 수행하는 방법
소개:
PHP 애플리케이션을 개발하고 유지 관리할 때 성능을 모니터링하고 문제를 신속하게 발견하고 해결해야 하는 경우가 많습니다. Elasticsearch는 데이터 검색뿐만 아니라 로그 분석 및 모니터링에도 사용할 수 있는 강력한 오픈 소스 검색 엔진입니다. 이 기사에서는 PHP 애플리케이션의 성능 모니터링을 위해 Elasticsearch를 사용하는 방법을 배우고 코드 예제를 통해 이를 수행하는 방법을 보여줍니다.
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'], ], ], ]);
위의 샘플 코드에서는 "php_performance_monitoring"이라는 인덱스를 생성하고 기록해야 하는 성능 모니터링 데이터에 대한 필드가 포함된 매핑을 정의했습니다.
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, ]);
위 예에서는 로그를 처리하기 위해 Monolog 라이브러리를 사용했습니다. Elasticsearch 핸들러를 생성하여 로깅 인스턴스에 추가했습니다. 그런 다음 info
메서드를 사용하여 타임스탬프, 요청 기간, 엔드포인트 및 응답 코드를 포함한 성능 모니터링 데이터를 기록할 수 있습니다.
// 构建查询 $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; }
위의 예제 코드는 특정 엔드포인트에 대한 성능 데이터를 검색하고 쿼리 결과를 처리하는 쿼리를 작성하는 방법을 보여줍니다.
요약:
PHP 애플리케이션의 성능 모니터링을 위해 Elasticsearch를 사용하면 성능 데이터를 빠르게 기록하고 분석하여 잠재적인 성능 문제를 발견하고 해결하는 데 도움이 됩니다. 이 글에서는 Elasticsearch를 설치, 구성, 사용하여 성능 데이터를 기록하는 방법을 알아보고, 코드 예제를 통해 이 데이터를 쿼리하고 분석하는 방법을 시연했습니다. 이 기사가 PHP 애플리케이션의 성능 모니터링에 도움이 되기를 바랍니다.
위 내용은 PHP 애플리케이션의 성능 모니터링을 위해 Elasticsearch를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!