Changelog
View SourceAll notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
[0.2.0] - 2026-03-31
Fixed
Langfuse.Prompt.get/2now returns prompt data correctly; the underlying HTTP call was sending the prompt name as a query parameter instead of in the URL path
Changed
- Relaxed Elixir version constraint from
~> 1.19to~> 1.17to support projects on Elixir 1.17 and 1.18
Added
:resolveoption forLangfuse.Prompt.get/2,Langfuse.Prompt.fetch/2,Langfuse.Client.get_prompt/2, andLangfuse.HTTP.get_prompt/2to control server-side prompt dependency resolution:cacertfileconfig option andLANGFUSE_CACERTFILEenv var for custom CA certificates (self-hosted Langfuse with self-signed certs)- GitHub Actions CI with matrix testing across Elixir 1.17/OTP 26, 1.18/OTP 27, and 1.19/OTP 28
[0.1.0] - 2025-11-29
Added
Core Tracing
Langfuse.trace/1for creating traces with version and release field supportLangfuse.span/2for creating spans with observation types (agent, tool, chain, retriever, embedding, etc.)Langfuse.generation/2for tracking LLM generations with flexible usage fieldsLangfuse.event/2for recording discrete events- Environment field support across all event payloads
- SDK metadata included in ingestion batch requests
Scoring
Langfuse.score/2with numeric, categorical, and boolean score types- Session ID and metadata support for scores
Sessions
Langfuse.Sessionfor grouping related traces into conversations
Prompt Management
Langfuse.Prompt.get/2for fetching prompts with automatic cachingLangfuse.Prompt.compile/2for variable substitution in prompts- Fallback prompt support when fetch fails
- Cache invalidation functions (
invalidate/2,invalidate_all/0)
Client API
Langfuse.Clientmodule for direct REST API accessauth_check/0for connection verification- Prompts API:
get_prompt/2 - Datasets API: create, get, list, delete datasets and items
- Dataset items: create, get, update (PATCH), delete
- Dataset runs: create and get
- Observations API: get and list observations
- Models API: create, get, list, delete models
- Score configs API: create, get, list
OpenTelemetry Integration
- Optional OpenTelemetry dependency integration
Langfuse.OpenTelemetry.SpanProcessorfor converting OTEL spans to Langfuse observationsLangfuse.OpenTelemetry.TraceContextfor W3C distributed tracingLangfuse.OpenTelemetry.AttributeMapperfor field mappingLangfuse.OpenTelemetry.Setupmodule for configuration helpers
Instrumentation
Langfuse.Instrumentationmacros for automatic function tracing- Custom instrumentation support via telemetry
Security
Langfuse.Maskingmodule for sensitive data redaction- Configurable masking patterns and functions
Infrastructure
Langfuse.IngestionGenServer for async event batching- Configurable batch size, flush intervals, and retry settings
- Graceful shutdown with automatic pending event flush
Langfuse.Configwithreload/0for runtime configuration updates- Configurable GenServer names for multi-instance support
- HTTP client with exponential backoff retry
- Debug logging configuration option
Telemetry
Langfuse.Telemetryevents for observability:[:langfuse, :ingestion, :flush, :start | :stop | :exception][:langfuse, :http, :request, :start | :stop | :exception][:langfuse, :prompt, :fetch, :start | :stop | :exception][:langfuse, :prompt, :cache, :hit | :miss]