EN
PHPRAY / EXPLORE

Start with the evidence.

Explore the product. Inspect the data. Choose your scope.

APACHE-2.0Local core, no accountCloud optional
Go to installation
PHPRay / Product

PHP under control.
From URL to the source of the problem.

See the relationship between your application, database and HTTP services. Start with a specific request and narrow down the investigation.

Compare coverage
01 / From symptom to cause

Beyond “it is slow”.
Understand exactly why.

Connect PHP execution time, database queries and external APIs in a single investigation. No jumping between logs and plugin lists.

Catch the request that only happens once.

Duration, CPU, memory, SQL, outbound HTTP, files, Redis and PHP errors. The always-on layer records every request, including the one that is hard to reproduce.

request POST /checkout/   842 ms
├─ php      416 ms   49.4%
├─ mysql    318 ms   27 queries · N+1
└─ http     108 ms   api.shipping.example

A plugin, a theme
or WordPress itself?

Sampled profiling attributes execution time to components. Start with the most expensive component instead of disabling plugins one by one.

WooCommerce34%
Storefront29%
Wordfence24%
Other13%

Example from the WooCommerce test store: Storefront and 22 plugins. Values describe the profiled sample.

Spot repeated SQL.

Find slow fingerprints, query counts and N+1 patterns. Customer-specific parameter values do not need to appear in the report.

Waiting on an external API?

Separate time spent executing your code from time spent waiting on payment, shipping and other HTTP services.

From shared hosting to an entire fleet.

The extension runs inside PHP. A local collector stores request records in SQLite. Choose Cloud when you need to manage multiple sites.

Cloud is optional.

Open source. A local dashboard. No account required for local use. Data leaves the server only when you enable Cloud.

100%

of requests in the always-on layer

3%

default profiling sample

0 $

local collector and dashboard

1 view

PHP, SQL, HTTP and components

02 / A clear path to your data

Close to the code.
Far from guesswork.

Explore the architecture
[ 01 ] CONNECT

Choose your environment.

Use the PHP extension on your server, or the WordPress collector when loading a custom .so module is not an option.

[ 02 ] OBSERVE

Open your local dashboard.

Requests reach the collector through shared memory or JSONL. SQLite storage, an API and the diagnostics dashboard are available locally.

[ 03 ] RESOLVE

Investigate a specific problem.

Follow a slow URL to its SQL queries and components. After a change, compare the results with Studio or a higher plan.

YOUR SERVER / LOCAL BOUNDARY
PHP processRINIT / RSHUTDOWN · mysqli / PDO · cURL

phpray.so captures request, SQL, HTTP, file and error events. Observer API powers a separate, sampled profiling layer.

request record
RING BUFFER · /dev/shm/phprayand/orJSONL · /var/lib/phpray/traces
phpray-collectorGo binary · systemd

Reads the stream, stores SQLite data, applies retention and local alerts. Defaults: 30 days of history and a 4 GB database cap.

SQLiteTraces · SQL · 1-minute aggregates

Persistent local history. Retention windows and size limits are independent; the oldest records are pruned when either limit is reached.

REST API/api/v1/*

Local collector interface for the dashboard and CLI. It is distinct from the Cloud /v1/aggregates and /v1/traces protocol.

Local dashboard127.0.0.1:9191 · JWT

Sites, traces and component views. Loopback by default, with JWT access control. The local core needs no Cloud account.

PHPRay CloudOPTIONAL

Disconnected by default. Data stays local until you configure the connection.

Architecture diagram — the switch does not change server configuration.

Expand any node to inspect its scope. Full data protocol →

A clear view of overhead. The always-on layer records request-level events. Detailed function profiling is sampled. The WooCommerce store test results are preliminary, not a certified benchmark.

The next slow request?
You will know.

Explore the example. Inspect the details. Make a decision based on data.

Choose a plan