lilydocs
HTTP APIWebSocketConsumer
İşletim3 dk okuma

Tracing

Consumer tracing seçimini, exporter sahipliğini ve mesajlar arası trace bağını açıkça kurun.

Consumer tracing varsayılan olarak kapalıdır. Tracing açmak, bir yapılandırma dosyasını otomatik keşfetmekten veya readiness snapshot’ı almaktan farklı bir seçimdir. Uygulamanın tracing runtime’ını kimin kuracağını ve kapatacağını builder üzerinde açıkça belirtin.

Sahiplik modunu seçin#

Builder seçimi Davranış Kapanış sahibi
.tracing_disabled() Kurulum yapmaz; varsayılandır. Runtime kurulmaz.
.tracing_config(config) Verilen config ile owned tracing kurar. Consumer
.tracing_config_path(path) Açık path’i strict olarak yükler. Consumer
.tracing_external() Üst uygulamanın tracing runtime’ını kullanır. Üst uygulama

Disabled modunda current working directory içinde tracing dosyası aranmaz. Explicit path eksik veya geçersizse sessizce disabled moda dönülmez. External seçimi de başka bir owner’ın config dosyasını okuyup onun lifecycle’ını devralmaz.

Console tracing örneği#

Cargo.toml — tracing features
[dependencies]
lilyrs = { version = "0.1.0", features = ["consumer", "trace"] }
Tracing entry-point function
use lilyrs::consumer::{Consumer, ConsumerError};
use lilyrs::trace::TraceConfig;

async fn run_traced() -> Result<(), ConsumerError> {
    let mut config = TraceConfig::default();
    config.enabled = true;
    config.service_name = "orders-consumer".into();
    config.export.console = true;
    Consumer::builder().tracing_config(config).run().await
}

Bu fonksiyon ilk uygulamanın linked handler ve lily.toml yapılandırmasını kullanır; ayrı bir queue tanımlamaz. Mevcut bağımlılıklarınızı koruyup facade feature listesine trace ekleyin. TraceConfig::default() tek başına enabled exporter değildir; örnek bunu açıkça açar.

Facade’da trace-file veya trace-otlp adında feature yoktur. File rotation, OTLP, sampling, filter ve attribute sınırları TraceConfig içindeki runtime seçimleridir. Servis adı ve environment label’ı gözlem verisidir; environment alanı Lily’nin configuration veya secret resolver ortamını seçmez.

Mesaj bağlamı ve component identity#

Canonical envelope içindeki doğrulanmış W3C propagation metadata’sı mesaj akışındaki span’ları bağlar. Outbox mesajı oluşturulurken geçerli trace context yakalanabilir, DB kaydında korunur ve relay publish’ine taşınır. Bu bağ, broker ACK veya downstream iş başarısı garantisi değildir.

.trace_cells(...) kullanarak component identity listesi verebilirsiniz. TraceCellConfig alanları id, worker_type, worker_name ve kind’dır; worker type ve component kind eşleşmesi kaynak contract’ına göre doğrulanır. Event ID gibi yüksek çeşitlilikli değerleri sabit component identity yerine kullanmayın. Listeyi boş bırakmak her handler için zorunlu cell tanımlamanız gerektiği anlamına gelmez.

Snapshots ve shutdown ile ilişkisi#

ManagedConsumer::snapshot() tracing kapalıyken de kullanılabilir. Snapshot, bounded runtime durumunu gösterir; span export başarısı veya tam event audit kaydı değildir. Payload, credential veya bütün header’ları uygulama span’larına otomatik eklemeyin; gerekli tanısal alanları açıkça seçin.

Owned tracing flush/shutdown işlemi Consumer’ın ortak shutdown bütçesindedir. External tracing’i üst owner kapatır. Exporter’da bekleyen veri olması süresiz bekleme hakkı vermez; kapanış evidence’ını shutdown report ile inceleyin.

Bu sayfanın kaynakları v0.1.0

Anlatım, incelenen framework commit’ine dayanır.

HIZLI BAŞLANGIÇ
Dokümantasyon
Kaynak kod