Get start with App Analytics
Aperçu
Cette fonctionnalité est en version d’aperçu privé. Pour l’essayer, veuillez contacter votre conseiller Databricks.
Ajoutez l'analytique à une application existante en trois étapes : enregistrez un événement, transmettez-le via votre backend et vérifiez-le dans Analytics . Aucune bibliothèque d'analytique spécifique n'est requise.
Prérequis
- Une application inscrite à l’aperçu App Analytics, avec la télémétrie d’application activée.
- Les autorisations répertoriées dans les exigences.
Étape 1 : enregistrez un événement
Appelez ce code à partir d’un gestionnaire d’interactions existant. Cet exemple enregistre report_exported après la réussite d’un export de rapport :
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 est une route que vous ajoutez à votre application, et non un endpoint Databricks intégré. L’étape 2 présente la logique d’exportation pour son gestionnaire de back-end.
session_id est optionnel. Si vous en fournissez une, réutilisez la session analytique d'origine plutôt que de générer un nouvel identifiant de session pour chaque événement. Si vous réessayez un événement, renvoyez le même enregistrement, y compris son identifiant et son Timestamp.
Pour les pages vues, les Web Vitals et les propriétés d'action, consultez les exemples de charges utiles.
Étape 2 : exportez depuis votre back-end
Ajoutez un gestionnaire POST /_analytics à votre backend existant. Transmettez son corps de requête analysé et validé à la fonction suivante. Maintenez la route derrière les contrôles d’accès de votre application et appliquez vos limites de requêtes et votre gestion des erreurs existantes. Renvoyez le succès au navigateur uniquement après que la fonction a réussi.
La fonction encapsule l’enregistrement dans une requête OpenTelemetry Protocol (OTLP) et l’envoie au collecteur de l’application :
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.');
}
}
Cet exemple HTTP utilise le récepteur TCP à l'adresse localhost:4314, qui prend en charge HTTP ainsi que gRPC. Pour un unix:// ou un endpoint compatible uniquement avec gRPC, utilisez plutôt un exportateur OpenTelemetry compatible. Le collecteur s'exécute à l'intérieur de l'application déployée, et non sur l'appareil du visiteur. Voir Variables d'environnement de la télémétrie de l'application.
Étape 3 : vérifier dans analytique
- Déployez les modifications en utilisant le workflow de déploiement existant de votre application, puis Trigger l’interaction instrumentée.
- Sur la page des détails de l’application, ouvrez Analytique et sélectionnez un SQL Warehouse.
- Si l’intégration s’affiche, sélectionnez Check for events , puis Ouvrir l'analytique lorsque les événements arrivent.
- Trouvez
report_exporteddans Top actions ou Live Events .
L’acceptation du collecteur précède l’ingestion de la table. Si l’événement n’apparaît pas, effectuez un refresh d’analytique et vérifiez la plage de temps. Suivez les consignes de permission indiquées par l’interface utilisateur. Pour vérifier les données de télémétrie sous-jacentes, consultez Vérifier les données de télémétrie.