Skip to main content
Databricks Agent Bricks agents emit MLflow Tracing spans. HoneyHive ingests those spans over OTLP/HTTP from environment variables on the agent runtime. No HoneyHive SDK code is required in the agent.

Prerequisites

  • Databricks workspace with Model Serving, or a local/notebook environment with mlflow>=3.11
  • A HoneyHive project API key from Settings > Project > API Keys

Provider host and OTLP traces URL

HoneyHive routes OTLP ingestion through your deployment’s API host. Replace <provider-host> with the hostname shown in your HoneyHive dashboard or API settings:
Example for a US production deployment:

Required environment variables

Set these on the agent process before any MLflow tracing starts:
Always set MLFLOW_ENABLE_OTEL_GENAI_SEMCONV=true. Without it, prompts, completions, and token usage will not show up in HoneyHive.
MLFLOW_ENABLE_OTEL_GENAI_SEMCONV requires MLflow 3.11+. Dual export uses MLFLOW_TRACE_ENABLE_OTLP_DUAL_EXPORT (MLflow 3.4+). Databricks’ OpenTelemetry export page currently shows MLFLOW_ENABLE_DUAL_EXPORT, which MLflow does not read - use the name above. If both OTEL_EXPORTER_OTLP_TRACES_PROTOCOL and OTEL_EXPORTER_OTLP_PROTOCOL are set, the traces-specific variable wins. Unset any leftover OTEL_EXPORTER_OTLP_TRACES_PROTOCOL=grpc so http/protobuf takes effect.

Configure a Model Serving agent

Pass the variables through environment_vars on agents.deploy():
Use a Databricks secret with {{secrets/scope/key}} instead of pasting the API key into a notebook. For agents already deployed, add the same variables under Serving > endpoint > Edit > Environment variables, then redeploy or restart the endpoint.

Notebook or local smoke test

mlflow.openai.autolog() creates the model span that carries inputs, outputs, and tokens under GenAI semconv:
Use an instrumented model call (as above) for inputs and outputs in HoneyHive. With GenAI semconv on, MLflow only exports I/O from recognized LLM calls. Values you set with set_inputs / set_outputs on a plain mlflow.start_span wrapper do not appear in HoneyHive. Dual export still needs an MLflow tracking URI for the Databricks MLflow half (for example mlflow.set_tracking_uri("databricks") in a notebook, or the workspace default on Model Serving).
On Databricks, use mlflow[databricks] when you also want traces in the workspace MLflow UI.

What HoneyHive receives

With GenAI semconv enabled, HoneyHive shows model inputs, outputs, token usage, and parent/child relationships for instrumented agent spans. Typical shape:
Parent/child hierarchy is preserved via OTel parent span IDs, but spans from one agent invocation may currently appear across more than one HoneyHive session row. Filter by service.name and source=otlp in Traces to see the full run.

Verify traces in HoneyHive

  1. Invoke the agent (or run the smoke test above).
  2. Open Traces for the project tied to your API key.
  3. Look for events with source set to otlp and metadata such as telemetry.sdk.name=mlflow and your OTEL_SERVICE_NAME.
  4. Open a model span and confirm inputs, outputs, and token counts appear.
If traces do not appear:
  1. Confirm the endpoint ends with /opentelemetry/v1/traces and uses your HoneyHive API host.
  2. Confirm OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf, and that OTEL_EXPORTER_OTLP_TRACES_PROTOCOL is unset or also http/protobuf.
  3. Confirm Authorization=Bearer <HH_API_KEY> matches the target project.
  4. Confirm MLFLOW_ENABLE_OTEL_GENAI_SEMCONV=true is set before the first span.
  5. Confirm MLFLOW_ENABLE_OTLP_EXPORTER is not set to false.
  6. Confirm the serving endpoint can reach HoneyHive over outbound HTTPS.

Export modes

OpenTelemetry concepts

How HoneyHive stores OTLP traces and GenAI span attributes

Tracing introduction

Sessions, event types, and trace hierarchy in HoneyHive

Enrich your traces

Add metadata, user properties, and feedback to traces

Custom spans

Add HoneyHive spans around business logic in your application

Resources