Inizia con App Analytics

Importante

Questa funzionalità è in anteprima privata. Per provarlo, contattare il contatto di Azure Databricks.

Aggiungi analytics a un'app esistente in tre passaggi: registra un evento, inoltralo tramite il backend e verificalo in Analytics. Non è richiesta una libreria di analisi specifica.

Prerequisiti

Passo 1: Registra un evento

Chiama questo codice da un gestore di interazione esistente. Questo esempio registra report_exported dopo che un'esportazione del report ha avuto successo:

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.');

/_analyticsè una strada che aggiungi alla tua app, non un endpoint integrato di Azure Databricks. Il passaggio 2 mostra la logica di esportazione del relativo handler backend.

session_id è facoltativo. Se ne fornisci uno, riutilizza la sessione di analisi di origine invece di generare un nuovo ID di sessione per ogni evento. Se riprovi un evento, invia lo stesso record, includendo il suo ID e il timestamp.

Per le visualizzazioni di pagina, Web Vitals e le proprietà delle azioni, consulta Esempi di payload.

Passo 2: Esporta dal tuo backend

Aggiungi un POST /_analytics handler al tuo backend esistente. Passa il corpo della richiesta analizzato e validato alla seguente funzione. Mantieni il percorso protetto dai controlli di accesso della tua app e applica i tuoi limiti di richiesta e le procedure esistenti di gestione degli errori. Restituisci un esito positivo al browser solo dopo che la funzione è stata completata con successo.

La funzione avvolge il record in una richiesta OpenTelemetry Protocol (OTLP) e lo invia al collezionista dell'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

Questo esempio HTTP utilizza il ricevitore TCP in localhost:4314, che supporta sia HTTP che gRPC. Per un endpoint unix:// o solo gRPC, usa invece un esportatore OpenTelemetry compatibile. Il collettore viene eseguito all'interno dell'app distribuita, non sul dispositivo del visitatore. Vedi Variabili di ambiente di telemetria dell'app.

Passo 3: Verifica nelle analisi

  1. Distribuisci le modifiche utilizzando il flusso di lavoro di distribuzione esistente della tua app, poi attiva l'interazione strumentata.
  2. Nella pagina dettagli dell'app, apri Analytics e seleziona un SQL warehouse.
  3. Se viene mostrato l'onboarding, seleziona Controlla gli eventi, poi Apri Analytics quando arrivano gli eventi.
  4. Trova report_exported in Top Azioni o Eventi dal Vivo.

L'accettazione da parte dei collettori precede l'ingestione della tabella. Se l'evento non appare, aggiorna Analytics e controlla l'intervallo temporale. Segui qualsiasi indicazione per i permessi indicata dall'interfaccia utente. Per verificare i dati telemetrici sottostanti, vedi Verifica dati telemetrici.

Risorse aggiuntive