Skip to content

Custom routes via server.extend() can't emit WideEvents / telemetry (logger not exported) #483

Description

@jpopBartonMalow

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)

  1. Export the WideEvent logger (createLogger + event/setComponent/setContext) as public API, or
  2. Document a supported way to emit WideEvents / structured telemetry from server.extend() routes, or
  3. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions