Dash0 acquires Polar Signals
Monitor Databricks Apps with correlated OpenTelemetry traces, logs, and metrics in Dash0.
Databricks Apps provides a serverless environment for building and running data and AI applications directly on the Databricks platform.
Configure your Databricks App to export OpenTelemetry traces, logs, and metrics to Dash0. This provides a single, correlated view of application requests, errors, performance, and custom telemetry.
This guide configures a Databricks App to export OpenTelemetry traces, logs, and metrics directly to Dash0 over OTLP/HTTP.
You need:
app.yaml file.Open a Databricks Web Terminal, or another Bash terminal with an authenticated Databricks CLI.
Create a dedicated secret scope:
Store the Dash0 authorization and dataset headers in that scope:
Replace {{dataset}} with the Dash0 dataset that should receive the telemetry.
Using a dedicated scope limits the app to secrets required for this integration. Databricks secret permissions apply to the entire scope rather than an individual secret.
In your Databricks workspace:
dash0-observability scope.otlp-headers secret.dash0_otlp_headers.The resource key lets app.yaml reference the secret without placing its value in source control.
When Databricks App telemetry is enabled, Databricks automatically configures OpenTelemetry to send application telemetry to a local gRPC collector at http://localhost:4314. The configuration below intentionally replaces that exporter destination and protocol so the application sends telemetry directly to Dash0 over OTLP/HTTP. It leaves OTEL_SERVICE_NAME and OTEL_RESOURCE_ATTRIBUTES unchanged, preserving the app name and the workspace.id and app.name attributes injected by Databricks.
Add the following entries to the existing env section of the app's app.yaml. Keep the app's existing startup command unless you are also adding auto-instrumentation.
Replace {{endpoint_otlp_http}} with the OTLP/HTTP base endpoint for your Dash0 region. Do not append /v1/traces, /v1/logs, or /v1/metrics; the OpenTelemetry exporters add the appropriate signal path.
If Databricks App telemetry is not enabled, configure OTEL_SERVICE_NAME and OTEL_RESOURCE_ATTRIBUTES explicitly in your application. Use a stable service name and include workspace.id and app.name along with any custom resource attributes.
The always_on sampler is useful while verifying the integration. For production workloads, select a sampling configuration appropriate for your traffic volume.
The exporter configuration tells an OpenTelemetry SDK where to send telemetry. It does not generate telemetry by itself.
If your application already initializes an OpenTelemetry SDK or uses auto-instrumentation, no application-code changes are required. Deploy the updated configuration and continue to verification.
If it is not instrumented, follow the relevant Dash0 language integration:
Databricks also provides framework-specific instrumentation examples for Streamlit, Dash, Flask, FastAPI, and Node.js.
For a Python Flask application, add these packages to requirements.txt:
Then prefix the existing startup command with opentelemetry-instrument. For an application normally started with python app.py, use:
This example instruments incoming Flask requests and Python logging. Add manual spans or custom metrics only when the application needs telemetry for application-specific operations.
For a pre-built application whose source cannot be changed, direct export works only if the application already emits OpenTelemetry data and honors the standard OTEL_* environment variables.
In your Databricks workspace:
Saving the source does not update a running deployment. You must deploy the latest version.
Allow a few seconds for the exporters to send their first batches.
service.name = "databricks-app".