lilydocs
HTTP APIWebSocketConsumer
Çalıştırma3 dk okuma

Tracing, metrics ve health

Uygulamanın sağlık durumunu ve bounded sayaçlarını gözlemleyin; tracing runtime’ının sahipliğini seçin.

Lily uygulamanın listener, dispatcher, DI ve backplane durumunu gözlemlemenizi sağlar. Snapshot almak bu bilgiyi HTTP endpoint'i olarak yayımlamaz; probe veya monitoring köprüsünü uygulamanız kurar.

Tracing tercihi#

Builder tercihi Sahiplik
tracing_disabled() Tracing kapalı; varsayılan
tracing_config(lilyrs::trace::TraceConfig) App'in kurduğu runtime
tracing_config_path(path) Dosyadan seçilen app-owned runtime
tracing_external() Dış sahibi tarafından kurulmuş runtime

Owned tracing eager Singleton servislerden önce kurulur; onların instrument'ları seçilmiş provider'a bağlanır. External runtime'ı dış sahip kapatır. TraceConfig kullanıyorsanız lilyrs feature listesine trace ekleyin; tip lilyrs::trace::TraceConfig yolundadır. Console varsayılanı feature ile gelir, file/OTLP seçimi runtime config üzerinden yapılır; trace-file veya trace-otlp feature'ı yoktur. Ortak runtime kurulumu HTTP observability sayfasında açıklanır.

Snapshot ve dependency kaydı#

Build sonrası, start öncesi parça
let dependencies = app.required_dependency_health();
dependencies.register_required("orders.store")?;
let health = app.health_snapshot()?;
let metrics = app.metrics_snapshot();
let local_connections = app.active_connection_count().await;

Application örneği bu sırayı tam fonksiyon içinde gösterir. Required dependency kayıtlarını start/close lifecycle sahiplenmesinden önce tamamlayın. Başlangıçta kayıt healthy sayılmaz; gerçek probe sonucu geldikten sonra mark_healthy, mark_degraded veya mark_unhealthy ile durumu güncelleyin.

Yeni kayıt kapanınca mevcut status güncellemeleri devam edebilir. Uygulama updater'ı dependency. prefix'ine bağlıdır; framework'ün listener veya dispatcher kontrolünü uygulama adına healthy yapamaz.

Health’i dışarı açın#

health_snapshot() sonucunu üst uygulamanızın ayrı HTTP route'una veya probe köprüsüne bağlayın. WS builder kendiliğinden /health, /ready veya Prometheus route'u eklemez. Probe işinin stop/join sahipliğini de açıkça kurun; raw spawned task otomatik managed background service değildir. Düzenli probe işini builder'a kayıtlı worker olarak kurabilirsiniz. Worker'ın başlaması dependency'yi kendiliğinden healthy yapmaz.

Required backplane outage readiness'i etkiler. Mevcut socket'lerin sırf bu nedenle zorunlu kapanmadığını hesaba katın; readiness ile canlı bağlantı işleme davranışı ayrı gözlemlenir. Backplane bu durumları listeler.

Sayaçları doğru yorumlayın#

Metrics connection, message ve backplane sonuçlarını bounded sayaçlarla verir. Cancellation isteği, gerçek pipeline sonucu, deadline exceeded ve queued output aynı olay değildir. Payload, token, URL veya kullanıcı kimliğini sınırsız metric label'ına dönüştürmeyin.

active_connection_count() bütün namespace'lerin yerel sayısıdır; closing bağlantılar registry'den silinene kadar görünür. Global presence sayısı için kullanılmaz. Tracing parent'ı Upgrade'den identity ve scoped işe aktarılır.

Kapanış gözlemi#

Public app.shutdown_report() API'si yoktur. İç kapanış olayları lily_websocket::shutdown tracing target'ında üretilir; facade import'u bu target adını değiştirmez. Worker/scope sayaçları flush öncesi checkpoint'e dahildir. Owned telemetry kapandıktan sonraki son outcome'u görmek için dış subscriber gerekebilir; exporter teslimi task kapanışıyla aynı garanti değildir. Shutdown sayfasındaki kanıt eşiklerini gözlem metrikleriyle eşleştirin.

Bu sayfanın kaynakları v0.1.0

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

HIZLI BAŞLANGIÇ
Dokümantasyon
Kaynak kod