#33383 Upgrade Langfuse integration to Python SDK v4 and v4 OTel ingestion
Hi LiteLLM team 👋 — I'm Hassieb from the Langfuse team.
Langfuse Cloud's [Fast Preview](<https://langfuse.com/docs/v4>) uses the new observations-first ingestion path. For real-time data there, Python integrations should use SDK v4.7.0+ or send compatible OpenTelemetry spans with the v4 ingestion header.
I reviewed LiteLLM's two Langfuse callback paths. The concrete migration looks like:
* Raise the proxy/runtime dependency from `langfuse<3` to `langfuse>=4.7,<5` and update the exact `2.59.7` pins used by proxy builds. * In the `langfuse_otel` callback, add `x-langfuse-ingestion-version: 4` alongside `Authorization` in both the static exporter config and dynamic/per-request headers. The generic OTel Langfuse preset should carry the same header. * Keep the existing OTLP endpoint, but ensure user/session/trace attributes are attached to every exported span so they remain queryable in Fast Preview. * Migrate the legacy `langfuse` callback away from `.trace()/.generation()` to v4 observations plus `propagate_attributes()`, or deprecate that legacy path in favor of `langfuse_otel`. * Update the existing `test_langfuse_otel.py` coverage for the new header and both proxy/SDK callback m…