Kepler (Kubernetes Efficient Niveau Exporter) utilise EBPF pour sonder les statistiques du système liées à l'énergie et les exporte comme métriques Prometheus.
En tant que projet CNCF Sandbox, Kepler utilise le code de conduite CNCF
Kepler Exporter expose une variété de métriques sur la consommation d'énergie des composants de Kubernetes tels que les gousses et les nœuds.
Organigramme BT
ClassDef Kernel Fill: # E6F3FF, trait: # 4A90E2, Couleur: # 000
ClassDef Collector Fill: # F0FFF0, trait: # 2ECC71, Couleur: # 000
ClassDef Hardware Fill: # FFF0F5, trait: # E74C3C, Couleur: # 000
ClassDef Estimator Fill: # FFF5E6, trait: # F39C12, Couleur: # 000
ClassDef Mapping Fill: # F5F0FF, trait: # 9B59B6, Couleur: # 000
ClassDef Calculator Fill: # F0F5FF, trait: # 3498db, couleur: # 000
ClassDef Attribution Fill: # FFF0F0, trait: # E74C3C, Couleur: # 000
ClassDef Export Fill: # F5FFF0, trait: # 27AE60, Couleur: # 000
CLASSDEF KERNELLEVEL FILP: # E6F3FF, trait: # 999, Couleur: # 000
CLASSDEF USERPACE FILL: # F5F5F5, trait: # 999, couleur: # 000
ClassDef ResourceCollection Fill: # F0FFF0, trait: # 999, couleur: # 000
CLASSDEF HardwareMetrics Fill: # FFF0F5, trait: # 999, couleur: # 000
CLASSDEF ESTIMATORMEMTRICS FILL: # FFF5E6, trait: # 999, Couleur: # 000
ClassDef PowerModel Fill: # F0F0FF, trait: # 999, couleur: # 000
sub-graph kl [niveau de noyau]
direction bt
Tp [noyau tracepoint] ::: noyau -> ebpf [programme kepler eBPF] ::: noyau
EBPF -> | Statistiques de compteur de performance | Om [carte de sortie] ::: noyau
fin
Subgraph UP [USERSPACE PROGRAMME]
direction bt
Sub-Graph RC [Collection d'informations sur les ressources]
direction bt
P1 [Processus Info Collector] ::: Collecteur -> | PID, Noms | Info [Processus / conteneur / VM Info] ::: Collecteur
C1 [Container Info Collector] ::: Collector -> | Container / Pod ID, Espace de noms | Info
V1 [VM Info Collector] ::: Collecteur -> | ID VM | Info
fin
Sub-Graph HM [métriques matérielles]
direction bt
H1 [RAPL ou HWMON] ::: Matériel -> | CPU / DRAM / Package Power | PWR [LECTURATIONS DE POWER MALIAL] ::: Matériel
H2 [Nvidia / Intel GPU API] ::: Hardware -> | GPU Power | PWR
H3 [METTRET MODIFIQUE DE REDFISH OU ACPI] ::: HARMIÈRE -> | PLATEFORME PLATERIE | PWR
fin
subgraph em [métriques estimateurs]
direction bt
E1 [ML Fonctionnalités: temps de processe
E2 [ML Fonctionnalités: temps de processe
fin
OM -> | Lire les données de la carte | Carte [mappage d'activité] ::: mappage
Info -> Carte
Carte -> | Carte via PID / CGROUP ID | CALC [Calculatrice d'énergie] ::: Calculatrice
PWR -> Calc
fin
Sub-Graph PM [Modèle de puissance]
direction bt
Calc -> | Ratio d'activité de processus | Attr [Attribution de l'énergie inactive et dynamique] ::: Attribution
Attr -> | par processus / conteneur / VM | Exp [métriques énergétiques] ::: Attribution
fin
Exp -> Prom [Export de Prométhée] ::: Exportation
classe KL Kernellvel
Class Up Userspace
Classe RC Resourcecollection
classe HM HardwareMetrics
classe EM ESTIMATORMEMTRIQUES
Classe PM PowerModel
Les instructions pour installer Kepler peuvent être trouvées dans les documents Kepler.
Pour visualiser les mesures de consommation électrique mises à disposition par l'exportateur de Kepler, importez le tableau de bord Kepler pré-généré dans Grafana:
Vous souhaitez contribuer à Kepler? Suivez le guide contributif pour commencer!
Une liste complète de conférences et de démos sur Kepler peut être trouvée ici.
Veuillez vous joindre aux réunions communautaires bihebdomadaires. Le calendrier et l'ordre du jour des réunions peuvent être trouvés ici
À l'exception du code EBPF, tout est distribué en vertu des termes de la licence Apache (version 2.0).
Tout le code EBPF est distribué sous:
Le texte de licence exact varie selon le fichier. Veuillez consulter l'en-tête SPDX-License-Identificateur dans chaque fichier pour plus de détails.
Fichiers qui proviennent des auteurs de Kepler Use (GPL-2.0 uniquement ou BSD-2-CLAUSE). Fichiers générés à partir du noyau Linux IE vmlinux.h Utilisez GPL-2.0-uniquement.
À moins que vous ne soyez explicitement indiqué autrement, toute contribution intentionnellement soumise pour inclusion dans ce projet par vous, tel que défini dans la licence GPL-2, doit être autorisée à double licence comme ci-dessus, sans aucune condition ou conditions supplémentaires.