İçeriğe geç
getnextpdf.com

Enterprise sürüm

Ölçümleme

NextPDF Enterprise, faturalama ve denetim için PHP düzenleme katmanında kullanım ölçümünü — işlemleri, işlenen sayfaları, süreleri — toplar. Girişler bellekte arabelleğe alınır, partiler hâlinde bir veya daha fazla arka uca boşaltılır ve bir arka uç hatası işlemeyi asla engellemez. Bu sayfa, gözlemlenebilir ölçüm davranışını ve genel sözleşmeyi açıklar.

Bu yetenek NextPDF Enterprise (nextpdf/enterprise) ile sunulur ve Enterprise katmanı bir lisans zarfıyla etkinleşir. Bu yetkiye sahip olmayan bir dağıtım, yeteneğin sınıflarını yüklemez. Ölçüm, ayrı bir özellik başına bayrağı olmayan temel bir Enterprise yeteneğidir. Sürümleri karşılaştırın ve bir lisans alın.

Ölçüm toplayıcısı, işlem başına değişmez bir giriş kaydeder: bir işlem türü, bir birim sayısı, bir zaman damgası, kiracı ve lisans tanımlayıcıları, işlenen sayfalar, işlem süresi ve serbest biçimli meta veri. Girişler bellek içi bir arabellekte birikir. Arabellek yapılandırılmış boyutuna ulaştığında otomatik olarak boşalır; ayrıca açıkça da boşaltabilirsiniz ve bir PHP-FPM çalışanının istek sonunda kalanı boşaltması için bir kapatma işleyicisi kaydedilebilir. Uzun süre çalışan bir çalışan (örneğin bir Octane veya Symfony çalışanı) bunun yerine düzenli bir zamanlayıcıyla boşaltmalıdır.

Raporlayıcı, bir partiyi bir veya daha fazla arka uca dağıtır. Arka uçlar yalıtılmıştır: bir arka uçtaki hata, diğerlerinin partiyi almasını durdurmaz. Her arka uç teslimi, yapılandırılmış bir deneme sayısına kadar yeniden denenir; tüm denemeler başarısız olursa o arka ucun partisi günlüğe kaydedilir ve düşürülür — ölçüm tasarım gereği elinden gelenin en iyisini yapar ve ölümcül değildir; böylece bir ölçüm kesintisi belge işlemeyi asla bozmaz. Bir arka uç, ölçüm arka uç arabiriminin herhangi bir uygulamasıdır — bir Prometheus push hedefi, bir faturalama API’si, bir veritabanı veya bir kuyruk — ve uygulamaların idempotent olması gerekir; böylece çoğaltılmış bir parti zarif biçimde işlenir.

Bu düzenleme düzeyi ölçümü, faturalama ve denetim görünürlüğü içindir. Kota uygulaması için bilinçli olarak yetkili kaynak değildir; kota kararları, yetkili bir kullanım rakamından, dağıtımda başka bir yerde verilir.

Ölçüm, belge işleme yolunda değil, faturalama ve denetim yolunda yer alır ve bu ayrım bilinçlidir. Her record çağrısı, bellek içi bir arabelleğe değişmez bir MeterEntry ekler; böylece kullanımı yakalamak O(1) bir işlem olarak kalır. Boşaltma partiler hâlinde gerçekleşir ve MeteringBackendInterface sözleşmesinin arkasındaki yalıtılmış arka uçlara dağıtılır. Yavaş veya ölü bir faturalama uç noktası böylece zarif biçimde bozulur ve tükenmiş bir parti, fırlatılmak yerine günlüğe kaydedilir ve düşürülür. Böylece bir ölçüm kesintisi, yüksek hacimli işi asla durdurmaz veya belge iş çıkarımıyla yarışmaz. Ödünleşim, düzenleme ölçümünün elinden gelenin en iyisini yapması ve yetkili olmamasıdır — bu nedenle kota uygulaması, yetkili bir rakamdan başka bir yerde kararlaştırılır.

Tasarım arka planı: Yüksek hacimli belge üretimi.

Terminal window
composer require nextpdf/enterprise:^3

Desteklenen tümleştirme noktaları şunlardır: ölçüm toplayıcısı (record, flush, bufferCount, registerShutdownFlush), ölçüm raporlayıcısı (report), ölçüm arka uç arabirimi (report, isHealthy, backendName) ve değişmez ölçüm-giriş değer nesnesi. Üretim dayanıklılığı için yeniden-deneme-güvenli, idempotent bir arka uç uygulaması sağlamak sizin sorumluluğunuzdadır.

use NextPDF\Enterprise\Metering\MeterCollector;
use NextPDF\Enterprise\Metering\MeteringReporter;
$collector = new MeterCollector(new MeteringReporter([$backend]), bufferSize: 100);
$collector->registerShutdownFlush(); // PHP-FPM: flush remainder at request end
$collector->record(
operation: 'parse',
count: 1,
tenantId: $tenantId,
licenseId: $licenseId,
pagesProcessed: 12,
durationMs: 84.0,
);
use NextPDF\Enterprise\Metering\MeteringReporter;
// Multi-backend fan-out with retry and failure isolation.
$reporter = new MeteringReporter(
backends: [$prometheusBackend, $billingApiBackend],
maxRetries: 3,
logger: $logger,
);
// A failing billing API does not stop Prometheus from receiving the batch;
// exhausted retries are logged and the batch is dropped — never thrown.
$collector = new MeterCollector($reporter, bufferSize: 500);
  • Boşaltma idempotenttir. Boş bir arabellekte flush çağrısı bir işlemsizdir; çift boşaltma güvenlidir.
  • Arka uç hatası ölümcül değildir. Tükenmiş denemeler bir hata günlüğe kaydeder ve o arka ucun partisini düşürür; çağrı yine de normal döner. Sert kota uygulaması için ölçüme güvenmeyin.
  • En az bir arka uç gereklidir. Boş bir arka uç listesiyle bir raporlayıcı oluşturmak reddedilir.
  • İdempotentlik arka ucun işidir. Arabirim sözleşmesi, arka uçların (zaman damgası, işlem ve kiracıya göre) yinelenenleri kaldırmasını gerektirir — yeniden denenmiş veya çoğaltılmış bir parti çift sayılmamalıdır.
  • Çalışan modeli önem taşır. PHP-FPM için kapatma işleyicisini kullanın; uzun süre çalışan çalışanlar için düzenli bir zamanlayıcı boşaltması kullanın, aksi takdirde girişler çalışan çıkana kadar arabellekte kalır.

