From 4d0bd0b4ceaadf8ab9b6c4e367eccd92dd3cb0f4 Mon Sep 17 00:00:00 2001 From: lacatoire Date: Mon, 15 Jun 2026 11:03:24 +0200 Subject: [PATCH] [Sync EN] Fix bpftrace note about environment variable (#5602) --- features/dtrace.xml | 200 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 199 insertions(+), 1 deletion(-) diff --git a/features/dtrace.xml b/features/dtrace.xml index 83d2219bd..890fc0e02 100644 --- a/features/dtrace.xml +++ b/features/dtrace.xml @@ -1,5 +1,5 @@ - + DTrace Dynamic Tracing (Anwendungsanalyse in Echtzeit) @@ -573,6 +573,204 @@ probe process("sapi/cli/php").provider("php").mark("request__startup") { + + + Verwendung von bpftrace mit statischen PHP-DTrace-Sonden + + Auf Linux-Distributionen mit einem Kernel, der eBPF unterstützt, kann + sich das Werkzeug bpftrace direkt an die statischen USDT-DTrace-Sonden + von PHP anhängen, ohne dass SystemTap erforderlich ist. + + + Installation von bpftrace + + bpftrace wird über den Paketmanager der Distribution installiert. + Zum Beispiel unter Oracle Linux, RHEL oder Fedora: + + + + + + Oder unter Debian oder Ubuntu: + + + + + + + + Die folgenden Beispiele gehen davon aus, dass die PHP-Zielbinärdatei + unter /usr/bin/php installiert ist. + + + Dieselben USDT-Sonden werden auch von anderen SAPIs bereitgestellt, + die aus demselben Quellbaum erstellt wurden, sodass das Sondenziel + stattdessen das Apache-Modul (libphp.so) oder + die Binärdatei des FastCGI-Prozessmanagers + (php-fpm) sein kann; der passende Pfad ist + entsprechend zu ersetzen oder mittels -p über die + PID anzuhängen. + + + Es ist sicherzustellen, dass die Zielbinärdatei mit DTrace erstellt + wurde und die Umgebungsvariable richtig konfiguriert ist. + Weitere Einzelheiten finden sich unter PHP für statische DTrace-Sonden konfigurieren. + + + Die statischen Sonden in PHP können mittels + bpftrace aufgelistet werden: + + + + + + + + + Dies gibt aus: + + + + + + + + + + <filename>all_probes.bt</filename> für die Verfolgung aller statischen PHP-Sonden mit bpftrace + + + + + + + + Das obige Skript verfolgt während der gesamten Dauer eines laufenden + PHP-Skripts alle statischen Sondenpunkte des PHP-Kerns. bpftrace + erfordert root-Rechte: + + + + + + + + + Um einen bereits laufenden PHP-Prozess zu verfolgen (zum Beispiel + einen php-fpm-Worker oder einen Apache-Prozess, + der libphp.so lädt), wird über die PID + angehängt: + + + + + + Der Zielpfad usdt: im Skript muss mit der + Binärdatei des laufenden Prozesses übereinstimmen; dazu ist + usdt:/usr/bin/php entsprechend an die + php-fpm-Binärdatei oder + libphp.so anzupassen. + + +