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

Abierto
#483 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 3 días

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
35/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
express, node.js, typescript

Línea de trabajo

Comienza con el punto de entrada server.extend() utilizado desde onPluginsReady y revisa logging/logger.js junto con el mapa de exports del paquete. Compara el uso interno existente de WideEvent con los exports públicos de @databricks/appkit y beta. Se considera terminado cuando las rutas personalizadas tienen una forma documentada o compatible de emitir telemetría estructurada por solicitud, con el límite de la API pública y el comportamiento esperado claramente definidos.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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.

Lenguaje dominante
TypeScript
Estrellas
119
Forks
36
Merge medio
4 d 16 h
PR fusionados (30 d)
37

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de databricks/appkit

Todos los issues de databricks/appkit

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.