Empieza con App Analytics

Importante

Esta característica se encuentra en versión preliminar privada. Para probarlo, póngase en contacto con su contacto de Azure Databricks.

Añade analítica a una app existente en tres pasos: graba un evento, reenvíalo a través de tu backend y verifica en Analytics. No se requiere ninguna biblioteca analítica específica.

Prerequisites

Paso 1: Grabar un evento

Llama a este código desde un gestor de interacción existente. Este ejemplo registra report_exported después de que la exportación de un informe tenga éxito:

const logRecord = {
  timeUnixNano: (BigInt(Date.now()) * 1000000n).toString(),
  eventName: 'report_exported',
  attributes: [
    { key: 'databricks.app.analytics.schema.version', value: { intValue: '1' } },
    { key: 'databricks.app.analytics.event.id', value: { stringValue: crypto.randomUUID() } },
    { key: 'databricks.app.analytics.event.type', value: { stringValue: 'action' } },
    { key: 'databricks.app.analytics.event.name', value: { stringValue: 'report_exported' } },
  ],
};

const response = await fetch('/_analytics', {
  method: 'POST',
  headers: { 'content-type': 'application/json' },
  body: JSON.stringify(logRecord),
});
if (!response.ok) throw new Error('Analytics export failed.');

/_analyticses una ruta que añades a tu app, no un endpoint integrado de Azure Databricks. El paso 2 muestra la lógica de exportación para su gestor de backend.

session_id es opcional. Si proporcionas uno, reutiliza la sesión de análisis original en lugar de generar un nuevo ID de sesión para cada evento. Si intentas de nuevo un evento, reenvía el mismo registro, incluyendo su ID y la marca de tiempo.

Para vistas de página, Web Vitals y propiedades de acción, véanse ejemplos de cargas útiles.

Paso 2: Exporta desde tu backend

Añade un POST /_analytics gestor a tu backend actual. Pasa su cuerpo de solicitud analizado y validado a la siguiente función. Mantén la ruta detrás de los controles de acceso de tu app y aplica tus límites de solicitudes y gestión de errores actuales. Devuelve el éxito al navegador solo después de que la función tenga éxito.

La función envuelve el registro en una solicitud del Protocolo OpenTelemetry (OTLP) y lo envía al colector de la app:

async function exportAnalyticsRecord(logRecord) {
  const endpoint = process.env.OTEL_EXPORTER_OTLP_ENDPOINT;
  if (endpoint !== 'http://localhost:4314') {
    throw new Error('This example requires the TCP OTLP/HTTP receiver at localhost:4314.');
  }

  const response = await fetch(`${endpoint}/v1/logs`, {
    method: 'POST',
    headers: { 'content-type': 'application/json' },
    body: JSON.stringify({
      resourceLogs: [
        {
          resource: {
            attributes: [{ key: 'service.name', value: { stringValue: process.env.DATABRICKS_APP_NAME } }],
          },
          scopeLogs: [{ logRecords: [logRecord] }],
        },
      ],
    }),
  });
  if (!response.ok) throw new Error('Collector rejected the request.');
  const text = await response.text();
  const result = text ? JSON.parse(text) : {};
  if (Number(result.partialSuccess?.rejectedLogRecords ?? 0) > 0) {
    throw new Error('Collector rejected the event.');
  }
}

Importante

Este ejemplo HTTP utiliza el receptor TCP en localhost:4314, que soporta HTTP así como gRPC. Para un unix:// o un extremo solo para gRPC, utiliza en su lugar un exportador de OpenTelemetry compatible. El colector se ejecuta dentro de la aplicación desplegada, no en el dispositivo del visitante. Consulta Variables de entorno de telemetría de la app.

Paso 3: Verificar en Analítica

  1. Despliega los cambios usando el flujo de trabajo de despliegue existente de tu app y luego activa la interacción instrumentada.
  2. En la página de detalles de la app, abre Analytics y selecciona un almacén SQL.
  3. Si aparece la incorporación, selecciona Comprobar eventos y luego Abrir Analítica cuando lleguen los eventos.
  4. Busca report_exported en Acciones principales o Eventos en directo.

La aceptación del recopilador precede a la ingestión de la tabla. Si el evento no aparece, actualiza Analítica y comprueba el intervalo de tiempo. Sigue cualquier indicación de permisos que indique la interfaz. Para comprobar los datos de telemetría subyacentes, consulte Verificar datos de telemetría.

Recursos adicionales