> ## Documentation Index
> Fetch the complete documentation index at: https://docs.metronome.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Concevoir des événements d'utilisation

Le succès avec Metronome dépend des données que vous fournissez, il est donc important de bien concevoir vos événements d'utilisation. Suivez ces trois principes :

* Travaillez à rebours à partir de ce dont vous *avez besoin*
* Travaillez à partir de ce que vous *avez*
* Maximisez votre flexibilité

Ce guide utilise un scénario hypothétique où vous êtes développeur dans un Content Delivery Network (CDN) et vous avez été chargé d'intégrer votre système à Metronome pour prendre en charge la facturation basée sur l'utilisation.

### Travaillez à rebours à partir de ce dont vous avez besoin

Commencez par vos exigences existantes ou une facture idéale et travaillez à rebours à partir de là. Dans le cas d'un CDN, votre entreprise facture les clients en fonction de leur utilisation mensuelle de données. Cependant, les détails exacts du prix sont inconnus. Ce n'est pas un problème car la tarification peut être appliquée et ajustée plus tard tant que les métriques requises sont en place.

Une considération supplémentaire est que votre équipe de support client souhaite tirer parti de Metronome en tant que plateforme de données en temps réel pour notifier les clients en cas de pic inhabituel de trafic sur leurs sites.

Pour la facturation et les notifications, vous devez mesurer le transfert de données, donc l'événement d'utilisation minimal ressemble à :

```json theme={null}
{  
  "event_type": "transfer",  
  "properties": {  
    "bytes": "1234",  
  },  
  "transaction_id": "...",  
  "customer_id": "...",  
  "timestamp": "..."  
}
```

Cela prend en charge une métrique facturable comme « somme des `bytes` pour tous les événements de type `transfer` (pour un client donné, pour une période de facturation donnée) ».

### Travaillez à partir de ce que vous avez

Ensuite, considérez quelles données vous avez à disposition et comment ces données pourraient être utiles à l'avenir.

* **Quand envoyer des événements** Votre système pourrait suivre le transfert total de données en interne et envoyer un résumé incrémental par client à Metronome. Ou vous pourriez envoyer à Metronome un événement chaque fois qu'une page web est servie. Les deux options offrent la même capacité de facturation à la fin de chaque mois, le choix de la voie dépend de vos besoins.
* **Quelles données inclure** Il y a beaucoup plus d'informations à inclure potentiellement dans les événements d'utilisation. Par exemple, vous pourriez inclure quel centre de données a servi la page, quel domaine était hébergé, le type de fichier, ou même quelle URL a été consultée. Rien de tout cela n'est immédiatement nécessaire pour la facturation, mais cela pourrait être utile pour vos propres registres.

Le timing et le contenu des événements d'utilisation sont souvent fortement influencés par ce qui est disponible dans votre système existant. Dans votre entreprise hypothétique de CDN, imaginez que vous effectuez une agrégation globale de journaux avec Apache Flume. Dans ce cas, il existe un magasin de données central avec des journaux d'accès détaillés disponibles, ce qui facilite l'envoi de ces messages de journal à Metronome sous forme d'événements d'utilisation individuels à mesure qu'ils arrivent.

Imaginez maintenant que vous n'avez pas une telle agrégation globale. Au lieu de cela, chaque centre de données conserve son propre journal indépendant et envoie des résumés horaires au magasin de données central, ventilés par domaine. Chaque centre de données doit envoyer des événements d'utilisation directement à Metronome, mais malheureusement, le code là-bas n'a pas accès à la base de données des clients, donc le centre de données ne peut pas déterminer quel `customer_id` remplir pour chaque événement. Dans ce cas, les résumés horaires sont probablement la meilleure option. Depuis l'emplacement central, il est facile de rechercher le propriétaire de chaque domaine et de fournir le `customer_id` approprié.

Avant de décider d'envoyer les résumés horaires, vous vérifiez auprès de l'équipe de support client concernant ces notifications de pic de trafic qu'ils voulaient. Ils vous assurent que la cadence horaire est suffisamment rapide pour les notifications qu'ils veulent envoyer.

### Maximisez votre flexibilité

Les besoins des entreprises évoluent au fil du temps. Plutôt que d'essayer d'anticiper toutes les exigences futures, concentrez-vous sur la création d'un système flexible qui peut facilement s'adapter aux changements.

Dans Metronome, la flexibilité est maximisée lorsque vous **envoyez autant de données que possible**. Le pipeline de flux de Metronome peut gérer un débit d'événements élevé, et les données non pertinentes sont écartées lors du traitement. Cela signifie qu'il n'y a aucun inconvénient à envoyer des informations qui ne seront pas utilisées immédiatement.

Il y a cependant un grand avantage à envoyer des informations supplémentaires. Supposons que votre entreprise hypothétique de CDN commence à recevoir des retours de clients qui ne comprennent pas leurs factures. De nombreux clients sont responsables de plus d'un domaine et aimeraient pouvoir voir combien chaque domaine contribue à leur utilisation totale. En tant que développeur assigné, vos dirigeants vous demandent de résoudre ce problème.

Si votre événement d'utilisation n'incluait pas le domaine, vous devriez retourner dans votre code et l'ajouter. Mais vous avez choisi d'envoyer autant de données que possible, donc c'est déjà là :

```json theme={null}
{  
  "event_type": "transfer",  
  "properties": {  
    "domain": "www.example.com",  
    "data_center": "US-WEST-3",  
    "bytes": "12345789",  
  },  
  "transaction_id": "...",  
  "customer_id": "...",  
  "timestamp": "..."  
}
```

Tout ce que vous avez à faire est d'interroger l'API Metronome pour les données d'utilisation regroupées par `domain`. Et vos clients sont satisfaits de la nouvelle ventilation sur leurs factures.

Au fil du temps et à mesure que votre base de clients croît, l'équipe financière découvre un problème inquiétant. Votre entreprise facturait les clients en fonction de leur transfert total de données, mais vos coûts de bande passante sont différents dans différentes parties du monde. Dans certains cas, vous perdez en fait de l'argent en sous-facturant le transfert de données dans certaines régions.

Comme précédemment, si vos événements d'utilisation n'incluaient pas d'informations sur l'endroit où le transfert de données s'est produit, vous devriez retourner dans votre code et l'ajouter. Mais parce que vous avez déjà décidé d'envoyer autant de données que possible, il y a un champ `data_center` qui fonctionnera. Les métriques facturables dans Metronome peuvent filtrer les événements d'utilisation de diverses manières, vous pouvez donc utiliser un mappage des noms de centres de données vers les régions pour définir une nouvelle métrique facturable pour chaque région. À l'avenir, vous pouvez facturer en fonction de ces nouvelles métriques, où vous pouvez définir des prix individuels pour chaque région.

<Warning>
  **LES MÉTRIQUES FACTURABLES NE SONT PAS RÉTROACTIVES**

  Metronome fonctionne sur des flux ; les modifications que vous apportez n'affectent que la collecte et l'agrégation futures des données. Les nouvelles métriques facturables ne peuvent pas être appliquées aux données historiques.
</Warning>
