Comment utiliser Elasticsearch pour surveiller les performances des applications PHP

PHPz
Libérer: 2023-07-09 20:40:01
original
729 Les gens l'ont consulté

Comment utiliser Elasticsearch pour effectuer la surveillance des performances des applications PHP

Introduction :
Lorsque nous développons et maintenons des applications PHP, nous devons souvent surveiller leurs performances et découvrir et résoudre rapidement des problèmes. Elasticsearch est un puissant moteur de recherche open source qui peut être utilisé non seulement pour rechercher des données, mais également pour l'analyse et la surveillance des journaux. Dans cet article, nous apprendrons comment utiliser Elasticsearch pour surveiller les performances des applications PHP et montrerons comment le faire avec des exemples de code.

  1. Installez Elasticsearch et le client PHP.
    Avant d'utiliser Elasticsearch, nous devons d'abord installer Elasticsearch et le client PHP. Vous pouvez télécharger et installer Elasticsearch à partir du site Web officiel d'Elasticsearch et utiliser Composer pour installer le client PHP Elasticsearch.
  2. Créez des index et des mappages.
    Avant de commencer la surveillance, nous devons créer un index et définir un mappage pour stocker nos données de surveillance des performances. Voici un exemple simple :
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'],
        ],
    ],
]);
Copier après la connexion

Dans l'exemple de code ci-dessus, nous avons créé un index nommé "php_performance_monitoring" et défini un mappage qui contient les champs pour les données de surveillance des performances que nous devons enregistrer.

  1. Enregistrez les données de surveillance des performances.
    À des endroits clés de l'application, nous pouvons utiliser le client PHP Elasticsearch pour enregistrer les données de surveillance des performances. Voici un exemple :
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,
]);
Copier après la connexion

Dans l'exemple ci-dessus, nous avons utilisé la bibliothèque Monolog pour gérer les logs. Nous avons créé un gestionnaire Elasticsearch et l'avons ajouté à l'instance de journalisation. Nous pouvons ensuite utiliser la méthode info pour enregistrer nos données de surveillance des performances, y compris les horodatages, les durées des requêtes, les points de terminaison et les codes de réponse.

  1. Interrogez et analysez les données de performances.
    Une fois que nous avons commencé à enregistrer les données de performances, nous pouvons utiliser les puissantes capacités de requête et d'analyse d'Elasticsearch pour récupérer et analyser ces données. Voici un exemple :
// 构建查询
$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;
}
Copier après la connexion

L'exemple de code ci-dessus montre comment créer une requête pour récupérer les données de performances pour un point de terminaison spécifique et traiter les résultats de la requête.

Résumé :
En utilisant Elasticsearch pour la surveillance des performances des applications PHP, nous pouvons rapidement enregistrer et analyser les données de performances pour nous aider à découvrir et à résoudre les problèmes de performances potentiels. Dans cet article, nous avons appris à installer, configurer et utiliser Elasticsearch pour enregistrer des données de performances, et avons montré comment interroger et analyser ces données à l'aide d'exemples de code. J'espère que cet article sera utile pour surveiller les performances de vos applications PHP.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!