Kom igång med App Analytics

Important

Den här funktionen är en privat förhandsversion. Kontakta din Azure Databricks-kontakt om du vill prova det.

Lägg till analys i en befintlig app i tre steg: registrera en händelse, vidarebefordra den via din backend och verifiera den i Analytics. Inget specifikt analysbibliotek krävs.

Förutsättningar

Steg 1: Spela in en händelse

Anropa denna kod från en befintlig interaktionshanterare. Detta exempel registrerar report_exported efter att en rapportexport lyckats:

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är en rutt du lägger till i din app, inte en inbyggd Azure Databricks-endpoint. Steg 2 visar exportlogiken för dess backend-hanterare.

session_id är valfritt. Om du tillhandahåller en, återanvänd den ursprungliga analyssessionen istället för att generera ett nytt sessions-ID för varje händelse. Om du försöker skicka en händelse igen, skicka samma post på nytt, inklusive dess ID och tidsstämpel.

Information om sidvisningar, Web Vitals och åtgärdsegenskaper finns i payloadexempel.

Steg 2: Exportera från din backend

Lägg till en POST /_analytics handler i din befintliga backend. Skicka dess parsade och validerade förfrågningskropp till följande funktion. Håll rutten bakom appens åtkomstkontroller och tillämpa dina befintliga förfrågningsgränser och felhantering. Returnera framgång till webbläsaren först efter att funktionen lyckats.

Funktionen paketerar in dataposten i en OpenTelemetry Protocol (OTLP)-begäran och skickar den till appens collector:

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

Important

Detta HTTP-exempel använder TCP-mottagaren vid localhost:4314, som stödjer HTTP såväl som gRPC. För en unix:// eller en endpoint som enbart har stöd för gRPC använder du i stället en kompatibel OpenTelemetry-exportör. Samlaren körs i den distribuerade appen, inte på besökarens enhet. Se App-telemetrimiljövariabler.

Steg 3: Verifiera i Analytics

  1. Distribuera ändringarna med appens befintliga distributionsflöde och trigga sedan den instrumenterade interaktionen.
  2. På sidan med appens detaljer, öppna Analytics och välj ett SQL-lager.
  3. Om onboarding visas, välj Kolla efter händelser och öppna sedan Analytics när händelser anländer.
  4. Hitta report_exported i Top actions eller Live Events.

Acceptans av insamlaren föregår bordsupptagning. Om händelsen inte dyker upp, uppdatera Analytics och kontrollera tidsintervallet. Följ alla behörighetsinstruktioner som visas i användargränssnittet. För att kontrollera den underliggande telemetridatan, se Verifiera telemetridata.

Ytterligare resurser