Rumah >pembangunan bahagian belakang >tutorial php >Cara menggunakan Elasticsearch untuk pemantauan prestasi aplikasi PHP

Cara menggunakan Elasticsearch untuk pemantauan prestasi aplikasi PHP

PHPz
PHPzasal
2023-07-09 20:39:10751semak imbas

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.

  1. Pasang Elasticsearch dan pelanggan PHP.
    Sebelum menggunakan Elasticsearch, kami perlu memasang klien Elasticsearch dan PHP terlebih dahulu. Anda boleh memuat turun dan memasang Elasticsearch dari laman web rasmi Elasticsearch, dan menggunakan Composer untuk memasang klien PHP Elasticsearch.
  2. Buat indeks dan pemetaan.
    Sebelum memulakan pemantauan, kami perlu mencipta indeks dan menentukan pemetaan untuk menyimpan data pemantauan prestasi kami. Berikut ialah contoh mudah:
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.

  1. Rakam data pemantauan prestasi.
    Di tempat utama dalam aplikasi, kami boleh menggunakan klien Elasticsearch PHP untuk merekod data pemantauan prestasi. Berikut ialah contoh:
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.

  1. Soal dan analisis data prestasi.
    Sebaik sahaja kami mula merekodkan data prestasi, kami boleh menggunakan pertanyaan dan keupayaan analisis yang berkuasa Elasticsearch untuk mendapatkan dan menganalisis data ini. Berikut ialah contoh:
// 构建查询
$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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn