Skip to main content
Le blueprint Time Range envoie à Dodo Payments un événement d’utilisation indiquant pendant combien de temps une ressource a fonctionné pour un client, en millisecondes, secondes ou minutes. Un compteur Sum sur cette durée additionne le temps d’exécution de chaque client, afin que vous puissiez facturer le temps de calcul. Le blueprint est inclus dans le package npm @dodopayments/ingestion-blueprints sous le nom trackTimeRange().

Cas d’utilisation

Le blueprint Time Range convient aux scénarios suivants :

Serverless Functions

Facturez en fonction de la durée d’exécution et de l’utilisation de la mémoire des fonctions.

Container Runtime

Suivez la durée d’exécution des conteneurs pour une facturation basée sur l’utilisation.

Compute Instances

Surveillez le temps d’exécution des VM et facturez à la minute ou à l’heure.

Background Jobs

Suivez le temps de traitement des exportations de données, des rapports et des tâches par lots.
Utilisez-le pour facturer le temps de calcul, la durée d’exécution des fonctions, le temps d’exécution des conteneurs ou toute autre utilisation basée sur le temps.

Démarrage rapide

Pour suivre le temps d’exécution, installez le package, créez un compteur et envoyez la durée chaque fois qu’une ressource termine son exécution.
1

Install the SDK

Installez le package Dodo Payments Ingestion Blueprints :
2

Get Your API Keys

Créez une clé API Dodo Payments sous Developer → API Keys dans le tableau de bord Dodo Payments, puis stockez-la dans la variable d’environnement DODO_PAYMENTS_API_KEY. Utilisez une clé en mode test pendant le développement. Une clé en mode test fonctionne uniquement avec test_mode.
3

Create a Meter

Dans le tableau de bord Dodo Payments, accédez à Products → Meters et cliquez sur Create Meter. Définissez les champs suivants :
  • Meter Name : un nom descriptif, tel que Compute Time.
  • Event Name : time_range_usage, ou un nom de votre choix. Il doit correspondre exactement à eventName dans votre code (respect de la casse). Les exemples de l’étape suivante utilisent un nom d’événement distinct pour chaque type de ressource, comme function_execution ; chacun nécessite donc son propre compteur.
  • Aggregation Type : Sum, pour additionner la durée totale.
  • Over Property : la clé de durée que vous envoyez : durationSeconds, durationMinutes ou durationMs.
  • Measurement Unit : l’unité affichée sur les factures, comme seconds.
4

Track Time Usage

Mesurez la durée d’exécution, puis appelez trackTimeRange() avec la durée exprimée dans l’unité utilisée par votre compteur :

Configuration

Configuration de l’ingestion

Transmettez ces options à new Ingestion() :
string
requis
Votre clé API Dodo Payments issue du tableau de bord.
string
Mode d’environnement : test_mode ou live_mode. La valeur par défaut est test_mode. Les SDK Dodo Payments utilisent par défaut live_mode ; définissez donc explicitement live_mode en production.
string
requis
Nom de l’événement correspondant au Event Name de votre compteur (respect de la casse).

Options de suivi de la plage temporelle

Transmettez ces options à trackTimeRange(). Chaque durée que vous transmettez est envoyée sous forme de clé de métadonnées portant le même nom.
string
requis
L’identifiant client Dodo Payments à facturer pour le temps d’exécution, par exemple cus_123.
number
Durée en millisecondes. À utiliser pour une précision inférieure à la seconde.
number
Durée en secondes. Le format le plus courant pour l’exécution des fonctions et les tâches courtes.
number
Durée en minutes. Utile pour les ressources à longue durée d’exécution, comme les VM.
object
Métadonnées facultatives sur la ressource, telles que le CPU, la mémoire ou la région. Chaque valeur doit être une chaîne, un nombre ou une valeur booléenne.

Bonnes pratiques

Choisissez la bonne unité : utilisez les millisecondes pour les opérations courtes, les secondes pour les fonctions et les minutes pour les ressources à longue durée d’exécution.
Un compteur additionne uniquement la clé indiquée par sa propriété Over Property ; envoyez donc la durée dans la même unité à chaque fois.
Mesure précise du temps : utilisez Date.now() ou performance.now() pour suivre précisément le temps, en particulier pour les fonctions serverless.
Dernière modification le 26 septembre 2026