record, O(1) bir arabellek eklemesidir. Boşaltma maliyeti, parti boyutuyla ve arka uçların sayısıyla orantılıdır; arabelleğe alma ve kapatma işleyicisiyle istek yolundan çıkarılır. Yeniden denemeler arka uç başına uygulanır ve yapılandırılmış deneme sayısıyla sınırlanır.

Ölçüm girişleri, kiracı ve lisans tanımlayıcılarını ve işlem meta verisini taşır. Meta veriyi olası hassas olarak ele alın ve arka uç depolamanızı ve saklamanızı uygunluk gereksinimlerinize göre kapsamlayın. Kiracı ve lisans tanımlayıcıları, kimliği doğrulanmış bir bağlamdan kaynaklanmalıdır.

Ölçüm, herkese açık sınırda kendine ait hiçbir tel biçimi tanımlamaz — arka uç arabirimi, serileştirmeyi her arka uç uygulamasına devreder (örneğin bir Prometheus push hedefi, Prometheus gösterim sözleşmelerini izler). Bu yüzeyde hiçbir harici standart ileri sürülmez; süreç içi toplayıcı sözleşmesini hiçbir normatif spesifikasyon yönetmediğinden bu sayfa için hiçbir RAG citation yoktur.

  • Toplayıcı, işlem başına değişmez bir giriş kaydeder ve girişleri, yapılandırılmış boyutunda otomatik olarak boşalan bellek içi bir arabellekte biriktirir; açık boşaltma ve bir kapatma-boşaltma işleyicisi de mevcuttur.
  • Boşaltma idempotenttir: boş bir arabelleği boşaltmak bir işlemsizdir ve çift boşaltma güvenlidir.
  • Raporlayıcı, bir partiyi arka uç başına yalıtımla bir veya daha fazla arka uca dağıtır; bir arka ucun hatası diğerlerini durdurmaz.
  • Her arka uç teslimi, yapılandırılmış deneme sayısına kadar yeniden denenir; tükenmiş denemeler günlüğe kaydedilir ve düşürülür — ölçüm elinden gelenin en iyisini yapar ve işlem yoluna asla fırlatmaz.
  • Boş bir arka uç listesiyle bir raporlayıcı oluşturmak reddedilir; arka uçların idempotent olması gerekir; böylece çoğaltılmış bir parti çift sayılmaz.
  • record, O(1) bir arabellek eklemesidir; boşaltma maliyeti, parti boyutuyla ve arka uç sayısıyla orantılıdır ve istek yolundan uzak tutulur.

Bu sayfa yalnızca dışarıdan gözlemlenebilir davranışı ve desteklenen genel API yüzeyini belgeler. Dahilî ad alanı yolları, yardımcı sınıflar, mekanizma tabloları, runbook dosya adları ve bilet önekleri kapsam dışıdır.

NextPDF Core (Apache-2.0), hiçbir ölçüm toplayıcısına, raporlayıcısına veya arka uç yüzeyine sahip değildir — hiçbiri; bu yeteneğin Core katmanında bir karşılığı yoktur. Core işleme NextPDF tarafından ölçülmez.

NextPDF Pro’nun hiçbir ölçüm yüzeyi yoktur — hiçbiri; bu yeteneğin Pro katmanında bir karşılığı yoktur. Ölçüm toplayıcısı, raporlayıcısı ve arka uç arabirimi yalnızca nextpdf/enterprise paketinde sunulur.

Arabellek yaşam döngüsü, dağıtım, yeniden deneme ve yalıtım davranış düzeyinde açıklanmıştır. Arka uç arabirimi, serileştirmeyi her arka uç uygulamasına devreder; dahilî arabelleğe alma dahilîleri ve herhangi bir dahilî dağıtım ayrıntısı, herkese açık yüzeyin kapsamı dışındadır.

Operatör; arka uç uygulamalarına, bunların dayanıklılığına ve idempotentliğine, ölçüm meta verisinin saklama ve depolama kapsamına ve çalışan-modeli boşaltma stratejisine (PHP-FPM için kapatma işleyicisi, uzun süre çalışan çalışanlar için düzenli zamanlayıcı) sahiptir. Bir ölçüm arka uç kesintisi belge işlemeyi asla bozmaz. Kiracı ve lisans tanımlayıcıları, operatörün yapılandırdığı, kimliği doğrulanmış bir bağlamdan kaynaklanmalıdır.

Ölçüm yüzeyine hiçbir ihracat-denetim kısıtlaması uygulanmaz. Ölçüm meta verisi hassas olabilir; saklama ve depolama kapsamı operatörün uygunluk sorumluluğundadır. Bu belge bir hukuki görüş değildir; kendi uygunluk ve hukuk danışmanlarınıza başvurun.