Skip to main content

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:

IntegrationVersionStatusNotes
gRPC directSupportedgrpc.WithUserAgent option — grpc-go
Rust SDK2.3+Supported.application_name() method — crates.io | release notes
Python SDK1.4+Supportedapplication_name parameter — PyPI | release notes
Java SDK1.3+SupportedapplicationName argument — Maven | release notes
Go SDK1.3+SupportedWithApplicationName option — pkg.go.dev | release notes
TypeScript SDK1.1.0Not supportedNo 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_name is zerobus
  • action_name is createEphemeralStream or similar
  • user_agent contains your partner identifier

What's next