Metrikler
İpucu
Gerçek zamanlı panolar ve üretim izlemesi dahil eksiksiz bir gözlemlenebilirlik kurulumu için Gözlemlenebilirlik sayfasına bakın.
Prometheus dışa aktarımı
Caddy metrikleri etkinleştirildiğinde FrankenPHP şu metrikleri yayınlar:
frankenphp_total_threads: Toplam PHP iş parçacığı sayısı.frankenphp_busy_threads: Şu anda bir isteği işleyen PHP iş parçacığı sayısı (çalışan worker’lar her zaman bir iş parçacığı tüketir).frankenphp_queue_depth: Kuyruğa alınmış olağan istek sayısı.frankenphp_total_workers{worker="[worker_name]"}: Toplam worker sayısı.frankenphp_busy_workers{worker="[worker_name]"}: Şu anda bir isteği işleyen worker sayısı.frankenphp_worker_request_time{worker="[worker_name]"}: Tüm worker’ların istekleri işlemek için harcadığı süre.frankenphp_worker_request_count{worker="[worker_name]"}: Tüm worker’ların işlediği istek sayısı.frankenphp_ready_workers{worker="[worker_name]"}: En az bir kezfrankenphp_handle_requestçağırmış worker sayısı.frankenphp_worker_crashes{worker="[worker_name]"}: Bir worker’ın beklenmedik şekilde sonlandığı sayı.frankenphp_worker_restarts{worker="[worker_name]"}: Bir worker’ın bilinçli olarak yeniden başlatıldığı sayı.frankenphp_worker_queue_depth{worker="[worker_name]"}: Kuyruğa alınmış istek sayısı.
Worker metriklerinde [worker_name] yer tutucusu Caddyfile’daki worker adıyla değiştirilir; aksi halde worker dosyasının mutlak yolu kullanılır.
İş parçacığı durumu uç noktası
FrankenPHP, Caddy admin API üzerinden bir /frankenphp/threads uç noktası yayınlar.
Tüm etkin PHP iş parçacıklarının JSON anlık görüntüsünü döndürür; hata ayıklama ve gözlemlenebilirlik araçları oluşturmak için kullanışlıdır.
curl -s http://localhost:2019/frankenphp/threads | jq .
Yanıt biçimi
Uç nokta şu yapıda bir JSON nesnesi döndürür:
{
"ThreadDebugStates": [
{
"Index": 0,
"Name": "worker-/path/to/worker.php",
"State": "ready",
"IsWaiting": true,
"IsBusy": false,
"WaitingSinceMilliseconds": 1234,
"CurrentURI": "",
"CurrentMethod": "",
"RequestStartedAt": 0,
"RequestCount": 42,
"MemoryUsage": 2097152
}
],
"ReservedThreadCount": 3
}
Alanlar
| Alan | Tür | Açıklama |
|---|---|---|
ReservedThreadCount |
integer | Otomatik ölçekleme için ayrılmış, henüz etkin olmayan iş parçacığı sayısı. |
ThreadDebugStates içindeki her girdi şunları içerir:
| Alan | Tür | Açıklama |
|---|---|---|
Index |
integer | İş parçacığının indisi. |
Name |
string | İş parçacığının adı (ör. worker dosya yolu). |
State |
string | İş parçacığının iç durumu (ör. ready, shutting down). |
IsWaiting |
boolean | İş parçacığının bir istek bekleyip beklemediği. |
IsBusy |
boolean | İş parçacığının şu anda bir isteği işleyip işlemediği. |
WaitingSinceMilliseconds |
integer | İş parçacığının milisaniye cinsinden ne kadar süredir boşta olduğu. İş parçacığı meşgulse 0. |
CurrentURI |
string | Şu anda işlenen URI. İş parçacığı boştaysa boş. |
CurrentMethod |
string | Geçerli isteğin HTTP metodu (ör. GET, POST). İş parçacığı boştaysa boş. |
RequestStartedAt |
integer | Geçerli isteğin başladığı Unix zaman damgası (milisaniye). İş parçacığı boştaysa 0. |
RequestCount |
integer | Bu iş parçacığının başladığından beri işlediği toplam istek sayısı. |
MemoryUsage |
integer | İş parçacığının geçerli PHP bellek kullanımı, bayt cinsinden. |