Pexon Consulting | 12 Min. Lesezeit | 17.04.2026
TL;DR
LangFuse Azure als Self-Hosted-Deployment ist für DACH-Enterprise die einzig saubere Lösung für LLM-Observability: volle Datenhoheit, freie Region-Wahl (Germany West Central oder West Europe), eigene Encryption-Keys in Azure Key Vault, Entra ID als SSO. Pexon Consulting, Microsoft Partner mit 80 Mitarbeitern in Deutschland, deployed LangFuse v3 via Terraform in Azure Kubernetes Service inklusive ClickHouse, PostgreSQL Flexible Server und Private Endpoints. Typischer Betrieb: 750-1.000 EUR monatliche Azure-Kosten bei 10 Millionen Events pro Monat.
Warum Enterprise-KI-Teams gerade jetzt einen Observability-Stack brauchen
Der Weg von einem funktionierenden KI-Prototyp zu einem vertrauenswürdigen Produktiv-Service führt durch einen Bereich, den die meisten Teams unterschätzen: Observability. Ein LLM-Call ist kein HTTP-Request. Ein Agent mit fünf Tool-Calls erzeugt keinen Stacktrace, sondern einen Entscheidungsbaum. Die klassischen APM-Werkzeuge (Datadog, Dynatrace) sehen den Top-Level-Call, nicht die Prompts, Token-Kosten oder Halluzinations-Raten.
Gartner prognostiziert, dass bis 2028 Explainable AI LLM-Observability-Investments auf 50% aller GenAI-Deployments treiben wird — von 15% heute. Der Observability-Markt wächst laut Business Research Company von 2,69 Milliarden USD im Jahr 2026 auf 9,26 Milliarden bis 2030 (CAGR 36%). Das sind nicht abstrakte Zahlen — das ist der Grund, warum Merck KGaA bei rund 80 produktiven AI-Projekten und 200+ Nutzern LangFuse als zentrale Observability-Schicht etabliert hat. Khan Academy nutzt LangFuse für Khanmigo mit 100+ Usern über sieben Produkt- und vier Infrastruktur-Teams.
Für DACH-Enterprise kommt die Datenschutz-Dimension dazu. LangFuse Cloud liegt als EU-Region auf AWS Ireland — für viele Mittelständler ausreichend, für Banken, Versicherungen und Behörden oft nicht. Self-Hosting ist dann der einzige auditierbare Weg.
Was LangFuse ist — und was es konkret tut
LangFuse ist ein Open-Source-LLM-Observability-Framework aus Berlin und San Francisco, gegründet von Marc Klingen, Clemens Rawert und Max Deichmann (Finto Technologies, Y Combinator W23). Das Projekt liegt Mitte April 2026 bei rund 25.000 GitHub-Stars, MIT-Lizenz für den Core, einige Enterprise-Features unter separater EE-Lizenz.
Der Funktionsumfang deckt fünf Bereiche ab, die jeder produktive KI-Service braucht:
Tracing — Jeder LLM-Call, jeder Tool-Call, jeder Retrieval-Step wird als hierarchischer Span erfasst. Nested Traces für Multi-Agent-Szenarien. Latenz, Token-Counts, Error-Rates pro Span.
Prompt Management — Prompts liegen versioniert in LangFuse, nicht als f-String im Code. A/B-Testing, Deployment-Tags (production, staging), Rollback mit einem Klick.
Evaluations — LLM-as-Judge und Human-Review-Workflows auf gelabelten Datasets. Jede Prompt-Version wird gegen die gleiche Test-Suite gemessen.
Scoring — Custom-Metriken pro Trace (Hallucination-Score, User-Feedback, Relevance). Quer-auswertbar in Dashboards.
Cost Tracking — Token-Counts pro User, Session, Tag, Modell — mit integrierter Preisdatenbank für GPT-4o, Claude 4, Gemini, Llama und anpassbare Custom Models. Die FinOps-Perspektive behandeln wir ausführlich in LLM-Kosten kontrollieren mit LangFuse.
Architektur für einen produktiven Azure-Deployment
LangFuse v3 ist nicht mehr ein einzelner Container. Der Stack hat seit dem Wechsel von v2 auf v3 Mitte 2024 eine klar getrennte Daten-Schicht, weil Traces in PostgreSQL nicht skalierten. Was Sie heute in Azure deployen:
│ Azure West Europe / Germany West Central │
│ │
│ ┌───────────────────┐ ┌────────────────────────┐ │
│ │ App Gateway WAF │────▶│ Azure Kubernetes │ │
│ │ (Public Entry) │ │ Service (AKS) │ │
│ └───────────────────┘ │ │ │
│ │ ┌──────────────────┐ │ │
│ ┌───────────────────┐ │ │ LangFuse Web │ │ │
│ │ Entra ID (SSO) │◀────▶│ │ (NextAuth) │ │ │
│ └───────────────────┘ │ └──────────────────┘ │ │
│ │ ┌──────────────────┐ │ │
│ │ │ LangFuse Worker │ │ │
│ │ │ (Queue Consumer) │ │ │
│ │ └──────────────────┘ │ │
│ │ ┌──────────────────┐ │ │
│ │ │ ClickHouse Pods │ │ │
│ │ │ (16 GB+ RAM) │ │ │
│ │ └──────────────────┘ │ │
│ └──────────┬──────────────┘ │
│ │ │
│ ┌──────────────────┐ ┌─────────▼──────────┐ │
│ │ PostgreSQL │ │ Azure Cache for │ │
│ │ Flexible Server │ │ Redis (Queue) │ │
│ │ (Metadata/OLTP) │ └────────────────────┘ │
│ └──────────────────┘ │
│ │
│ ┌──────────────────┐ ┌────────────────────┐ │
│ │ Azure Blob │ │ Azure Key Vault │ │
│ │ (Event Storage) │ │ (TLS + Encryption) │ │
│ └──────────────────┘ └────────────────────┘ │
│ │
│ All Traffic via Private Endpoints │
└──────────────────────────────────────────────────────────┘
Vier Bausteine verdienen besondere Aufmerksamkeit:
Erstens ClickHouse. Seit v3 ist ClickHouse Pflicht — nicht optional. Traces landen dort, weil PostgreSQL für Milliarden-Skalen nicht funktioniert. In AKS betreibt man ClickHouse typischerweise als StatefulSet mit mindestens 16 GB RAM pro Pod. Alternativ als Managed ClickHouse Cloud, aber das bricht die Self-Hosting-Prämisse.
Zweitens PostgreSQL Flexible Server. Wir nehmen GP_Standard_D2s_v3 mit 32 GB Storage als Einstieg. Für Production mit High Availability ein Zone-Redundant-Setup plus Read-Replica. Private Endpoint ist Pflicht.
Drittens Azure Cache for Redis. Basic C1 reicht für die Event-Queue. LangFuse nutzt Redis für die Trace-Ingestion-Pipeline — ohne Redis kein Hochdurchsatz.
Viertens Entra ID SSO. LangFuse unterstützt NextAuth mit dem Azure-AD-Provider. Setup über Umgebungsvariablen (AUTH_AZURE_AD_CLIENT_ID, AUTH_AZURE_AD_CLIENT_SECRET, AUTH_AZURE_AD_TENANT_ID). Für regulierte Branchen zusätzlich SCIM-Provisioning — das liegt aber hinter dem Enterprise-Lizenz-Flag.
Das Terraform-Modul, das wir bei Kunden einsetzen
LangFuse maintained seit Anfang 2026 ein offizielles Terraform-Modul für Azure: github.com/langfuse/langfuse-terraform-azure. Nachfolger des archivierten Azure-Samples/langfuse-on-azure. Das Modul deployed AKS, PostgreSQL Flexible, Redis, Blob Storage, Application Gateway, VNet mit NSGs, Managed Identities und Key Vault — Infrastructure as Code, idempotent.
module "langfuse" {
source = "langfuse/langfuse-terraform-azure/langfuse"
location = "westeurope"
resource_group_name = "pexon-langfuse-prod"
aks_node_size = "Standard_D2s_v6"
aks_node_count_min = 2
aks_node_count_max = 5
postgres_sku = "GP_Standard_D2s_v3"
postgres_storage_gb = 32
use_private_endpoint = true
enable_waf = true
azure_auth_tenant_id = var.entra_tenant_id
domain_name = "langfuse.meinefirma.de"
}
In eigenen Kundenprojekten ergänzen wir das Modul um drei Pexon-Standards: Azure Monitor + Log Analytics Workspace als zentrales Logging, Azure Backup für PostgreSQL mit 35 Tagen Retention und Private DNS Zones für die gesamte interne Namensauflösung. Ein produktions-ready Setup braucht 3-5 Tage Engineering ab dem sauberen Terraform-Start.
DSGVO-Mapping: Was der Datenschutzbeauftragte sehen will
Das Mapping der Stack-Komponenten auf DSGVO-Artikel, das wir in Kunden-Auditberichten anhängen:
Der Punkt, der in Audits überrascht: Die Masking-Schicht. LangFuse bietet eine clientseitige mask()-Funktion im SDK. Sensitive Felder (E-Mail, Telefonnummer, Kundennummer) werden ersetzt, bevor der Trace ins Netzwerk geht. Das ist Datenminimierung nach Art. 5 im engsten Sinne. Ohne Masking landen Prompts und Completions vollständig in ClickHouse — inklusive Namen und Kontostände, die der User in die Chat-Oberfläche getippt hat.
import re
from langfuse import Langfuse
def mask_pii(data):
if isinstance(data, str):
data = re.sub(r"b[w.-]+@[w.-]+b", "[EMAIL]", data)
data = re.sub(r"bd{10,}b", "[PHONE]", data)
data = re.sub(r"bDEd{20}b", "[IBAN]", data)
return data
langfuse = Langfuse(
host="https://langfuse.meinefirma.de",
public_key="pk-lf-...",
secret_key="sk-lf-...",
mask=mask_pii,
)
Wir empfehlen Kunden für produktionskritische Workloads zusätzlich llm-guard oder Azure AI Content Safety als Preprocessor — das liefert stärkere PII-Detection als Regex.
Was der Betrieb real kostet
Eine produktive LangFuse-Installation für einen DACH-Mittelständler mit 300-3.000 Mitarbeitern und 5-15 Millionen Events pro Monat landet in Azure West Europe bei:
Diese Range deckt sich mit öffentlichen Community-Angaben (etwa 400-1.000 USD/Monat, je nach Region und Volumen). Die Variabilität kommt fast ausschließlich aus dem Event-Volumen. Bei hochfrequenten RAG-Systemen (eine Chat-App mit 50.000 täglichen Sessions) klettert das ClickHouse-Storage schnell — wir skalieren dann zu 32 GB RAM-Pods plus Azure Files CSI.
Zum Vergleich: LangSmith Enterprise mit Self-Hosting-Option startet laut öffentlicher Preisgestaltung typisch bei 100.000 USD pro Jahr. Für reine Cloud-Nutzung (Plus-Plan) rechnen sich die Per-Seat-Kosten bei 20+ aktiven Nutzern schnell auf fünfstellige Jahresbeträge. LangFuse Self-Hosted bleibt linear mit der Infrastruktur — das ist für CFOs der entscheidende Unterschied.
Welche SDK-Integrationen wir aktiv nutzen
LangFuse hat in 2025 die Integrations-Breite deutlich ausgebaut. Was wir in Kundenprojekten tatsächlich nutzen:
# 1. OpenAI SDK direkt — Drop-in-Replacement
from langfuse.openai import openai # statt `import openai`
client = openai.OpenAI()
response = client.chat.completions.create(...) # wird automatisch geloggt
# 2. Anthropic SDK + @observe Decorator
from langfuse import observe
from anthropic import Anthropic
client = Anthropic()
@observe()
def klassifiziere(text: str) -> str:
return client.messages.create(
model="claude-sonnet-4-6",
messages=[{"role": "user", "content": text}],
max_tokens=512,
).content[0].text
# 3. PydanticAI mit automatischem OpenTelemetry-Tracing
# LangFuse exponiert /api/public/otel — direkte OTel-Kompatibilität
# 4. DSPy — native Integration für Signatures und Optimizer-Runs
import dspy
from langfuse.dspy import LangfuseCallback
dspy.configure(callbacks=[LangfuseCallback()])
Der OpenTelemetry-Endpoint ist der universelle Pfad. Jedes Framework mit OTel-Support (PydanticAI, DSPy, Phoenix, jede Azure-Monitor-Instrumentation) redet via Standard-Protokoll mit LangFuse. Das reduziert Vendor-Lock-in auf Null.
Die fünf Fallen, in die Teams beim Self-Hosting tappen
Aus rund zehn LangFuse-Azure-Deployments in den letzten 12 Monaten sehen wir konsistent fünf Stolpersteine:
Erstens: ClickHouse-Größe unterschätzt. Ein Standard-Trace mit zehn Spans kann 30-50 KB belegen. Bei 10 Millionen Traces pro Monat sind das 300-500 GB. Mit 90 Tagen Retention sind Sie bei 1-1,5 TB. Planen Sie Storage ab Tag eins für ein Jahr voraus.
Zweitens: Worker-Scale vernachlässigt. Der LangFuse Worker ist der Queue-Consumer. Wenn er nicht mitskaliert, stauen sich Events in Redis, bis Redis OOM-killt. Wir setzen Horizontal Pod Autoscaler auf CPU und Queue-Length.
Drittens: Entra-ID-Setup nur teilweise. NextAuth mit Azure-AD funktioniert, aber Role-Mapping auf LangFuse-Projekte läuft nicht automatisch. Wir skripten das via Terraform null_resource mit API-Calls beim initialen Deploy.
Viertens: PII-Masking vergessen. Teams deployen den Stack ohne das mask()-Callback. Drei Monate später stellen sie im DSGVO-Review fest, dass Kundennamen in ClickHouse liegen. Ein Rückbau ist teuer. Masking gehört ins Init der SDK, nicht als späterer Schritt.
Fünftens: Backup-Tests fehlen. PostgreSQL Flexible bietet Point-in-Time-Recovery bis 35 Tage. Wir testen einmal pro Quartal eine Restore-Probe in eine isolierte Subscription. Ohne Test ist Backup Theater.
Häufig gestellte Fragen
Ist LangFuse DSGVO-konform, wenn ich es in Azure West Europe selbst hoste?
Ja, mit korrekter Konfiguration. Die Region bestimmt, wo Daten liegen — West Europe (Niederlande) oder Germany West Central halten alle Payloads in der EU. Zusätzlich sind Private Endpoints, Azure Key Vault mit Customer-Managed Keys, Entra ID SSO und PII-Masking im SDK Pflicht. Wer diese fünf Punkte umsetzt, hat einen auditierbaren Deployment-Zustand für DSGVO, NIS2 und in weiten Teilen auch DORA.
Welche Azure-Services brauche ich für eine produktive LangFuse-Installation?
Den Kern bilden Azure Kubernetes Service (für LangFuse Web, Worker, ClickHouse), Azure Database for PostgreSQL Flexible Server, Azure Cache for Redis und ein Azure Storage Account für Event-Blobs. Dazu kommen Application Gateway mit WAF, Azure Key Vault, Log Analytics Workspace und Entra ID als Identity-Provider. Das offizielle Terraform-Modul deckt alle diese Komponenten ab.
Wie integriere ich Microsoft Entra ID als SSO für LangFuse?
LangFuse nutzt NextAuth mit Azure-AD-Provider. Sie registrieren eine App-Registration in Entra ID, setzen Redirect-URI auf Ihre LangFuse-Domain, hinterlegen Client-ID und Secret als Umgebungsvariablen (AUTH_AZURE_AD_*), aktivieren SSO über AZURE_USE_AUTHENTICATION=true. Für Enterprise-Setups mit SCIM-Provisioning brauchen Sie die LangFuse Enterprise Edition.
Kann ich LangFuse hinter einem Private Endpoint in meinem VNet betreiben?
Ja. Das ist der Default-Zustand unserer Produktions-Deployments. AKS läuft in einem Private Cluster, PostgreSQL und Redis haben Private Endpoints, Blob Storage ebenso. Zugriff auf die Web-UI läuft entweder über Application Gateway mit WAF (für User-Zugriff) oder über einen privaten Load Balancer (für reine Backend-Integration). Keine Public-IP am Daten-Layer.
Wie redigiere ich PII-Daten, bevor sie LangFuse erreichen?
LangFuse’s Python- und TypeScript-SDK bieten ein mask()-Callback, das clientseitig vor dem Netzwerk-Send läuft. Sie übergeben eine Funktion, die Inputs, Outputs und Prompts transformiert. Regex-basiertes Masking reicht für einfache Fälle (E-Mail, Telefon, IBAN). Für höhere Anforderungen ergänzen wir llm-guard oder Azure AI Content Safety als Preprocessor. Die Masking-Schicht läuft in Ihrem Code, nicht im LangFuse-Backend — PII verlässt die Applikation nie.
Nächster Schritt
Wenn Sie einen produktiven KI-Service haben oder planen und Observability als Engineering-Aufgabe für die nächsten drei Monate einplanen, durchlaufen wir mit Ihrem Team ein LangFuse-Azure-Setup in 3-5 Tagen: Terraform-Baseline, Entra-ID-SSO, Masking-Policy, Dashboards, Team-Übergabe.
Verwandte Themen
→LLM-Kosten kontrollieren mit LangFuse: Token-Tracking
→LobeChat auf Azure installieren
→PydanticAI FastAPI Production-Ready KI-Services



