Μετάβαση στο κύριο περιεχόμενο

Παρατηρησιμότητα

Το Libre WebUI προσφέρει δύο διαδρομές:

  • δομημένα application logs σε standard output/error·
  • προαιρετικό OpenTelemetry exporter για HTTP, μόνιμες εργασίες, counters και warning/error records.

Καμία δεν στέλνει τηλεμετρία στο έργο Libre. Το OpenTelemetry μένει off μέχρι να ρυθμιστεί collector. Οι σελίδες System και Usage διαβάζουν την εγκατάσταση, όχι collector.

Δομημένα logs​

Το LOG_FORMAT=text κρατά το γνώριμο console output. Ορίστε LOG_FORMAT=json για JSON ανά γραμμή:

LOG_LEVEL=info
LOG_FORMAT=json

Κάθε γραμμή έχει ISO timestamp, level/scope, μήνυμα, correlation id αίτησης ή job και bounded details.

Κάθε HTTP παίρνει X-Request-Id. Εισερχόμενο ID γίνεται δεκτό μόνο με 8–64 γράμματα, ψηφία, ., _, -, αλλιώς UUID. Επιστρέφεται και ακολουθεί async work. Τα access logs κρατούν method, path χωρίς query, status και duration επειδή queries μπορεί να έχουν περιεχόμενο ή credentials.

Το LOG_LEVEL δέχεται silent, error, warn, info, debug. Το debug μπορεί να αποκαλύψει λειτουργικά στοιχεία· μόνο για διάγνωση και με προστασία.

Όριο απόκρυψης​

Details και telemetry περνούν τον ίδιο bounded helper:

  • ονόματα σαν password, secret, token, key, authorization, cookie, credential, bearer, JWT αφαιρούνται·
  • strings έως 512 χαρακτήρες·
  • arrays, nesting και attributes περιορίζονται·
  • errors κρατούν name και bounded message, όχι αυθαίρετο graph.

Αυτό είναι defense in depth, όχι άδεια για prompt ή secrets. Μικρό user string μπορεί ακόμη να γίνει log. Extensions πρέπει να γράφουν IDs και outcomes, όχι bodies, prompt, έγγραφα, tool results ή provider payload. Περιορίστε πρόσβαση και retention.

Ενεργοποίηση OpenTelemetry​

Το Libre εξάγει OTLP/HTTP JSON απευθείας χωρίς SDK. Ορίστε HTTP base URL collector:

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, /v1/logs. Το OTEL_EXPORTER_OTLP_HEADERS είναι comma-separated key=value. Φυλάξτε credentials ως deployment secrets. Προεπιλογή OTEL_SERVICE_NAME είναι libre-webui.

Χωρίς endpoint, spans/metrics/logs είναι no-op και τίποτε δεν φεύγει. Σε team, application και external workers εξάγουν ανεξάρτητα. Διαφορετικό service name ανά ρόλο βοηθά dashboards.

Εξαγόμενα σήματα​

ΣήμαΤι καταγράφεται
HTTP server spansMethod/path χωρίς query, status, duration, success/failure, request id
HTTP countersΜονότονο count ανά method και status class
Durable-job spansJob type, attempt, duration, outcome
Durable-job countersΜονότονο execution count ανά type/outcome
Log recordsRedacted warning/error με scope και correlation ids

Τα spans είναι τοπικά ολοκληρωμένα. Δεν διαδίδεται trace parent, δεν χτίζονται δέντρα μεταξύ υπηρεσιών και δεν instrumentείται browser ή κάθε provider call. Token/media ανήκουν στα τοπικά Usage Analytics και Cost Governance.

Συμπεριφορά παράδοσης​

Η τηλεμετρία είναι best-effort:

  • buffers έως 2.048 spans και 2.048 logs, drop παλιότερου υπό πίεση·
  • έως 512 counter series·
  • flush περίπου κάθε 5 s·
  • timeout HTTP 3 s·
  • collector error απορρίπτει batch και ποτέ δεν μπλοκάρει αίτημα ή job.

Δεν είναι audit log ή accounting. Χρησιμοποιήστε append-only security audit, SQL usage ledger και retention/alerts του collector.

Αντιμετώπιση προβλημάτων​

Δεν φτάνει telemetry. Επιβεβαιώστε OTEL_EXPORTER_OTLP_ENDPOINT στη σωστή διεργασία, μόνο base URL και αποδοχή OTLP/HTTP JSON στις τρεις διαδρομές.

Unauthorized collector. Ελέγξτε comma-separated headers και authorization=Bearer .... Κάντε restart μετά env αλλαγές.

Τα αιτήματα επιτυγχάνουν όταν collector είναι down. Αναμενόμενο: fail-open χωρίς persistence failed batches.

Πεδίο λείπει ή κόπηκε. Secret-like keys αφαιρούνται και μεγάλες/βαθιές τιμές περιορίζονται. Γράψτε ασφαλές ID ή σύνοψη.

Σχετική τεκμηρίωση​