OpenKeel : la solution Cloud souveraine, française à portée européenne du groupe inherent Découvrir inherent

Architecture

FinOps / GreenOps et CloudKitty

Ce qu'un projet a coûté, ce qu'il coûterait et ce qu'il émet : CloudKitty valorise l'usage après coup, openkeel-pricing chiffre coût et carbone tout de suite, et Skyline montre les deux.

Des métriques au tableau de bord

  1. 01

    Prometheus

    Séries d'openstack-exporter (instances, volumes, images) dans le Prometheus de la pile d'observabilité

  2. 02

    Processor CloudKitty

    Collecte chaque heure l'usage de chaque projet et le valorise avec des règles hashmap et des scripts CEL

  3. 03

    InfluxDB

    Garde l'historique valorisé par projet, période et service

  4. 04

    Skyline

    La page FinOps / GreenOps lit les résumés ; les formulaires et la popup des quotas lisent openkeel-pricing

Deux services complémentaires

rating

CloudKitty : combien cela a-t-il coûté ?

  • Valorise l'usage collecté, période par période
  • Garde l'historique ; résumés, dataframes, revalorisation
  • L'API d'OpenStack, inchangée pour ses clients
En savoir plus
pricing

openkeel-pricing : combien cela coûterait-il maintenant, et qu'est-ce que cela émet ?

  • Coût unitaire et empreinte carbone de chaque ressource, par projet
  • Devis des ressources en construction (VM d'après son gabarit, volumes, S3, DNS, VPN)
  • Un ajout d'OpenKeel, sans équivalent OpenStack, installé par défaut

CloudKitty dans OpenKeel

Le service de valorisation réécrit en Go depuis la reverse-spec de stable/2026.2 : les mêmes 66 opérations d'API (v1, hashmap, pyscripts, v2), codes de statut, corps d'erreur et politiques.

PartieOpenKeel
API (cloudkitty-api)Règles, modules, résumés, dataframes et devis instantanés ; devis calculés dans l'API avec le même code de valorisation
Processor (cloudkitty-processor)Liste les projets (fetcher Keystone : chaque projet activé), collecte leur usage dans Prometheus à chaque période (1 heure), le valorise et le stocke ; un seul processor actif détient un Lease Kubernetes
ValorisationRègles hashmap (services, champs, correspondances, seuils), et scripts écrits en expressions CEL au lieu de Python : ni instructions ni E/S, limites de coût et de temps
StockageInfluxDB 1.x ou 2.x (InfluxQL avec littéraux échappés) ; MariaDB Galera pour les règles et l'état des scopes
Séries collectéesLe fichier de métriques amont sur openstack-exporter : instances (openstack_nova_server_status), capacité des volumes (openstack_cinder_limits_volume_used_gb), taille des images (openstack_glance_image_bytes), projets étiquetés tenant_id
DéploiementComposant optionnel : okadm install --components …,cloudkitty --grafana ; okadm active openstack-exporter et oriente le collecteur vers le Prometheus de la pile ; lab : un processor, InfluxDB 2 Gio
Défauts amont corrigésSuppressions limitées au scope, politique de GET /v2/rating/modules, devis avec un desc à plat, aucun appel Keystone non vérifié, fenêtres de revalorisation et de remise à zéro

Tests, fonctions laissées de côté et inventaire de l'API sont sur la page du composant CloudKitty.

openkeel-pricing et les tarifs OpenKeelTenant

Les tarifs sont des ressources Kubernetes, OpenKeelTenant (CRD installée par okadm dans les deux modes) : celle nommée default s'applique à tout projet qui n'a pas la sienne. openkeel-pricing les surveille en mémoire, sans base de données ni bus.

RessourceUnitairesTarif
cpuvCPUcoût et carbone par mois
ramGiBcoût et carbone par mois
gpuGPUcoût et carbone par mois
diskGiBcoût et carbone par mois
s3GiBcoût et carbone par mois
dnsdomainecoût et carbone par mois
vpnVPNcoût et carbone par mois

API : GET /v1/rates (tarifs effectifs et l'OpenKeelTenant d'où vient chacun) et POST /v1/quotes (un gabarit, un nombre et des ressources : lignes et totaux de coût et de carbone). Coûts en € par mois, carbone en kg CO₂e par mois (× 12 pour l'année).

Données d'exemple avec okadm --demo

Avec CloudKitty, okadm install --demo pousse une trame valorisée par jour pour le projet démo, du premier jour du mois dernier à hier (sa VM, son volume, son load balancer, son conteneur et ses IP flottantes avec leurs vrais identifiants, une VM supprimée le mois dernier, l'image de base), puis crée l'état du scope du projet pour que le processor le valorise à partir d'aujourd'hui. La page FinOps / GreenOps montre les deux mois d'un coup.