Zerobus Integrations
This page describes how partners configure User-Agent telemetry for Databricks Zerobus streaming ingestion integrations.
Support status
The following table summarizes User-Agent support across Zerobus integration methods:
| Integration | Version | Status | Notes |
|---|---|---|---|
| gRPC direct | — | Supported | grpc.WithUserAgent option — grpc-go |
| Rust SDK | 2.3+ | Supported | .application_name() method — crates.io | release notes |
| Python SDK | 1.4+ | Supported | application_name parameter — PyPI | release notes |
| Java SDK | 1.3+ | Supported | applicationName argument — Maven | release notes |
| Go SDK | 1.3+ | Supported | WithApplicationName option — pkg.go.dev | release notes |
| TypeScript SDK | 1.1.0 | Not supported | No partner customization — npm |
gRPC direct integration
For partners integrating directly with the Zerobus gRPC API, set the User-Agent using grpc.WithUserAgent:
import "google.golang.org/grpc"
conn, err := grpc.Dial(
endpoint,
grpc.WithUserAgent("AcmePartner_StreamProduct/1.0"),
// ... other options
)
Rust SDK
For the Databricks Zerobus Rust SDK (version 2.3+), set the application_name when configuring the client:
use databricks_zerobus_ingest_sdk::IngestClient;
let client = IngestClient::builder()
.application_name("AcmePartner_StreamProduct/1.0")
// ... other configuration
.build()?;
Python SDK
For the Databricks Zerobus Python SDK (version 1.4+), set the application_name when initializing the client:
from zerobus.sdk.sync import ZerobusSdk
sdk = ZerobusSdk(
server_endpoint="<zerobus-endpoint>",
unity_catalog_endpoint="<workspace-url>",
application_name="AcmePartner_StreamProduct/1.0"
)
Go SDK
For the Databricks Zerobus Go SDK (version 1.3+), use WithApplicationName when creating the SDK:
import "github.com/databricks/zerobus-sdk/go"
sdk, err := zerobus.NewZerobusSdkWithOptions(
"https://zerobus-endpoint",
"https://workspace-url",
zerobus.WithApplicationName("AcmePartner_StreamProduct/1.0"),
)
Java SDK
For the Databricks Zerobus Java SDK (version 1.3+), set the applicationName in the constructor:
import com.databricks.zerobus.ZerobusSdk;
ZerobusSdk sdk = new ZerobusSdk(
"https://zerobus-endpoint",
"https://workspace-url",
"AcmePartner_StreamProduct/1.0" // applicationName
);
Verifying implementation
Partners can verify that their User-Agent is landing correctly by querying the system.access.audit table:
SELECT
event_time,
user_agent,
service_name,
action_name,
user_identity['email'] AS user_email,
source_ip_address,
response.status_code AS response_status,
request_params
FROM system.access.audit
WHERE
event_time >= current_timestamp() - INTERVAL 12 HOURS
AND user_agent LIKE '%<your-partner-tag>%'
ORDER BY event_time DESC
Look for rows where:
service_nameiszerobusaction_nameiscreateEphemeralStreamor similaruser_agentcontains your partner identifier
What's next
- Review User-Agent format: Understand the required format and guidelines.
- Validate implementation: Verify User-Agent attribution using Query History or system tables.
- Review integration requirements: See Integration Requirements for all Connected Partner onboarding requirements.