events, qui inclut tous les événements d’utilisation bruts envoyés à Metronome. De manière similaire à l’éditeur Filtres de base, les requêtes SQL des métriques facturables doivent inclure un ensemble de filtres qui identifient les événements d’utilisation corrects à interroger, et une agrégation pour transformer ces événements en une valeur que Metronome utilisera comme quantité pour les postes en aval.
Metronome gère le filtrage des requêtes SQL pour les clients individuels au cours de leur période de facturation. Vous n’avez pas besoin d’inclure cette logique dans vos requêtes — concentrez-vous simplement sur le filtrage et l’agrégation !
Fonctionnalités prises en charge
Voici comment vous pouvez accéder aux éléments de votre événement d’utilisation dans la requête :- Interrogez la table
events - Vous pouvez accéder au champ event_type dans l’éditeur SQL en utilisant
event_type - Vous pouvez accéder au champ timestamp dans l’éditeur SQL en utilisant
timestamp - Vous pouvez accéder à tout champ dans le dictionnaire properties en utilisant
properties.field_name
value à utiliser comme colonne pour la quantité de la métrique. Si aucune colonne value n’existe, Metronome utilise la première colonne renvoyée dans la requête. Toute autre colonne renvoyée peut être utilisée comme clé de groupe dans la tarification et le packaging en aval.
INFOSi des colonnes supplémentaires sont renvoyées mais ne sont pas utilisées comme clés de groupe de présentation ou de tarification, Metronome additionne tous les résultats pour générer une quantité unique pour la métrique.
Fonctions et opérateurs pris en charge
L’éditeur SQL prend en charge ces fonctions et opérateurs.- Agrégations
COUNT: compte le nombre de lignesSUM: somme des nombresMAX: prend le maximum des nombresMIN: prend le minimum des nombresAVG: moyenne des nombresEARLIEST: retourne la valeur la plus précoce d’une colonne en fonction de sontimestampLATEST: retourne la dernière valeur d’une colonne en fonction de sontimestampCOUNT DISTINCT: compte les valeurs distinctes dans l’expression
- Math
+,-,*,/=,!=,>,<,≥,≤LEAST: retourne le plus petit de ses argumentsGREATEST: retourne le maximum de ses argumentsROUND: arrondit un nombre à un nombre spécifié de décimalesCEIL: retourne la plus petite valeur entière qui est supérieure ou égale à l’entréeFLOOR: retourne la plus grande valeur entière qui est inférieure ou égale à l’entrée
- Logique
ANDORNOTCASE WHENIS NULLIS NOT NULLINNOT IN=!=
- Dates
DATE_TRUNC: tronque le champtimestampà l’hourou auday.
- Casting
CAST
Exemple de flux de création
À titre d’exemple d’un scénario plus complexe, utilisez l’éditeur SQL pour créer une métrique facturable qui suit la moyenne quotidienne du stockage utilisé sur une période de facturation.- Accédez à la section Métriques facturables dans l’application Metronome.
- Cliquez sur
+ Ajouter une nouvelle métrique facturable. - Choisissez
Requête SQL. - Nommez votre métrique (par exemple,
Storage latest daily max). - Entrez votre requête SQL :
INFODans cet exemple,
user_id est renvoyé afin qu’il puisse être défini comme presentation_group_key lors de la création d’un produit à partir de cette métrique. Cela vous permet d’afficher des factures ventilées par user_id. region est renvoyé afin qu’il puisse être défini comme pricing_group_key. Cela vous permettrait d’ajouter des taux différents pour cette métrique facturable pour les valeurs us-east-1, us-west-1 ou ap-south-1.- Prévisualisez votre métrique par rapport à toutes les données d’utilisation existantes pour vous assurer que les résultats sont corrects. Lorsque c’est terminé, enregistrez votre métrique.
Granularité de la décomposition SQL
Lorsque vous créez un produit soutenu par une métrique facturable SQL, vous pouvez sélectionner une granularité de décomposition SQL. La valeur par défaut esthour, ce qui convient à la plupart des cas d’usage. Avec la granularité hour, les coûts sont engagés en continu tout au long de la période de facturation à mesure que l’utilisation est ingérée. Si vous voulez utiliser la dernière valeur d’une métrique, ou si vous avez autrement une métrique qui n’a pas de sens lorsqu’elle est décomposée par heure, vous pouvez utiliser service period.
Exemple
Parcourons un exemple simple pour comparer les deux granularités. Imaginez que vous avez une simple métrique SUM construite à l’aide d’une métrique facturable SQL. Le jour 1 de la période de facturation du client, vous envoyez une valeur de 5. Le jour 2, vous envoyez une valeur de 10. Le jour 3, vous envoyez une valeur de 15. La période de facturation du client s’étend du 01/01/2026 au 01/02/2026. Avec la granularité de décompositionhour par défaut, les coûts sont engagés à mesure que l’utilisation est ingérée :
- En supposant que vous planifiez que le taux est de $10 du 01/01/2026 au 15/01/2026, et le taux est de $20 à partir du 15/01/2026, les trois événements seront tarifés à $10.
- Si vous avez créé un crédit ou un engagement qui s’appliquait uniquement au jour 2 de la période de facturation, seule la valeur d’utilisation de 10 et la dépense correspondante de $100 seraient appliquées au crédit ou à l’engagement.
- Lorsque vous utilisez le point de terminaison
invoice-breakdowns, vous verriez une valeur de 5 avec un total de $50 engagé le jour 1, une valeur de 10 avec un total de $100 engagé le jour 2, et une valeur de 15 avec un total de $150 engagé le jour 3.
service period, la quantité totale de 30 utilisations sera engagée à la dernière fenêtre temporelle de la période de facturation :
- Le prix final pour la période de facturation sera utilisé pour la quantité totale. Par exemple, si vous planifiez que le taux est de $10 du 01/01/2026 au 15/01/2026, et le taux est de $20 à partir du 15/01/2026, la quantité totale de 30 sera tarifée à $20.
- Les crédits et engagements doivent couvrir le dernier instant de la période de facturation pour s’appliquer à la dépense.
- Lorsque vous utilisez le point de terminaison
invoice-breakdowns, les coûts seront engagés à la dernière fenêtre temporelle de la période de facturation.
Planifier un changement vers ou depuis une métrique facturable SQL sur le produit de contrat
Si vous voulez changer la métrique que vous utilisez pour facturer vos clients, vous pouvez planifier un changement de la métrique facturable associée à un produit d’utilisation. Les métriques facturables SQL sont échangeables sur les produits, et l’échange peut être planifié pour prendre effet à n’importe quel moment d’une période de facturation — pas seulement à une limite de période de facturation. Parcourons un exemple où nous passons de la métrique facturable A à la métrique facturable B, toutes deux des métriques facturables SQL, à compter du 15/03/2026. Supposons que le client utilise une facturation le 1er du mois.- La métrique facturable A prend la
avgsur le champvaluepour les événements qui correspondent àaverage_metric_v1. - La métrique facturable B prend la
avgsur le champvalue_newpour les événements qui correspondent àaverage_metric_v2.
- Le 01/03/2026, un événement avec une
valuede 4 est ingéré, avec un type d’événementaverage_metric_v1 - Le 02/03/2026, un événement avec une
valuede 6 est ingéré, avec un type d’événementaverage_metric_v1 - Le 15/03/2026, un événement avec une
value_newde 10 est ingéré, avec un type d’événementaverage_metric_v2 - Le 16/03/2026, un événement avec une
value_newde 12 est ingéré, avec un type d’événementaverage_metric_v2
- Le 01/03/2026, une quantité de 4 est engagée avec son coût correspondant.
- Le 02/03/2026, la moyenne de 4 et 6 est 5. Une quantité de 4 était déjà engagée le jour 1, donc une quantité supplémentaire de 1 est engagée avec son coût correspondant.
- La valeur de la métrique facturable B, en utilisant toutes les données d’événements pour la période jusqu’au jour actuel
- plus la valeur de la métrique facturable A, en utilisant toutes les données d’événements jusqu’au jour de l’échange
- moins la valeur de la métrique facturable B, en utilisant toutes les données d’événements jusqu’au jour de l’échange
- Le 15/03/2026, une quantité de 10 est engagée avec son coût correspondant.
- Le 16/03/2026, la moyenne de 10 et 12 est 11. Une quantité de 1 est engagée avec son coût correspondant.