PowerAPI est une boîte à outils middleware pour construire des compteurs électriques définis par logiciel. Les compteurs d'alimentation définis par logiciel sont des bibliothèques de logiciels configurables qui peuvent estimer la consommation d'énergie des logiciels en temps réel. PowerAPI prend en charge l'acquisition de mesures brutes à partir d'une grande diversité de capteurs ( par exemple , les compteurs physiques, les interfaces de processeur, les compteurs matériels, les compteurs de système d'exploitation) et la livraison de consommations d'énergie via différents canaux (y compris le système de fichiers, le réseau, le Web, le graphique). En tant que boîte à outils middleware, PowerAPI offre la capacité d'assembler les compteurs de puissance «à la carte» pour répondre aux besoins des utilisateurs.
À propos
PowerAPI est un projet open source développé par le Spirals Research Group (University of Lille 1 et Inria) et entièrement géré avec SBT.
La documentation est disponible ici.
Liste de diffusion
Vous pouvez suivre les dernières nouvelles et poser des questions en vous abonnant à notre liste de diffusion.
Contributif
Si vous souhaitez contribuer du code, vous pouvez le faire via GitHub en fournissant le référentiel et en envoyant une demande de traction.
Lors de la soumission du code, veuillez tout faire pour suivre les conventions et le style existants afin de garder le code aussi lisible que possible.
Publications
- Wattskit: surveillance de l'énergie définie par logiciel des systèmes distribués : M. Colmant, P. Felber, R. Rouvoy, L. Seinturier. IEEE / ACM International Symposium on Cluster, Cloud and Grid Computing (CCGRID). Avril 2017, Espagne, France. pp.1-14.
- Estimation de la puissance au niveau du processus dans les systèmes basés sur VM : M. Colmant, M. Kurpicz, L. Huertas, R. Rouvoy, P. Felber, A. Sobe. Conférence européenne sur les systèmes informatiques (Eurosys). Avril 2015, Bordeaux, France. pp.1-14.
- Surveillance des points chauds d'énergie dans le logiciel : A. Noureddine, R. Rouvoy, L. Seinturier. Journal of Automated Software Engineering , Springer, 2015, pp.1-42.
- Test unitaire de la consommation d'énergie des bibliothèques de logiciels : A. Noureddine, R. Rouvoy, L. Seinturier. Symposium international sur l'informatique appliquée (SAC), mars 2014, Gyeongju, Corée du Sud. pp.1200-1205.
- Informatique: des logicIels Mis au Vert : L. Seinturier, R. Rouvoy. J'innove en nord pas de Calais , nfid, 2013.
- PowerAPI: Une bibliothèque de logiciels pour surveiller l'énergie consommée au niveau du processus : A. Bourdon, A. Noureddine, R. Rouvoy, L. Seinturier. ERCIC News, thème spécial: Smart Energy Systems , 92, pp.43-44. ERCIC, 2013.
- Mesurer La Consomation en Énergie des Logiciels Avec Précision : A. Bourdon, R. Rouvoy, L. Seinturier. 01 Business & Technologies , 2013.
- Un examen des approches de mesure de l'énergie : A. Noureddine, R. Rouvoy, L. Seinturier. ACM SIGOPS Operating Systems Review , ACM, 2013, 47 (3), pp.42-49.
- Surveillance d'exécution des points chauds d'énergie logicielle : A. Noureddine, A. Bourdon, R. Rouvoy, L. Seinturier. Conférence internationale sur l'ingénierie logicielle automatisée (ASE), septembre 2012, Essen, Allemagne. pp.160-169.
- Une étude préliminaire de l'impact de l'ingénierie logicielle sur Greenit : A. Noureddine, A. Bourdon, R. Rouvoy, L. Seinturier. Atelier international sur les logiciels verts et durables (Greens), juin 2012, Zurich, Suisse. pp.21-27.
Cas d'utilisation
PowerAPI est utilisé dans une variété de projets pour relever les principaux défis de Greenit:
- Genpack fournit une stratégie Swarm Docker pour minimiser l'empreinte énergétique des conteneurs Docker déployés dans un cluster
- BitWatts fournit une estimation de puissance au niveau du processus des applications exécutées dans des machines virtuelles
- Web Energy Archive classe les sites Web populaires en fonction du prix d'énergie qu'ils impose aux navigateurs
- GreenSpecteur optimise la consommation d'énergie des logiciels en identifiant les fuites d'énergie potentielles dans le code source.
Remerciements
Nous nous tenons tous sur les épaules des géants et nous nous entendons avec un peu d'aide de nos amis. PowerAPI est écrit dans Scala (version 2.12.1 sous la licence BSD de 3 clause) et construit au-dessus de:
- AKKA (version 2.4.14 sous licence Apache 2), pour le traitement asynchrone.
- TypeSafe Config (version 1.3.1 sous la licence Apache 2), pour la lecture des fichiers de configuration.
- Scala-Logging (version 3.5.0 sous la licence Apache 2), pour Scala Emballage SL4J.
- Logback (version 1.1.7 sous la licence LGPL 2.1), à des fins forestières.
- PowerSpy.Scala (version 1.2 sous licence AGPL), pour utiliser le compteur de puissance PowerSpy.
- BRIDJ (version 0.7.0 sous une licence BSD de 3 clause), pour les appels système ou C.
- JNA (version 4.2.2 sous licence LGPL 2.1), pour les appels système ou C.
- perfmon2 (version 4.7.0 sous licence MIT), pour accéder aux compteurs de performances matérielles.
- JFREECHART (version 1.0.19 sous licence LGPL), pour la création de graphiques interactifs et animés.
- Grizzled-Scala (version 4.0.0 sous la licence BSD de 3 clause), pour de nouvelles classes et objets de services publics.
- SIGAR (version 1.6.5 sous la licence Apache 2), pour fournir une interface portable pour la collecte d'informations système.
- Spray-json (version 1.3.2 sous la licence Apache 2), pour (DE) sérialiser JSON.
- Scala-influxDB-Client (version 0.5.2 sous licence MIT), pour utiliser une API Scala asynchrone pour affluxDB.
Licence
Ce logiciel est concédé sous licence GNU Affero General Public , cité ci-dessous.
Copyright (C) 2011-2017 Inria, Université de Lille 1.
PowerAPI est un logiciel libre: vous pouvez le redistribuer et / ou le modifier en vertu des termes de la licence GNU Affero General Public tel que publié par la Free Software Foundation, soit la version 3 de la licence, ou (à votre option) n'importe quelle version ultérieure.
PowerAPI est distribué dans l'espoir qu'il sera utile, mais sans aucune garantie; Sans même la garantie implicite de qualité marchande ou d'adéquation à un usage particulier. Voir la licence publique générale de GNU Affero pour plus de détails.
Vous devriez avoir reçu une copie de la licence publique générale GNU Affero avec PowerAPI. Sinon, veuillez consulter http://www.gnu.org/licenses/agpl-3.0.html.