ホームページ >バックエンド開発 >PHPチュートリアル >Elasticsearch を使用して PHP アプリケーションのパフォーマンスを監視する方法

Elasticsearch を使用して PHP アプリケーションのパフォーマンスを監視する方法

PHPz
PHPzオリジナル
2023-07-09 20:39:10753ブラウズ

Elasticsearch を使用して PHP アプリケーションのパフォーマンス監視を実行する方法

はじめに:
PHP アプリケーションを開発および保守するとき、多くの場合、パフォーマンスを監視し、問題を迅速に発見して解決する必要があります。 Elasticsearch は、データの検索だけでなく、ログの分析や監視にも使用できる強力なオープンソースの検索エンジンです。この記事では、PHP アプリケーションのパフォーマンス監視に Elasticsearch を使用する方法を学び、コード例を使用してその方法を示します。

  1. Elasticsearch クライアントと PHP クライアントをインストールします。
    Elasticsearch を使用する前に、まず Elasticsearch と PHP クライアントをインストールする必要があります。 Elasticsearch の公式 Web サイトから Elasticsearch をダウンロードしてインストールし、Composer を使用して Elasticsearch PHP クライアントをインストールできます。
  2. インデックスとマッピングを作成します。
    監視を開始する前に、インデックスを作成し、パフォーマンス監視データを保存するためのマッピングを定義する必要があります。以下は簡単な例です:
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」という名前のインデックスを作成し、データ フィールドを記録するために必要なパフォーマンス モニタリングを含むマッピングを定義しました。

  1. パフォーマンス監視データを記録します。
    アプリケーションの重要な場所で、Elasticsearch PHP クライアントを使用してパフォーマンス監視データを記録できます。以下に例を示します。
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 メソッドを使用して、タイムスタンプ、リクエスト期間、エンドポイント、応答コードなどのパフォーマンス監視データをログに記録できます。

  1. パフォーマンス データのクエリと分析。
    パフォーマンス データの記録を開始すると、Elasticsearch の強力なクエリ機能と分析機能を使用して、このデータを取得して分析できます。以下に例を示します。
// 构建查询
$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;
}

上記のコード例は、特定のエンドポイントのパフォーマンス データを取得し、クエリ結果を処理するクエリを構築する方法を示しています。

概要:
Elasticsearch を使用して PHP アプリケーションのパフォーマンス監視を実行すると、パフォーマンス データを迅速に記録して分析し、潜在的なパフォーマンスの問題を発見して解決することができます。この記事では、Elasticsearch をインストール、構成、使用してパフォーマンス データを記録する方法を学び、コード例を通じてこのデータをクエリおよび分析する方法を示しました。この記事が PHP アプリケーションのパフォーマンス監視に役立つことを願っています。

以上がElasticsearch を使用して PHP アプリケーションのパフォーマンスを監視する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。