🎁 Limited offerFirst month free, 50% off the first paymentView offer →

Démarrage rapide de SensorFlow

Déployez la démonstration sans inscription ni licence, puis activez la licence pour recevoir les événements réels des SDK Sensors Data.

The local demo needs no registration or license; install the license only for production SDK ingestion.

Flux de données complet

SensorFlow conserve la collecte, l’ingestion, le stockage et l’analyse sur vos propres serveurs.

  • Les SDK Sensors Data officiels collectent les événements Android, iOS, Web, mini-programmes et serveurs.
  • SensorFlow valide et traite les événements entrants.
  • ClickHouse stocke les détails des événements et Apache Superset fournit SQL, graphiques et tableaux de bord.
Official Sensors Data SDKs -> SensorFlow -> ClickHouse -> Apache Superset

Prérequis système

La démonstration locale nécessite Docker Engine ou Docker Desktop avec Docker Compose v2 ; Go n’est pas requis sur l’hôte.

  • Le premier lancement télécharge les images Go, ClickHouse, Redis et Superset.
  • Dimensionnez la production selon le volume réel, les requêtes et la conservation ; aucun débit ou minimum matériel universel n’est garanti.

1. Obtenir le service open source

Clonez le dépôt SensorFlow et entrez dans son répertoire racine.

git clone https://github.com/data-analyze-bi/sensorFlow.git
cd sensorFlow

2. Démarrer l’infrastructure

L’installateur démarre Redis, ClickHouse et Apache Superset ; l’ingestion réelle démarre seulement après activation.

  • L’ingestion utilise le port 8081, ClickHouse 8123/9000 et Superset 8088.
  • Modifiez le mot de passe Superset et définissez une clé SUPERSET_SECRET_KEY unique en production.
./install.sh

# Open the server-IP URL printed after installation.
# After verifying the demo, obtain a license and run:
./activate.sh

3. Vérifier la démonstration

Ouvrez l’adresse Superset affichée par l’installateur et consultez les événements synthétiques demo_*.

  • Ces données ne sont pas des résultats clients.
  • N’envoyez pas encore d’événements de production.

4. Vérifier les données puis activer l’ingestion

Interrogez les événements de démonstration. Pour les SDK réels, téléchargez la licence puis exécutez activate.sh.

  • La commande ci-dessous utilise ClickHouse géré par Compose ; adaptez la connexion si vous réutilisez une base existante.
  • Après activation, envoyez un événement integration_test identifiable et vérifiez son enregistrement.
docker compose -f deploy/docker/docker-compose.yml exec -T clickhouse sh -c 'exec clickhouse-client --user "$CLICKHOUSE_USER" --password "$CLICKHOUSE_PASSWORD" --query "SELECT event, count() FROM sensors.event GROUP BY event ORDER BY event"'

# Download the license, then start real SDK ingestion last
./activate.sh

5. Connecter les SDK Sensors Data officiels

Utilisez le SDK officiel de chaque plateforme et pointez son URL d’envoi vers SensorFlow.

  • ⚠️ Compatibilité tierce : la compatibilité du protocole ne constitue pas une certification Sensors Data ; testez les versions de SDK et les plugins avant la production.
  • Utilisez Android, iOS, Web, mini-programme ou React Native côté client, et Java, Go, Python, Node.js ou PHP côté serveur.
  • Validez les événements, identifiants, propriétés, l’écriture ClickHouse et les indicateurs Superset avant le basculement.
https://your-domain.example/sensors/send/?token=YOUR_TOKEN

Téléchargements officiels des SDK

Ces liens mènent aux dépôts de l’organisation officielle sensorsdata sur GitHub. SensorFlow ne redistribue pas ces SDK. Vérifiez la licence et les conditions de la version choisie.

SDK Web / JavaScript

Collectez pages vues, clics, événements personnalisés et propriétés utilisateur avec le SDK officiel.

  • Installez avec npm, yarn ou une distribution officielle et configurez server_url pour SensorFlow.
  • Validez les changements de page SPA, Beacon, CORS et les domaines ; désactivez les journaux de débogage avant la production.
npm install sa-sdk-javascript

import sensors from 'sa-sdk-javascript';
sensors.init({
  server_url: 'https://your-domain.example/sensors/send/?token=YOUR_TOKEN',
  is_track_single_page: true, use_client_time: true, send_type: 'beacon'
});
sensors.quick('autoTrack');
sensors.login('USER_ID');
sensors.track('ButtonClick', { button_name: 'Submit' });

SDK iOS

Suivez les instructions officielles CocoaPods ou Swift Package Manager et utilisez l’URL de réception SensorFlow.

  • SensorFlow est indépendant de Sensors Data Cloud ; ce récepteur ne nécessite pas le Scheme d’un projet cloud.
  • Testez collecte automatique, identifiants, propriétés et cycle de vie ; désactivez les journaux avant publication.
