Tools/LLMOps & Evals
Langfuse-Test: Tracing, Prompts und Evals selbst gehostet
Langfuse legt LLM-Traces, Prompt-Versionen und Experimente auf eine MIT-lizenzierte Plattform. Was das Selbsthosten wirklich kostet, wie die Einheitspreise rechnen und wo es verliert.
- Art
- LLM observability
- Preis
- MIT · paid from $59 per month
Balázs Csorba··10 Min. Lesezeit
- LLM observability
- Tracing
- OpenTelemetry
- Self-hosting
- Evaluation

Das Wichtigste in Kürze
- Langfuse ist die vollständigste quelloffene Option für Tracing, Prompt-Verwaltung und Experimente in einem Backend, und die MIT-Lizenz deckt den ganzen Kern ab, nicht eine Demo.
- Ein Produktions-Deployment selbst zu hosten sind zwei Anwendungscontainer plus PostgreSQL, ClickHouse, Redis und Object Storage – mehr, als die Docker-Compose-Seite vermuten lässt.
- Die Cloud rechnet Datenpunkte ab, keine Plätze: ein Agenten-Turn mit drei Observations und zwei Scores kostet sechs Einheiten, laut Preisseite gibt es Hobby gratis und Core für 29 $ im Monat mit 100.000 Einheiten.
- Instrumentierung wird im Hintergrund gepuffert und gebündelt, Tracing kostet also keine Request-Latenz, aber ein Prozess, der ohne Flush endet, verliert das Ende seiner Traces.
- Langfuse Cloud stellt v3-Endpunkte am 16. November 2026 ein, eine bestehende v3-Integration braucht also ein Migrationsfenster und kein Upgrade nach Belieben.
Langfuse ist eine quelloffene Plattform für Tracing, Prompt-Verwaltung und Evaluation von LLM-Anwendungen, und die vollständigste unter denen, die unter einer permissiven Lizenz erscheint. Das Urteil vorweg: Teams, die Tracing, Prompts und Experimente in einem Backend wollen und die ein ClickHouse-Deployment betreuen können, sollten sie nehmen. Teams, die ein Wochenende Aufbau wollen, sollten sie nicht.
Sie liegt in derselben Schicht wie LangSmith, Arize Phoenix und Helicone und konkurriert an zwei Achsen, die zählen: ob die Plattform im eigenen Netz laufen darf und ob man den eigenen Code oder den Modellanbieter instrumentiert. Langfuse beantwortet die erste Frage für den Kern mit Ja und die zweite auf beide Arten: Drop-in-Wrapper für die üblichen üblichen SDKs, ein Context Manager für alles andere und ein schlichter OpenTelemetry-Endpunkt für Code, der weder Python noch JavaScript ist. Das größere Argument für Tracing von Agenten steht in Agent-Observability mit OpenTelemetry.
Was es ist
Langfuse ist vier Produkte in einem Deployment: einen Trace-Speicher für LLM-Aufrufe, ein Prompt-Register mit Versionierung und Playground, einen Experiment-Runner über Datensätze und eine Dashboard-Schicht für Kosten, Latenz und Scores. Alle vier laufen mit demselben Code, gehostet oder selbst gehostet, und die selbst gehostete Edition ist kein reduzierter Build.
- MIT-Lizenz für den Kern. Das Repository trägt einen Copyright-Hinweis der ClickHouse Inc, und nur die Verzeichnisse unter
ee/stehen unter einer separaten kommerziellen Lizenz. - Selbst hostbar mit Docker Compose, Helm oder Terraform-Templates für AWS, Azure und GCP, mit denselben Containern wie Langfuse Cloud.
- Vier Speicherdienste in einem normalen Deployment: PostgreSQL, ClickHouse, Redis oder Valkey und S3-kompatibler Object Storage.
- SDKs für Python und JavaScript, dazu ein dokumentierter OpenTelemetry-Ingestion-Endpunkt mit Versionsheader in jeder Anfrage.
- 35.468 Stars und 3.940 Forks auf GitHub im Oktober 2026, Version v4.54.0 erschien am 7. Oktober 2026.
- Seit Januar 2026 im Besitz von ClickHouse, die zugleich die Datenbank ist, in der die Traces liegen.
- Cloud-Regionen in der EU, den USA und Japan, plus eine HIPAA-Region im Enterprise-Tarif.
Wie es funktioniert
Der Ingestion-Pfad erklärt sowohl die Betriebslast als auch die Latenzgeschichte. Ein SDK oder ein Collector sendet einen Batch von Events; der Web-Container schreibt diesen Batch sofort in den Object Storage und legt nur eine Referenz in Redis ab; ein Worker holt die Events ab und schreibt sie in ClickHouse, wo Traces, Observations und Scores liegen. PostgreSQL hält die transaktionalen Daten: Projekte, API-Schlüssel, Prompt-Versionen.
Daraus folgen zwei Dinge. Ein ClickHouse-Ausfall verliert keine Events, denn der Roh-Batch liegt bereits im Object Storage und wird nachgespielt. Und Trace-Abfragen berühren PostgreSQL nie, weshalb das ClickHouse-Schema als breite, überwiegend unveränderliche Observations-Tabelle ausgelegt ist. Dasselbe Design trägt die Herstellerangabe von mehr als 90 Milliarden Observations pro Monat über die Plattform; das ist eine Unternehmenszahl auf eigener Infrastruktur und kein unabhängiger Benchmark.
Erste Schritte
Zwei Einstiegspunkte decken die meisten Fälle ab. Der OpenAI-Wrapper erfasst Aufrufe, ohne die Aufrufstellen zu ändern, und der Context Manager ist für Code ohne OpenAI-SDK gedacht oder wenn ein Span mehrere Modellaufrufe umschließen soll. Beide lesen die Zugangsdaten aus der Umgebung, dieselbe Instrumentierung läuft also gegen die EU-, US-, japanische oder HIPAA-Region oder gegen ein selbst gehostetes Deployment.
import os
from langfuse import get_client
from langfuse.openai import openai
os.environ["LANGFUSE_PUBLIC_KEY"] = "pk-lf-..."
os.environ["LANGFUSE_SECRET_KEY"] = "sk-lf-..."
os.environ["LANGFUSE_HOST"] = "https://cloud.langfuse.com" # EU region
langfuse = get_client()
# 1. Drop-in: every OpenAI call is recorded as a generation.
openai.chat.completions.create(
model="gpt-4o",
name="calculator",
messages=[{"role": "user", "content": "1 + 1 = "}],
)
# 2. Explicit: a span around one unit of work, a generation inside it.
with langfuse.start_as_current_observation(as_type="span", name="answer-question") as span:
span.update(input={"question": "What is the capital of France?"})
with langfuse.start_as_current_observation(
as_type="generation", name="llm-call", model="gpt-4o"
) as generation:
generation.update(output="Paris.")
span.update(output="answered")
langfuse.flush() # required in short-lived processesAlles, was bereits OTLP-Spans emittiert, kommt ohne SDKs aus: Der Ingestion-Endpunkt nimmt eine Standard-Payload entgegen, mit den Projektschlüsseln als Basic Auth und der Ingestion-Version im Header. Dieser Weg macht Langfuse zu einer vertretbaren Wahl in einer gemischtsprachigen Landschaft, in der Python-Instrumentierung ein weiterer Dienst wäre, den man pflegen müsste.
Frameworks bekommen erstklassige Integrationen statt Wrapper: Die Doku listet OpenTelemetry, das Vercel AI SDK, LangChain für Python und JavaScript, LlamaIndex, CrewAI, AutoGen, Google ADK und Ollama sowie Proxy-basiertes Logging für Teams, deren Aufrufe ohnehin über LiteLLM laufen. Dieser letzte Punkt entscheidet die Architekturfrage, denn ein Team, das jeden Modellaufruf durch ein Gateway schickt, holt seine Traces aus dem Gateway statt aus der Anwendung.
Prompts und Evaluierungen
Tracing ist der Teil, den jeder Wettbewerber hat. Ob Langfuse sein schwereres Deployment verdient, entscheidet sich daran, dass Prompts und Evaluierungen auf denselben Traces liegen: Ein Prompt wird in der Oberfläche versioniert, vom SDK mit einem Cache auf der Client-Seite geholt und über Labels freigegeben, während Datensätze und Experimente diesen Prompt gegen gespeicherte Eingaben laufen lassen und die Scores zurück auf die Observations schreiben.
- Prompt-Versionierung mit Release-Management und Kompositionsfähigkeit, mit geschützten Deployment-Labels im Enterprise-Tarif.
- Prompt-Caching auf der Client-Seite in den SDKs, im Hintergrund nachvalidiert, mit einem Read-Through-Cache in Redis auf dem Server.
- LLM-as-a-judge-Evaluatoren, eigene Scores aus Code, Erfassung von Nutzer-Feedback und Annotation-Queues in der Oberfläche.
- Code-Evaluatoren, die deterministische Python- oder TypeScript-Prüfungen auf Live-Observations ausführen, neu in v4.
- Monitore, die Kosten-, Latenz- und Qualitätsschwellen überwachen und über Slack, Webhooks oder GitHub Actions melden.
Der opinionierte Teil: Das ist der richtige Ort für Offline-Evaluation. Weil ein Experiment seine Scores auf dieselben Observation-Kennungen schreibt, die der Produktions-Trace benutzt, bleibt eine Regression aus einem Dataset-Lauf an die Request-Form nachvollziehbar, die sie ausgelöst hat – genau der Schritt, den die meisten Eval-Werkzeuge einer Tabelle überlassen. Der Preis ist ein Release-Prozess für Prompts, den man selbst besitzt, und ein Prompt-Register, das niemand pflegt, ist schlimmer als gar keines.
Was der Betrieb kostet
Selbst hosten ist kostenlos und ohne Nutzungslimit, damit bleibt nur der Cloud-Preis zu modellieren. Die Cloud rechnet Datenpunkte ab, keine Plätze: Eine Einheit ist jeder Trace, jede Observation und jeder Score, und ein Agenten-Turn mit drei Observations und zwei Scores kostet sechs Einheiten.
- PostgreSQL für transaktionale Daten, ClickHouse für Traces, Observations und Scores, Redis für die Queue sowie die API-Schlüssel- und Prompt-Caches.
- Events landen vor der Datenbank im Object Storage, ein analytischer Ausfall verzögert also Daten, statt sie zu verlieren.
- Hintergrund-Migrationen legen lang laufende Schema-Arbeit aus dem Upgrade-Pfad heraus, das verkürzt die Stillstandszeit beim Upgrade.
- Client-seitiges Data Masking ist in der Open-Source-Edition enthalten; serverseitiges Masking, Audit Logs, SCIM, projektbezogenes RBAC und Aufbewahrungsrichtlinien brauchen einen Enterprise-Lizenzschlüssel.
- Die selbst gehostete Enterprise-Edition ist an ClickHouse Cloud, BYOC oder Private gebündelt, und ihr Preis addiert sich zum kommerziellen ClickHouse-Tarif.
- Templates gibt es für Kubernetes, AWS, Azure und GCP; Render und Railway werden nur von der Community unterstützt.
Das operative Urteil: Das ist eine Plattform und kein Sidecar. Sie zu betreiben heißt, ClickHouse zu betreiben, also muss jemand im Team ClickHouse kennen. Teams, die es schon betreiben, gewinnen eine Fähigkeit, die sie sonst nicht kaufen könnten; Teams ohne diese Erfahrung sollten auf dem kostenlosen Hobby-Tarif anfangen und das Selbsthosting für den Tag aufheben, an dem die Frage der Datenresidenz real wird.
| Tarif | Preis | Enthalten | Was sich ändert |
|---|---|---|---|
| Hobby | Kostenlos | 50.000 Einheiten pro Monat | 30 Tage Daten, zwei Nutzer, 1.000 Ingestion-Anfragen pro Minute |
| Core | 29 $ pro Monat | 100.000 Einheiten | 90 Tage Daten, unbegrenzt Nutzer, 4.000 Anfragen pro Minute |
| Pro | 199 $ pro Monat | 100.000 Einheiten | drei Jahre Daten, 20.000 Anfragen pro Minute, SOC 2 und ISO 27001 |
| Enterprise | 2.499 $ pro Monat | 100.000 Einheiten | Audit Logs, SCIM, eigene Ratelimits, Verfügbarkeits-SLA |
Nutzung über den enthaltenen Einheiten wird nach gestaffelten Sätzen abgerechnet: 8 $ pro 100.000 Einheiten bis eine Million, 7 $ bis zehn Millionen, 6,50 $ bis fünfzig Millionen und darunter 6 $. Die Preisseite beziffert einen Monat mit einer Million Einheiten auf Core mit 101 $ und einen Monat mit fünfundzwanzig Millionen auf Pro mit Teams-Addon auf 2.176 $. Erst die Zahl der Einheiten modellieren, dann mit einem Preis pro Platz oder pro Gigabyte vergleichen, denn dieselbe Last kann je nach Anzahl der Observations pro Request um eine Größenordnung abweichen.
Wo es hakt
Zuerst die Schwächen, denn sie sind die Gründe für etwas anderes. Instrumentierung muss weiterhin geschrieben werden, und eine Anwendung, die drei Anbieter über ein Gateway ruft, braucht drei Integrationen oder eine OpenTelemetry-Pipeline. Die Oberfläche ist dicht, und der Weg von einem Trace zu einem Dashboard, das eine Frage beantwortet, misst sich in Tagen. Die Einheitspreisrechnung bestraft geschwätzige Instrumentierung, denn der billigste Weg, eine Rechnung zu senken, ist weniger Detail zu senden – genau die falsche Instinkt in einem Störfall. Und das Produkt gehört inzwischen einem Datenbankhersteller: ClickHouse hat Langfuse im Januar 2026 gekauft, was der Roadmap klar zugutekam und die kommerzielle Enterprise-Edition zugleich immer mehr zu einem ClickHouse-Gespräch macht.
| Werkzeug | Lizenz | Wo es läuft | Stärkste Seite |
|---|---|---|---|
| Langfuse | MIT-Kern, ee/-Verzeichnisse unter kommerziellem Schlüssel | Cloud oder eigenes Docker-, Helm- oder Terraform-Deployment | Traces, Prompts und Experimente in einem Backend |
| LangSmith | Client-SDK unter MIT, die Plattform ist gehostet | der gehostete Dienst von LangChain | Teams, die sich bereits für LangGraph entschieden haben |
| Arize Phoenix | Elastic License 2.0 | selbst gehostet, Tracing über OpenInference und OpenTelemetry | evaluationszentrierte Abläufe über eigene Traces |
| Helicone | Apache-2.0 | selbst gehostet oder Cloud | jeden Aufruf ohne SDK-Änderung erfassen, über einen Proxy |
Der Vergleich, auf den es ankommt, ist nicht der Funktionsumfang. Phoenix ist kostenlos zu betreiben und strenger beim Evaluieren, aber Elastic License 2.0 ist source-available und nicht quelloffen und verbietet dir, es als Dienst anzubieten. Helicone ist der billigste Weg zu Kosten- und Latenzzahlen für jeden Aufruf, um den Preis eines Proxys im Request-Pfad. LangSmith ist die bequemste Option, sobald die Framework-Entscheidung steht, und diejenige, deren Preis mit der Größe des Engineering-Teams wächst.
Urteil
Langfuse ist das Werkzeug, das diese Kategorie gebraucht hat: eine permissiv lizenzierte Plattform, die nicht verlangt, dass du Frameworks wechselst, einen Proxy in den Request-Pfad legst oder die Rohdaten abgibst. Position beziehen: Für ein Team mit mehreren Agent-Oberflächen und einer echten Rechnung ist es die richtige Voreinstellung, für einen einzelnen Prompt in einem Nebenprojekt die falsche.
- Nimm es, wenn Traces, Prompt-Versionierung und Experimente in einem Ort liegen müssen und jemand ClickHouse betreiben kann.
- Nimm es, wenn Prompt-Versionen auditierbar sein müssen, was in Beschaffungsgesprächen in der EU der übliche Fall ist.
- Nimm es, wenn du bereits OpenTelemetry emittierst und lieber ein Backend als Instrumentierung pro Framework haben willst.
- Nimm es nicht, wenn die Anwendung ein paar Modellaufrufe am Tag macht; ein kostenloser Tarif plus strukturierte Logs kostet weniger Aufmerksamkeit.
- Nimm es nicht, wenn niemand die Instrumentierung nachjustiert. Die Rechnung wächst mit der Zahl der Observations, nicht mit der Zahl der Nutzer, und die billigste Ersparnis ist, genau die Details abzuschalten, die man um 3 Uhr nachts braucht.
Quellen
- taghrefchildren
- taghrefchildren
- taghrefchildren
- taghrefchildren
- taghrefchildren
- taghrefchildren
- taghrefchildren
- taghrefchildren
Häufige Fragen
Wie teuer ist Langfuse?
Selbst hosten ist unter der MIT-Lizenz kostenlos und ohne Nutzungslimit. Langfuse Cloud hat einen kostenlosen Hobby-Tarif mit 50.000 Einheiten pro Monat, 30 Tagen Datenzugriff und zwei Nutzern, Core für 29 $ pro Monat mit 100.000 Einheiten und 90 Tagen, Pro für 199 $ und Enterprise für 2.499 $. Nutzung über den enthaltenen Einheiten kostet von 8 $ pro 100.000 Einheiten bis zu 6 $ bei hoher Last.
Was zählt als abrechnungseinheit bei Langfuse?
Jeder Tracing-Datenpunkt, den du an die Plattform sendest: ein Trace, eine Observation darin wie ein Span, Event oder Generation, oder ein Score. Ein einzelner Agenten-Turn mit drei Observations und zwei Bewertungs-Scores kostet damit sechs Einheiten. Deshalb ist die Granularität der Instrumentierung wichtiger als die Zahl der Nutzer.
Verlangsamt Langfuse meine Anwendung?
Laut Doku nein: Die SDKs legen Trace-Events lokal in eine Queue und fluschen sie gebündelt im Hintergrund, der Request-Pfad wird also nicht blockiert. In kurzlebigen Prozessen wie Lambda-Handlern, Cronjobs und CLIs musst du am Ende flush() aufrufen, sonst gehen die letzten Observations beim Beenden verloren.
Langfuse oder LangSmith?
Nimm Langfuse, wenn du eine MIT-lizenzierte Plattform im eigenen VPC willst und Traces, Prompts und Experimente in einem Modell. Nimm LangSmith, wenn du auf LangGraph baust und Tracing aus erster Hand mit Annotation-Queues willst, ohne selbst etwas zusammenzubauen. Die Kostenmodelle unterscheiden sich ebenfalls: Langfuse rechnet pro Datenpunkt mit unbegrenzt Nutzern, LangSmith pro Platz plus Traces.