mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-09-01 03:27:01 +00:00
🪭 feat: Add opt-in Langfuse fanout gateway + collector (#13872)
* feat: add opt-in Langfuse fanout collector * feat: fan out Langfuse feedback scores * docs: prepare Langfuse fanout for OSS setup * fix: clarify Langfuse fanout collector config * test: stabilize librechat suite * test: fix upload dialog import order * fix: omit empty Langfuse tenant fields * fix: gate tenant Langfuse fanout * test: cover central Langfuse env fallback * style: format Langfuse fanout config * feat: route langfuse fanout by destination * docs: clarify langfuse compose destination scope * test: remove unrelated suite stabilization * style: sort agent imports * fix: treat blank tenant fanout toggle as disabled * fix: rename tenant fanout emergency toggle * test: guard langfuse fanout collector config drift * feat: tune langfuse fanout batching * test: render fanout helm tests without dependencies * fix: narrow remote agent run config * refactor: share string normalization helper * fix: align langfuse fanout env parsing * fix(langfuse): align score fanout toggles with traces * fix(langfuse): keep central fanout config collector-only * fix(langfuse): type fanout collector config * fix(langfuse): harden tenant fanout config * feat(langfuse): support media fanout gateway * fix(langfuse): route tenant fanout through destination URL * fix(langfuse): harden fanout routing checks * ci(langfuse): test fanout gateway changes * ci(langfuse): check fanout go formatting * fix(langfuse): satisfy api typecheck
This commit is contained in:
parent
0789a04d11
commit
a0529c9af7
38 changed files with 5699 additions and 130 deletions
54
.env.example
54
.env.example
|
|
@ -132,6 +132,60 @@ NODE_MAX_OLD_SPACE_SIZE=6144
|
|||
# LANGFUSE_SECRET_KEY=
|
||||
# LANGFUSE_BASE_URL=
|
||||
|
||||
# Optional Langfuse fanout for tenant-scoped Langfuse projects.
|
||||
# The fanout gateway is opt-in: add docker-compose.langfuse-fanout.yml,
|
||||
# deploy-compose.langfuse-fanout.yml, or enable helm langfuseFanout.
|
||||
# Tenant public/secret keys are read from LibreChat tenant app configuration.
|
||||
# Tenant Langfuse base URLs must be set in tenant app configuration and match
|
||||
# one of the known startup destinations. Tenant API keys can be added or changed
|
||||
# at runtime through tenant app configuration.
|
||||
# See otel/langfuse-fanout/README.md.
|
||||
# LANGFUSE_FANOUT_ENABLED=false
|
||||
# LANGFUSE_FANOUT_COLLECTOR_URL=http://langfuse-fanout-collector:4318
|
||||
# Emergency switch: unset/false defaults enabled; set true to keep central fanout export but skip tenant trace/score export.
|
||||
# LANGFUSE_FANOUT_TENANT_EXPORT_DISABLED=false
|
||||
# Langfuse Cloud base URL options: https://cloud.langfuse.com (EU),
|
||||
# https://us.cloud.langfuse.com (US), https://jp.cloud.langfuse.com (JP).
|
||||
# Gateway-only central trace/media export URL. LibreChat feedback scores use
|
||||
# LANGFUSE_BASE_URL, so set both URLs to the same non-EU region when applicable.
|
||||
# LANGFUSE_FANOUT_CENTRAL_BASE_URL=https://cloud.langfuse.com
|
||||
# Gateway-only Basic auth header for central trace/media export. LibreChat feedback
|
||||
# scores use LANGFUSE_PUBLIC_KEY/LANGFUSE_SECRET_KEY instead.
|
||||
# LANGFUSE_FANOUT_CENTRAL_AUTH_HEADER=Basic <base64-public-colon-secret>
|
||||
# Compose's included gateway config supports the three listed destination keys.
|
||||
# Add custom keys only when the gateway is started with matching destination URLs.
|
||||
# LANGFUSE_FANOUT_TENANT_DESTINATIONS=eu=https://cloud.langfuse.com,us=https://us.cloud.langfuse.com,jp=https://jp.cloud.langfuse.com
|
||||
# Compose's collector config routes only these destination keys. The gateway
|
||||
# fails startup when LANGFUSE_FANOUT_TENANT_DESTINATIONS contains another key.
|
||||
# LANGFUSE_FANOUT_TRACE_DESTINATION_KEYS=eu,us,jp
|
||||
# Gateway base URL used to build one-time media upload URLs. Compose sets this
|
||||
# to its private service URL; Helm derives an internal service URL unless set.
|
||||
# LANGFUSE_FANOUT_PUBLIC_URL=http://langfuse-fanout-collector:4318
|
||||
# Internal gateway-to-collector trace endpoint. Compose sets this automatically.
|
||||
# LANGFUSE_FANOUT_TRACE_COLLECTOR_URL=http://langfuse-fanout-otel:4319
|
||||
# Redis-backed one-time upload plans let multiple gateway pods handle Langfuse
|
||||
# media create/upload requests. Compose sets this to its private Redis service.
|
||||
# LANGFUSE_FANOUT_REDIS_URI=redis://langfuse-fanout-redis:6379
|
||||
# LANGFUSE_FANOUT_REDIS_USERNAME=
|
||||
# LANGFUSE_FANOUT_REDIS_PASSWORD=
|
||||
# LANGFUSE_FANOUT_REDIS_KEY_PREFIX=langfuse-fanout
|
||||
# Internal collector receiver bind address. Helm uses 127.0.0.1 because the
|
||||
# collector is a sidecar; Compose uses 0.0.0.0 on the private fanout network.
|
||||
# LANGFUSE_FANOUT_OTEL_RECEIVER_ENDPOINT=0.0.0.0:4319
|
||||
# Static Compose collector destination URLs. Helm derives these from values.
|
||||
# LANGFUSE_FANOUT_TENANT_EU_BASE_URL=https://cloud.langfuse.com
|
||||
# LANGFUSE_FANOUT_TENANT_US_BASE_URL=https://us.cloud.langfuse.com
|
||||
# LANGFUSE_FANOUT_TENANT_JP_BASE_URL=https://jp.cloud.langfuse.com
|
||||
# LANGFUSE_FANOUT_UPSTREAM_TIMEOUT=30s
|
||||
# Optional bearer token for scraping the fanout gateway /metrics endpoint.
|
||||
# If unset, /metrics returns 401. The gateway also accepts METRICS_SECRET when present.
|
||||
# LANGFUSE_FANOUT_METRICS_SECRET=
|
||||
# LANGFUSE_FANOUT_MEMORY_LIMIT_MIB=256
|
||||
# LANGFUSE_FANOUT_MEMORY_SPIKE_LIMIT_MIB=64
|
||||
# LANGFUSE_FANOUT_BATCH_TIMEOUT=1s
|
||||
# LANGFUSE_FANOUT_BATCH_SEND_SIZE=128
|
||||
# LANGFUSE_FANOUT_METADATA_CARDINALITY_LIMIT=1000
|
||||
|
||||
#=======================#
|
||||
# OpenTelemetry Tracing #
|
||||
#=======================#
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue