Summary
Custom Express routes added via createApp({ onPluginsReady(appkit){ appkit.server.extend(app => …) } }) can't emit AppKit WideEvents / structured telemetry. Built-in plugin routes (analytics, files, genie) emit per-request WideEvents to the configured OTLP exporter, but custom routes have no supported way to do the same. console.log from a custom route reaches stdout but isn't part of the OTLP WideEvent/log export.
Version
@databricks/appkit 0.38.1 · Node 24 · Databricks Apps · telemetry configured via OTLP.
What I'm doing
Mounting custom HTTP routes (an MCP server over Streamable HTTP, plus a model-serving proxy) via server.extend() in onPluginsReady, and wanting per-request/per-tool observability alongside the plugin routes.
What I tried
Plugin routes use an internal logger:
import { createLogger } from ".../logging/logger.js";
const logger = createLogger("analytics");
logger.event(req)?.setComponent("analytics", "executeQuery").setContext("analytics", {...});
But that API isn't publicly reachable: createLogger / the WideEvent API is not exported from @databricks/appkit or @databricks/appkit/beta, and the package exports map (only ., ./beta, ./dist/shared/src/plugin, ./type-generator, ./package.json) blocks importing @databricks/appkit/dist/logging/logger.js.
Ask (any one)
- Export the WideEvent logger (
createLogger + event/setComponent/setContext) as public API, or
- Document a supported way to emit WideEvents / structured telemetry from
server.extend() routes, or
- Auto-instrument custom routes registered via
server.extend().
Workaround
console.log (stdout only), or emitting a raw OTLP LogRecord via @opentelemetry/api-logs against the exporter AppKit already configures.
Summary
Custom Express routes added via
createApp({ onPluginsReady(appkit){ appkit.server.extend(app => …) } })can't emit AppKit WideEvents / structured telemetry. Built-in plugin routes (analytics, files, genie) emit per-request WideEvents to the configured OTLP exporter, but custom routes have no supported way to do the same.console.logfrom a custom route reaches stdout but isn't part of the OTLP WideEvent/log export.Version
@databricks/appkit0.38.1 · Node 24 · Databricks Apps · telemetry configured via OTLP.What I'm doing
Mounting custom HTTP routes (an MCP server over Streamable HTTP, plus a model-serving proxy) via
server.extend()inonPluginsReady, and wanting per-request/per-tool observability alongside the plugin routes.What I tried
Plugin routes use an internal logger:
But that API isn't publicly reachable:
createLogger/ the WideEvent API is not exported from@databricks/appkitor@databricks/appkit/beta, and the packageexportsmap (only.,./beta,./dist/shared/src/plugin,./type-generator,./package.json) blocks importing@databricks/appkit/dist/logging/logger.js.Ask (any one)
createLogger+event/setComponent/setContext) as public API, orserver.extend()routes, orserver.extend().Workaround
console.log(stdout only), or emitting a raw OTLPLogRecordvia@opentelemetry/api-logsagainst the exporter AppKit already configures.