Lewati ke konten utama

Observability

Ada dua jalur: log lokal terstruktur di stdout/stderr dan exporter OpenTelemetry opsional untuk HTTP, durable jobs, counter, serta record warning/error. Tidak ada yang dikirim ke proyek Libre WebUI; tanpa endpoint, OpenTelemetry nonaktif. Sistem dan penggunaan terpisah.

Log terstruktur

LOG_FORMAT=text menghasilkan teks biasa; LOG_FORMAT=json menghasilkan satu JSON per baris:

LOG_LEVEL=info
LOG_FORMAT=json

Setiap record berisi waktu ISO, level/scope, pesan, request/job correlation ID, dan detail terbatas. Setiap permintaan HTTP memiliki X-Request-Id; diterima 8–64 huruf, angka, ., _, -, selain itu UUID. Query string dihapus.

LOG_LEVEL: silent, error, warn, info, debug. Lindungi log debug seperti data.

Batas redaction

Field yang menyerupai password, secret, token, key, authorization, cookie, credential, bearer, atau JWT dihapus; string dibatasi 512 karakter; array, depth, dan attribute juga dibatasi; error hanya menyisakan nama dan pesan pendek. Ini defense in depth, bukan izin mencatat prompt. Catat ID dan hasil, batasi akses dan retensi.

OpenTelemetry

OTEL_EXPORTER_OTLP_ENDPOINT=https://otel-collector.example.com:4318
OTEL_EXPORTER_OTLP_HEADERS=authorization=Bearer example-collector-token
OTEL_SERVICE_NAME=libre-webui

/v1/traces, /v1/metrics, dan /v1/logs ditambahkan ke URL. OTEL_EXPORTER_OTLP_HEADERS adalah daftar key=value yang dipisahkan koma. Simpan secret sebagai deployment secret. OTEL_SERVICE_NAME bawaan libre-webui.

Tanpa endpoint semuanya no-op. Dalam mode team, app dan worker mengekspor secara terpisah.

Sinyal

HTTP span/counter, durable-job span/counter, dan record warning/error yang sudah di-redact dengan correlation ID. Tidak ada propagasi trace parent, tree lintas layanan, atau instrumentasi penuh browser/provider. Token/media usage tersedia di analitik dan biaya lokal.

Pengiriman

Maksimum 2.048 span dan record, 512 series; flush sekitar 5 detik; timeout 3 detik. Error membuang batch tanpa merusak permintaan. Ini bukan audit atau accounting.

Pemecahan masalah

Periksa OTEL_EXPORTER_OTLP_ENDPOINT, tiga path standar, dan authorization=Bearer .... Restart setelah mengubah environment. Permintaan sengaja tetap bekerja saat collector gagal. Field hilang/terpotong disebabkan redaction.

Dokumen terkait