let options = SAConfigOptions(serverURL: "https://your-domain.example/sensors/send/?token=YOUR_TOKEN", launchOptions: launchOptions)
options.enableAutoTrack = .default
SensorsAnalyticsSDK.start(configOptions: options)
SensorsAnalyticsSDK.sharedInstance()?.login("USER_ID")
SensorsAnalyticsSDK.sharedInstance()?.track("ButtonClick", withProperties: ["button_name": "Submit"])

SDK Android

Ajoutez la dépendance Gradle officielle et initialisez le SDK dans Application avec l’URL SensorFlow.

  • Le Scheme d’un projet Sensors Data Cloud n’est pas nécessaire pour ce récepteur.
  • Configurez consentement et périmètre de collecte ; vérifiez obfuscation, permissions réseau et HTTPS, puis désactivez les journaux.
SAConfigOptions options = new SAConfigOptions("https://your-domain.example/sensors/send/?token=YOUR_TOKEN");
options.setAutoTrackEventType(SensorsDataAPI.AutoTrackEventType.APP_START | SensorsDataAPI.AutoTrackEventType.APP_END | SensorsDataAPI.AutoTrackEventType.APP_CLICK);
SensorsDataAPI.startWithConfigOptions(this, options);
SensorsDataAPI.sharedInstance().login("USER_ID");
SensorsDataAPI.sharedInstance().track("ButtonClick", properties);

SDK des mini-programmes WeChat

Obtenez le SDK officiel, initialisez-le dans app.js et autorisez le domaine HTTPS du récepteur.

  • Ajoutez le domaine d’envoi à la liste des domaines autorisés pour les requêtes.
  • Choisissez la collecte selon vos obligations de confidentialité et testez sur un appareil réel avec un domaine représentatif de la production.
sensors.init({
  server_url: 'https://your-domain.example/sensors/send/?token=YOUR_TOKEN',
  autotrack: { appLaunch: true, appShow: true, appHide: true, pageShow: true, pageShare: true }
});
sensors.login('USER_ID');
sensors.track('ButtonClick', { button_name: 'Submit' });

SDK React Native

Installez le paquet officiel et terminez l’initialisation native pour iOS et Android.

  • Conservez des versions compatibles du paquet JavaScript et des deux SDK natifs.
  • Configurez serverUrl, testez écrans et événements, puis exécutez les tests de régression avant toute mise à jour.
RNSensorsAnalyticsModule.init({
  serverUrl: 'https://your-domain.example/sensors/send/?token=YOUR_TOKEN',
  autoTrackAppViewScreen: true
});
RNSensorsAnalyticsModule.login('USER_ID');
RNSensorsAnalyticsModule.track('ButtonClick', { button_name: 'Submit' });

SDK côté serveur

Utilisez le SDK officiel Java, Go, Python, Node.js ou PHP et envoyez l’événement après la réussite de l’opération métier.

  • Réutilisez une instance du SDK au niveau de l’application et les mêmes identifiants côté client et serveur.
  • Videz la file ou fermez le SDK avant l’arrêt ; gardez des types stables pour les propriétés.
from sensorsanalytics import SensorsAnalytics
sa = SensorsAnalytics(server_url='https://your-domain.example/sensors/send/?token=YOUR_TOKEN')
sa.track(distinct_id='USER_ID', event_name='ProductView', properties={'product_name': 'Example', 'price': 5999})
sa.flush()
sa.close()

Vérifier la collecte SDK

Envoyez un événement integration_test et vérifiez chaque étape jusqu’à ClickHouse et Superset.

  • Confirmez la requête /sensors/send/ et l’absence d’erreurs de licence, de format ou de propriétés dans le récepteur.
  • Recherchez l’événement dans ClickHouse puis SQL Lab ; vérifiez identité, date et types. Une réponse HTTP positive ne suffit pas.
SELECT event, distinct_id, time, properties
FROM sensors.event
WHERE event = 'integration_test'
ORDER BY time DESC
LIMIT 10;

6. Vérifier ClickHouse

Après l’envoi d’un événement de test, confirmez son stockage dans ClickHouse.

SELECT event, count() AS event_count
FROM sensors.event
GROUP BY event
ORDER BY event_count DESC
LIMIT 20;

7. Analyser dans Superset

Ouvrez Superset et utilisez sa connexion ClickHouse pour SQL Lab, jeux de données, graphiques et tableaux de bord.

  • Construisez les indicateurs de DAU, inscriptions, connexions et tendances.
  • Combinez entonnoirs, rétention, parcours et cohortes.
  • Gérez les accès par équipe, projet ou jeu de données.

Mises à jour et exploitation

Arrêtez l’ingestion avant de remplacer une licence, restaurez les droits d’exécution et redémarrez le service.

  • Sauvegardez MySQL, ClickHouse et les métadonnées Superset.
  • Surveillez les échecs d’ingestion, le disque, la latence d’écriture et des requêtes.
  • Renouvelez avant l’expiration ; les périodes achetées se cumulent.

Validate locally before evaluating production ingestion

First verify demo event → ClickHouse → Superset; production Sensors Data SDK payloads require a separate license.