Comece com App Analytics

Importante

Esta funcionalidade está em Pré-visualização Privada. Para experimentar, contacte o seu contacto do Azure Databricks.

Adicione análises a uma aplicação existente em três etapas: grave um evento, encaminhe-o pelo seu backend e verifique-o no Analytics. Não é necessária nenhuma biblioteca de análise específica.

Pré-requisitos

Passo 1: Registar um evento

Chama este código a partir de um handler de interação existente. Este exemplo regista report_exported após o sucesso de uma exportação de relatório:

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 é uma rota que adiciona à sua aplicação, não é um endpoint incorporado do Azure Databricks. O Passo 2 mostra a lógica de exportação do seu gestor de backend.

session_id é opcional. Se fornecer uma, reutilize a sessão de análise de origem em vez de gerar um novo ID de sessão para cada evento. Se repetir um evento, reenvie o mesmo registo, incluindo o respetivo ID e a marcação temporal.

Para visualizações de página, Web Vitals e propriedades de ação, veja exemplos de Payloads.

Passo 2: Exportar a partir do seu backend

Adiciona um POST /_analytics handler ao teu backend existente. Passe o corpo do pedido analisado e validado para a seguinte função. Mantenha a rota protegida pelos controlos de acesso da sua aplicação e aplique os limites de pedidos e o tratamento de erros existentes. Comunique o sucesso ao navegador só depois de a função ser bem-sucedida.

A função envolve o registo num pedido do OpenTelemetry Protocol (OTLP) e envia-o para o coletor da aplicação:

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 exemplo HTTP utiliza o recetor TCP em localhost:4314, que suporta HTTP bem como gRPC. Para um unix:// endpoint ou apenas gRPC, use um exportador OpenTelemetry compatível. O coletor corre dentro da aplicação implementada, não no dispositivo do visitante. Ver variáveis de ambiente de telemetria da aplicação.

Passo 3: Verificar em Análise

  1. Implemente as alterações usando o fluxo de trabalho existente da sua aplicação e depois acione a interação instrumentada.
  2. Na página de detalhes da aplicação, abra Analytics e selecione um SQL warehouse.
  3. Se for apresentado o processo de introdução, selecione Verificar eventos e depois Abrir o Analytics quando os eventos chegarem.
  4. Encontre report_exported em Principais Ações ou Eventos ao Vivo.

A aceitação pelo coletor precede a ingestão da tabela. Se o evento não aparecer, atualize o Analytics e verifique o intervalo temporal. Siga todas as instruções relativas às permissões apresentadas pela interface. Para verificar os dados de telemetria subjacentes, consulte Verificar dados de telemetria.

Recursos adicionais