Fonctionnement

Captain Metrics est entièrement construit sur une API, cependant pour simplifier les choses, seul l'import des datas est documenté ici. N'hésitez pas à nous contacter si vous avez d'autres besoins.

Traitement des données

Captain Metrics a été construit pour supporter l'ingestion de données non-ordonnées temporellement (out-of-order time-series), de façon à pouvoir importer des données anciennes et obtenir une vision la plus complète possible.

Tous les types d'objets (user, product, order...) sont ingérés en mode update-insert et idempotents : l'import de deux users identiques aura pour résultat l'ajout d'un seul user dans la base de donnée.

Lorsqu'un objet importé est déjà présent dans la base de donnée, et qu'il contient des données nouvelles, les champs manquants sont alors fusionnés de façon à enrichir l'objet.

De ce fait, tous les dashboards et analytics sont calculés en temps réel lors de l'affichage pour refléter l'état actuel de vos données.

Endpoint

Toutes les données entrantes (imports par API, agent web JS, webhooks...) transitent par un service asynchrone qui assure la validation, la déduplication et le log des requêtes, avant qu'elles ne soient effectivement insérées dans votre projet Captain Metrics.

URL d'import par API :

POST https://photon.captainmetrics.com/data.import

Format

Les données sont transmises dans le Body de la requête au format JSON. Vous pouvez transmettre un maximum de 100 items par requête.

Propriété

Type

Description

id

string

ID unique de votre import, il sera dé-dupliqué s'il a déjà transité par l'API. Nous vous conseillons de le générer avec hash SHA1 du contenu des items.

projectId

string

ID du projet concerné par l'import.

items

[]item

Liste de 100 items maximum à traiter par l'API. Détail des types d'items ici.

sync

boolean

False par défaut. Permet de tester le bon fonctionnement de votre intégration de façon synchrone sitrue.

Laisser à false en production pour bénéficier de la résilience de l'architecture asynchrone.

Exemple :

{
  "id": "import_request_unique_id",
  "projectId": "acme_demo",
  "items": [
    {"id": "xxx", "kind": "user", "user": {...}},
    {"id": "xxx", "kind": "order", "order": {...}},
    ...
  ]
}

Authentification

L'authentification des requêtes d'import API requière un Service Account Token via le Header :

Authorization: Bearer SERVICE_ACCOUNT_TOKEN

Vous pouvez créer un Service Account dans le menu "Admins" de votre organisation comme ceci :

Mis à jour

Ce contenu vous a-t-il été utile ?