在現代分布式系統中,鏈路追蹤(Tracing)是監控和診斷系統性能問題的重要工具。SkyWalking 是一款開源的 APM(應用性能監控)系統,特別適用于微服務架構下的分布式系統。本文將詳細介紹如何在 PHP 項目中安裝和配置 SkyWalking,以實現鏈路追蹤功能。
SkyWalking 是由 Apache 基金會孵化的開源項目,主要用于分布式系統的 APM(應用性能監控)。它支持多種語言,包括 Java、.NET、Node.js、Go、PHP 等。SkyWalking 提供了強大的鏈路追蹤、服務拓撲圖、性能指標監控等功能,幫助開發者快速定位和解決性能問題。
SkyWalking 是基于 Java 開發的,因此首先需要安裝 Java 環境。推薦使用 JDK 8 或更高版本。
# 在 Ubuntu 上安裝 OpenJDK 8
sudo apt-get update
sudo apt-get install openjdk-8-jdk
# 驗證 Java 安裝
java -version
訪問 SkyWalking 官方下載頁面,選擇適合的版本進行下載。本文以 8.4.0
版本為例。
# 下載 SkyWalking
wget https://downloads.apache.org/skywalking/8.4.0/apache-skywalking-apm-8.4.0.tar.gz
# 解壓
tar -zxvf apache-skywalking-apm-8.4.0.tar.gz
# 進入解壓后的目錄
cd apache-skywalking-apm-bin
SkyWalking 的配置文件位于 config
目錄下,主要配置文件為 application.yml
。根據實際需求,可以修改以下配置:
storage:
selector: ${SW_STORAGE:h2}
h2:
driver: org.h2.jdbcx.JdbcDataSource
url: jdbc:h2:mem:skywalking-oap-db
user: sa
password:
SkyWalking 提供了 PHP 的 Agent,用于在 PHP 應用中收集鏈路追蹤數據。首先需要下載并安裝 PHP Agent。
# 下載 PHP Agent
wget https://github.com/SkyAPM/SkyAPM-php-sdk/releases/download/v1.0.0/skywalking-agent-php.tar.gz
# 解壓
tar -zxvf skywalking-agent-php.tar.gz
# 進入解壓后的目錄
cd skywalking-agent-php
PHP Agent 的配置文件為 skywalking_agent.ini
,主要配置項包括:
skywalking.enable = 1
skywalking.version = 8
skywalking.app_code = my_php_app
skywalking.grpc = 127.0.0.1:11800
將 skywalking_agent.ini
文件復制到 PHP 的配置目錄中,并確保在 php.ini
中加載該配置文件。
# 復制配置文件
sudo cp skywalking_agent.ini /etc/php/7.4/cli/conf.d/
# 編輯 php.ini
sudo nano /etc/php/7.4/cli/php.ini
# 添加以下內容
extension=skywalking_agent.so
在 PHP 項目中,確保已經安裝了 Composer,并在 composer.json
中添加 SkyWalking 的依賴。
{
"require": {
"skyapm/skyapm-php-sdk": "^1.0"
}
}
然后運行 composer install
安裝依賴。
在 SkyWalking 的安裝目錄下,啟動 OAP(后端服務)和 UI(前端界面)。
# 啟動 OAP
bin/oapService.sh start
# 啟動 UI
bin/webappService.sh start
在 PHP 項目中,可以通過以下代碼片段驗證鏈路追蹤是否正常工作。
<?php
use SkyAPM\Tracer;
$tracer = new Tracer();
$span = $tracer->startSpan('my_span');
// 業務邏輯
$span->end();
訪問 PHP 應用,查看 SkyWalking UI 中是否有相應的鏈路數據。
SkyWalking UI 提供了豐富的監控和可視化功能,包括:
通過 SkyWalking UI,可以快速定位性能瓶頸,優化系統性能。
PHP Agent 未生效
skywalking_agent.ini
文件已正確加載。SkyWalking UI 無法訪問
鏈路數據未顯示
skywalking.grpc
配置是否正確。通過本文的介紹,您應該已經掌握了如何在 PHP 項目中安裝和配置 SkyWalking,實現鏈路追蹤功能。SkyWalking 提供了強大的監控和診斷工具,幫助開發者快速定位和解決性能問題。在實際生產環境中,建議根據需求調整配置,確保系統的穩定性和性能。
希望本文對您有所幫助,祝您在分布式系統的開發和維護中取得更大的成功!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。