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

Offen
#483 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 3 Tagen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Anfängerfreundlichkeit
35/100
Issue-Typ
Feature
Klarheit
Größtenteils klar
Aktivitätsstatus
Ruhig

Rechercherichtung

Beginne mit dem von onPluginsReady verwendeten Einstiegspunkt server.extend() und prüfe logging/logger.js zusammen mit der Exports-Map des Pakets. Vergleiche die bestehende interne Verwendung von WideEvent mit den öffentlichen Exporten von @databricks/appkit und beta. Als abgeschlossen gilt die Arbeit, wenn benutzerdefinierte Routen eine dokumentierte oder unterstützte Möglichkeit haben, strukturierte Telemetrie pro Request auszugeben, wobei die öffentliche API-Grenze und das erwartete Verhalten klar sind.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

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.

Vorherrschende Sprache
TypeScript
Sterne
119
Forks
36
Ø Merge
4 T. 16 Std.
Gemergte PRs (30 T.)
37

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus databricks/appkit

Alle Issues in databricks/appkit

Ähnliche Issues

Weitere Issues zu TypeScript

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.