docs: add External Observability Platforms integration page - #703
docs: add External Observability Platforms integration page#703rajshah4 wants to merge 3 commits into
Conversation
Add a customer-facing guide for redirecting OpenHands Enterprise conversation traces to an external OTLP-compatible observability platform (Langfuse, Honeycomb, Tempo, or any OTLP backend) instead of, or in addition to, the bundled Laminar. - New page: enterprise/integrations/observability-platforms.mdx - Nav: added to the Enterprise > Integrations group in docs.json Co-authored-by: openhands <openhands@all-hands.dev>
…tions nav Co-authored-by: openhands <openhands@all-hands.dev>
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Workflows to automatically generate PRs for you. |
Resolve docs.json nav conflict: keep both new Enterprise Integrations entries (external-llm-gateways from #702, observability-platforms from this PR), ordered gateways then observability. Add a cross-link from the observability page to the external-llm-gateways page so operators can distinguish trace export from LLM traffic routing. Co-authored-by: openhands <openhands@all-hands.dev>
|
Update: I rebased this branch on I also added a cross-link from this page to the new External LLM Gateways page so operators can distinguish trace export (this page) from LLM traffic routing (the gateways page). No content changes to the observability guide itself.
This comment was created by an AI agent (OpenHands) on behalf of rajshah4. |
Summary
Add a customer-facing integration guide for redirecting OpenHands Enterprise conversation traces to an external OTLP-compatible observability platform (Langfuse, Honeycomb, Grafana Tempo, or any OTLP backend) instead of, or in addition to, the bundled Laminar.
enterprise/integrations/observability-platforms.mdxenterprise/integrations/observability-platformsto the Enterprise → Integrations group indocs.jsonWhy
OHE ships with Laminar as its built-in tracing backend. Customers who already operate a different OTel-compatible observability platform want all conversation traces to flow into their platform with the same richness they get from Laminar today. This guide documents how to do that.
How it works
OHE's tracing layer is the Laminar Python SDK (
lmnr), which wraps the OpenTelemetry SDK. ThelmnrSDK respects standardOTEL_EXPORTER_OTLP_TRACES_*environment variables wheneverLMNR_BASE_URLis not set. So the entire integration is an env-var change on the runtime pod — no source changes, no Helm chart patch.The doc covers:
LMNR_BASE_URL→OTEL_EXPORTER_OTLP_TRACES_*switch (with a warning thatLMNR_BASE_URLmust be unset for theOTEL_*vars to take effect)conversation → conversation.run → agent.step → llm.completion + tool.execute), with LLM spans carryinggen_ai.*model/token/input/output attributesThis was validated end-to-end against a self-hosted Langfuse v4 instance: traces emitted by the
lmnrSDK inside a real OHE runtime pod landed in Langfuse with correct trace grouping, nesting, and observation-type classification (AGENT/CHAIN/GENERATION/TOOL).Notes
OTEL_EXPORTER_OTLP_TRACES_*fields directly, mirroring how the existing Analytics page notes the Admin Console limitation forLLM_*settings.Info,Warning,Note,Tabs/Tab,CardGroup/Card,Tree,AccordionGroup/Accordion) and voice as the existing enterprise integration pages (azure-devops,slack,external-postgres).Supersedes #700 (fork-based PR; closed because the Mintlify preview bot does not trigger on fork-based PRs).
Related Linear ticket: OHE-3032
This PR was created by an AI agent (OpenHands) on behalf of rajshah4.