La plupart des entreprises SaaS sont incapables d'expliquer pourquoi un client grand compte coûte 20 fois plus cher à servir qu'un autre.
Les données existent pourtant. Elles sont éparpillées entre un cluster Kubernetes, trois bases de données partagées, une file de messages, une API IA externe et une NAT gateway sans propriétaire identifié. Lorsque l'export de facturation arrive, le coût est déjà engagé. Et le contexte qui l'explique s'est envolé.
Ce n'est pas un problème de dashboard. C'est un problème de données. La plupart des outils tentent de le résoudre avec le mauvais jeu de données.
Données de facturation ou attribution runtime : quand faut-il basculer ?
| Situation | Export de facturation suffisant ? |
| Infrastructure simple à locataire unique | Oui |
| Petite équipe, un seul compte cloud | Oui |
| Microservices Kubernetes | Généralement non |
| Produit SaaS multi-tenant | Non |
| RDS, Kafka ou Elasticsearch partagés | Non |
| Allocation de l'inférence IA par client ou par fonctionnalité | Non |
| Analyse de marge par client | Non |
| Infrastructure auto-gérée (systèmes de données hébergés sur EC2) | Non |
| Attribution des coûts NAT gateway et transfert de données | Non |
Si votre environnement correspond à la moitié inférieure de ce tableau, les exports de facturation ne sont qu'un point de départ. Ce ne sont pas des outils d'optimisation des coûts. Pour les équipes qui exploitent des fonctionnalités IA, l'écart est particulièrement flagrant : la consommation de tokens ne représente qu'une partie de la surface de coût IA. Bases vectorielles, couches d'orchestration, egress et infrastructure auto-gérée autour de l'appel au modèle pèsent régulièrement 40 à 60 % du coût total d'une fonctionnalité. Les outils qui se limitent à la facture des tokens en manquent l'essentiel.
Pourquoi les outils traditionnels échouent sur le monitoring des coûts Kubernetes
La facturation cloud a été pensée pour un modèle statique : on provisionne une ressource, on lui applique un tag, on lit ce tag en fin de mois.
Kubernetes a fait voler en éclats toutes les hypothèses sur lesquelles ce modèle reposait. Les pods sont éphémères. Les services partagent leur infrastructure au-delà des frontières d'équipes et de tenants. Une seule requête client traverse plusieurs services avant qu'une réponse ne soit renvoyée. Résultat : aucun tag ne capture qui a consommé quoi, seulement qui possède la ressource. Or, possession et consommation sont deux choses différentes.
La plupart des outils de monitoring des coûts Kubernetes réagissent en mesurant au niveau du cluster : allocation CPU, requêtes mémoire, heures de pod. C'est un contexte utile, mais ce n'est pas de l'attribution de coût. RDS, Kafka, Snowflake et le transfert de données sont souvent des postes de coûts significatifs et sous-attribués aux côtés du cluster. Les outils qui s'arrêtent au niveau du nœud et du pod laissent la majeure partie de la facture sans attribution.
Quatre défaillances en découlent, de manière prévisible :
- Le tagging devient le projet. Les tags capturent la propriété. Ils ne peuvent pas attribuer la consommation des ressources partagées. Le projet s'étale sur des mois sans jamais aboutir complètement.
- Les coûts partagés sont alloués au doigt mouillé. Pourcentages statiques, répartitions à parts égales. Défendable dans un tableur. Pas exact.
- L'attribution par client fait défaut. Le montant total dépensé est visible. Le coût par tenant, non. Comptes rentables et non rentables se ressemblent.
- Les données arrivent trop tard. L'export de facturation se clôture en fin de mois. Le gaspillage, lui, a déjà eu lieu.
Comment fonctionne réellement l'attribution runtime
L'attribution runtime part d'une source de données radicalement différente : ce qui se passe réellement dans le système, à l'instant présent.
Attribute™ déploie un capteur eBPF sur l'infrastructure de calcul : nœuds EKS, tâches ECS, instances EC2, groupes d'auto-scaling. eBPF (extended Berkeley Packet Filter) est une technologie du noyau Linux qui permet d'observer l'activité système au niveau du kernel, de façon sûre et isolée en sandbox. Le capteur inspecte les paquets réseau en lecture seule, sans surcharge de performance ni modification du code applicatif.
Ce que le capteur observe :
- Chaque appel réseau entre services
- Quel microservice appelle quelle base de données, et à quelle fréquence
- La façon dont l'infrastructure partagée est réellement consommée
- Quels endpoints d'API IA sont appelés par quel workload, avec quel volume de tokens, et attribués à quel client, quelle fonctionnalité ou quel agent
- Les en-têtes HTTP porteurs d'identifiants clients
- Les destinations et volumes de transfert de données
À partir de ces observations, Attribute™ construit un graphe de dépendances de services en temps réel. Il sait quels services dépendent de quelles ressources, à quelle intensité et dans quelles proportions. Ce graphe est le modèle d'attribution.
Lorsqu'une instance RDS partagée engendre des coûts, le modèle n'applique pas de règle statique. Il observe la distribution réelle des requêtes de base de données entre les services sur la période et alloue le coût proportionnellement à la consommation réelle.
Les nouveaux services sont détectés automatiquement dès leur apparition. Les relations se mettent à jour au rythme des déploiements. Aucun catalogue de services statique. Aucune reconfiguration manuelle.
Concrètement, à quoi cela ressemble
Étude de cas client : Island
Le contexte : Island construit la catégorie du navigateur d'entreprise, valorisé à 5 milliards de dollars, et sert désormais des centaines de clients grands comptes. Leur environnement AWS repose sur EKS, RDS et DynamoDB partagés, avec un volume significatif de transfert de données inter-AZ. Le tagging n'était pas envisageable : impossible de tagger un client dans une architecture multi-tenant.
Avant : Aucune visibilité sur le coût réel par client ni par fonctionnalité. Impossible d'appuyer les décisions de pricing, de modélisation de croissance ou de GTM sur des données de coût réelles. Les outils cloud natifs et les plateformes tierces affichaient factures et graphiques. Ils étaient incapables de dire ce que chaque client coûtait vraiment.
Après : Attribute™ a fourni un coût précis par client et par fonctionnalité en quelques jours. Sans tagging, sans instrumentation, sans sollicitation des Engineers.
Changement opérationnel : Engineering, produit et GTM travaillent désormais à partir d'une source de coût partagée. Les décisions de pricing et de modélisation de la croissance s'appuient sur des données de consommation réelles, non sur des estimations.
" Impossible de tagger un client dans un environnement multi-tenant. Attribute™ nous montre enfin ce que chaque client coûte et ce qui alimente ces coûts. "
– Omri Cohen, Director of Engineering Platform, Island
Envie d'aller plus loin ? Cliquez ici pour découvrir comment une plateforme leader de Work Management a identifié 360 comptes non rentables, ou ici pour lire comment une entreprise de sécurité a défragmenté le reporting entre les départements Finance et Engineering.
La meilleure approche pour l'unit economics cloud et le cost-to-serve
L'unit economics exige un modèle de coût aligné sur l'unité réelle. Pour une entreprise SaaS, cette unité est généralement le client.
Or, cette question ne trouve pas de réponse dans les exports de facturation. La facturation montre les coûts de ressources. Elle ne dit pas quels clients ont consommé ces ressources, ni dans quelles proportions.
La couche d'attribution client d'Attribute™ mappe l'activité runtime observée sur des identifiants clients issus des en-têtes HTTP, des labels de workloads ou des conventions de nommage des bases de données ou des queues. Une fois cette association établie, chaque événement de coût du modèle est attribué au client qui l'a déclenché.
Une fois connecté aux données de revenus, le résultat est un P&L au niveau client : quels comptes sont rentables, lesquels ne le sont pas, et dans quelle proportion.
Ce que cette visibilité rend possible :
- Identifier les comptes à marge négative avant que les pertes ne s'accumulent
- Détecter les fonctionnalités IA aux coûts qui dérapent avant la clôture du cycle de facturation
- Fournir aux équipes plateforme des chiffres défendables pour le chargeback de l'infrastructure partagée
- Tarifer les contrats grands comptes sur la base de la consommation réelle, et non d'hypothèses
- Justifier les investissements d'architecture par des données de coût réelles avant/après
- Mettre fin au débat mensuel entre finance et engineering sur la méthodologie d'allocation
À quoi ressemble concrètement le déploiement
Time-to-value : Le capteur se déploie sur Kubernetes via un DaemonSet. La découverte initiale des workloads s'achève en quelques heures. Une attribution de coûts exploitable est disponible en quelques jours. Aucun projet de tagging requis.
Surcharge de performance : Le capteur eBPF est en lecture seule et sandboxé au niveau kernel. Il n'intercepte ni ne modifie le trafic. La surcharge de calcul est négligeable.
Intégrations : Attribute™ s'installe sur l'infrastructure de calcul (EKS, ECS, EC2) et surveille le trafic depuis la couche applicative vers les autres ressources cloud, y compris les fournisseurs SaaS tiers comme MongoDB Atlas, Snowflake, OpenAI et d'autres. Aucune instrumentation applicative requise.
Remplace-t-il Kubecost ou CloudHealth ? Pour les entreprises SaaS dont les questions de coûts dépassent le reporting au niveau cluster, oui. Attribute™ va plus loin sur l'attribution des ressources partagées, le cost-to-serve par client, la couverture de l'infrastructure auto-gérée et la visibilité complète sur la surface de coût IA, y compris l'attribution des tokens par client, fonctionnalité ou agent, aux côtés des dépenses d'infrastructure environnantes que ces outils ne voient pas.
Données historiques : L'historique de facturation cloud est ingéré lors de la configuration. Pour les équipes qui doivent produire des livrables de chargeback avant le déploiement du capteur, Attribute™ peut générer des rapports à partir des exports de facturation fournis par le client, sans capteur.
Environnements pris en charge : AWS, GCP, Azure. Kubernetes (EKS, GKE, AKS), ECS, EC2. Snowflake, MongoDB Atlas, OpenAI, Anthropic, Amazon Bedrock, Azure OpenAI, Vertex AI. Kafka auto-géré (avec granularité au niveau du topic), Elasticsearch, RabbitMQ.
Sécurité : PII, credentials, secrets, clés API et cookies sont supprimés avant toute sortie de données de l'environnement client. Un minimum d'événements est transmis via OpenTelemetry chiffré, authentifié par JWT et protégé par TLS. Les paquets bruts ne sont jamais transmis. Les clients peuvent, en option, router la télémétrie via leur propre endpoint OpenTelemetry pour un audit complet.
Attribution runtime ou outils basés sur la facturation
Les outils basés sur la facturation demandent ce qui a été facturé. L'attribution runtime demande ce qui s'est réellement passé dans le système, et qui en est à l'origine.
Pour les équipes acheteuses qui évaluent des plateformes, cinq questions permettent de distinguer les outils capables de répondre aux vraies questions de ceux qui en sont incapables :
- Fonctionne-t-il sans tags dès le premier jour ?
- Peut-il allouer les coûts des ressources partagées en fonction de la consommation observée, et non de règles statiques ?
- Peut-il attribuer les coûts par client dans un système multi-tenant ?
- Peut-il voir l'infrastructure auto-gérée et les dépenses IA externes ?
- Peut-il faire remonter les signaux de coût pendant le cycle de facturation, et non après sa clôture ?
Pour les équipes ayant une dépense IA significative, ajoutez une sixième question : peut-il attribuer les coûts de tokens à un client, une fonctionnalité ou un agent précis, et pas seulement à une clé API ? Les outils basés sur la facturation répondent partiellement à certaines de ces questions, pour certains environnements, au prix d'un effort de configuration considérable. L'attribution runtime y répond à toutes, dès le déploiement.