Open Sustainable Technology

A curated list of open technology projects to sustain a stable climate, energy supply, biodiversity and natural resources.

Browse accepted projects | Review proposed projects | Propose new project | Open Issues

Green Metrics Tool

An open source suite to measure, display and compare software energy and CO2 consumption for containerized software. External power meters as well as RAPL and also ML-estimation models are supported.
https://github.com/green-coding-solutions/green-metrics-tool

carbon-footprint climate-change co2-emissions green-computing green-software metrics power-consumption sustainability sustainable-software

Last synced: about 8 hours ago
JSON representation

Repository metadata

Measure energy and carbon consumption of software

README

        

[![Tests Status - Main](https://github.com/green-coding-berlin/green-metrics-tool/actions/workflows/tests-vm-main.yml/badge.svg)](https://github.com/green-coding-berlin/green-metrics-tool/actions/workflows/tests-vm-main.yml)

[![Energy Used](https://api.green-coding.io/v1/ci/badge/get/?repo=green-coding-solutions/green-metrics-tool&branch=main&workflow=45267393)](https://metrics.green-coding.io/ci.html?repo=green-coding-solutions/green-metrics-tool&branch=main&workflow=45267393) (This is the energy cost of running our CI-Pipelines on Github. [Find out more about Eco-CI](https://www.green-coding.io/projects/eco-ci/))

# Introduction

The Green Metrics Tool is a developer tool indented for measuring the energy and CO2 consumption of software through a software life cycle analysis (SLCA).

Key features are:
- Reproducible measurements through configuration/setup-as-code
- [POSIX style metric providers](https://docs.green-coding.io/docs/measuring/metric-providers/metric-providers-overview/) for many sensors (RAPL, IPMI, PSU, Docker, Temperature, CPU ...)
- [Low overhead](https://docs.green-coding.io/docs/measuring/metric-providers/overhead-of-measurement-providers/)
- Statististical frontend with charts - [DEMO](https://metrics.green-coding.io/stats.html?id=7169e39e-6938-4636-907b-68aa421994b2)
- API - [DEMO](https://api.green-coding.io)
- [Cluster setup](https://docs.green-coding.io/docs/installation/installation-cluster/)
- [Free Hosted service for more precise measurements](https://docs.green-coding.io/docs/measuring/measurement-cluster/)
- Timeline-View: Monitor software projects over time - [DEMO for Wagtail](https://metrics.green-coding.io/timeline.html?uri=https://github.com/green-coding-berlin/bakerydemo-gold-benchmark&filename=usage_scenario_warm.yml&branch=&machine_id=7) / [DEMO Overview](https://metrics.green-coding.io/energy-timeline.html)
- [Energy-ID Score-Cards](https://www.green-coding.io/projects/energy-id/) for software (Also see below)

It is designed to re-use existing infrastructure and testing files as much as possible to be easily integrateable into every software repository and create transparency around software energy consumption.

It can orchestrate Docker containers according to a given specificaion in a `usage_scenario.yml` file.

These containers will be setup on the host system and the testing specification in the `usage_scenario.yml` will be
run by sending the commands to the containers accordingly.

This repository contains the command line tools to schedule and run the measurement report
as well as a web interface to view the measured metrics in some nice charts.

# Frontend
To see the frontend in action and get an idea of what kind of metrics the tool can collect and display go to out [Green Metrics Frontend](https://metrics.green-coding.io)

# Documentation

To see the the documentation and how to install and use the tool please go to [Green Metrics Tool Documentation](https://docs.green-coding.io)

# Screenshots of Single Run View

![](https://www.green-coding.io/img/projects/gmt-screenshot-1.webp)
![](https://www.green-coding.io/img/projects/gmt-screenshot-2.webp)
![](https://www.green-coding.io/img/projects/gmt-screenshot-3.webp)
![](https://www.green-coding.io/img/projects/gmt-screenshot-4.webp)

# Screenshots of Comparison View
![](https://www.green-coding.io/img/projects/gmt-screenshot-5.webp)
![](https://www.green-coding.io/img/projects/gmt-screenshot-6.webp)

# Energy-ID Scorecards
Screenshot 2023-10-24 at 10 43 28 AM

Details: [Energy-ID project page](https://www.green-coding.io/projects/energy-id/
)

Citation (CITATION.cff)

cff-version: 1.2.0
title: Green Metrics Tool
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Arne
    family-names: Tarara
    email: [email protected]
    affiliation: Green Coding Solutions GmbH
  - given-names: Dan
    family-names: Mateas
    email: [email protected]
    affiliation: Green Coding Solutions GmbH
  - given-names: Geerd-Dietger
    family-names: Hoffmann
    email: [email protected]
    affiliation: Green Coding Solutions GmbH
repository-code: 'https://github.com/green-coding-berlin/green-metrics-tool'
url: 'https://www.green-coding.io/'
repository: 'https://github.com/green-coding-berlin/'
abstract: >-
  The Green Metrics Tool is a developer tool indented for
  measuring the energy and CO2 consumption of software
  through a software life cycle analysis (SLCA).
keywords:
  - Green Coding
  - 'Software Life Cycle Assessment '
license: AGPL-3.0-or-later

Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 1 day ago

Total Commits: 1,344
Total Committers: 14
Avg Commits per committer: 96.0
Development Distribution Score (DDS): 0.31

Commits in past year: 597
Committers in past year: 10
Avg Commits per committer in past year: 59.7
Development Distribution Score (DDS) in past year: 0.439

Name Email Commits
Arne Tarara a****e@d****e 927
dependabot[bot] 4****] 160
dan-mm 3****m 50
dan-mm d****n@g****n 49
Danilo Ješić 3****c 40
Didi Hoffmann 3****a 35
Didi Hoffmann d****i@r****e 29
Alexandre a****o@g****m 26
Dan M d****n@g****g 10
David d****p 10
Sai Teja 4****7 3
Danilo Ješić m****a@g****m 2
Alexandre Oliveira 8****v 2
alexzurbonsen 8****n 1

Committer domains:


Issue and Pull Request metadata

Last synced: 1 day ago

Total issues: 103
Total pull requests: 260
Average time to close issues: 7 months
Average time to close pull requests: 7 days
Total issue authors: 8
Total pull request authors: 6
Average comments per issue: 2.1
Average comments per pull request: 2.39
Merged pull request: 225
Bot issues: 0
Bot pull requests: 100

Past year issues: 67
Past year pull requests: 260
Past year average time to close issues: 2 months
Past year average time to close pull requests: 7 days
Past year issue authors: 6
Past year pull request authors: 6
Past year average comments per issue: 2.03
Past year average comments per pull request: 2.39
Past year merged pull request: 225
Past year bot issues: 0
Past year bot pull requests: 100

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/green-coding-solutions/green-metrics-tool

Top Issue Authors

  • ArneTR (44)
  • ribalba (42)
  • davidkopp (9)
  • djesic (2)
  • hellstromme (2)
  • schlichtanders (2)
  • dan-mm (1)
  • raits (1)

Top Pull Request Authors

  • ArneTR (110)
  • dependabot[bot] (100)
  • ribalba (21)
  • dan-mm (14)
  • davidkopp (12)
  • alexzurbonsen (3)

Top Issue Labels

  • good first issue (20)
  • enhancement (15)
  • help wanted (7)
  • research (3)
  • idea (3)
  • python (3)

Top Pull Request Labels

  • dependencies (100)
  • python (85)
  • docker (8)
  • github_actions (7)
  • help wanted (1)
  • wontfix (1)
  • blocked (1)

Dependencies

.github/workflows/tests-bare-metal-main.yml actions
  • ./.github/actions/gmt-pytest * composite
  • actions/checkout v3 composite
  • green-coding-berlin/eco-ci-activity-checker main composite
.github/workflows/tests-vm-main.yml actions
  • ./.github/actions/gmt-pytest * composite
  • actions/checkout v3 composite
  • green-coding-berlin/eco-ci-activity-checker main composite
requirements.txt pypi
  • PyYAML ==6.0
  • pandas ==1.5.2
  • psycopg2 ==2.9.5
requirements-dev.txt pypi
  • pydantic ==1.10.2 development
  • pylint ==2.15.10 development
  • pytest ==7.2.0 development
  • requests ==2.25.1 development
.github/actions/gmt-pytest/action.yml actions
  • actions/setup-python v4 composite
  • docker/login-action v2 composite
  • docker/setup-buildx-action master composite
.github/workflows/build-and-push-containers.yml actions
  • actions/checkout v3 composite
  • docker/login-action v3 composite
  • docker/setup-buildx-action v3 composite
  • docker/setup-qemu-action v3 composite
.github/workflows/tests-eco-ci-energy-estimation.yaml actions
  • ./.github/actions/gmt-pytest * composite
  • actions/checkout v3 composite
  • green-coding-berlin/eco-ci-energy-estimation testing composite
.github/workflows/tests-vm-pr.yml actions
  • ./.github/actions/gmt-pytest * composite
  • actions/checkout v3 composite
  • green-coding-berlin/eco-ci-energy-estimation v2 composite
docker/auxiliary-containers/gcb_playwright/Dockerfile docker
  • mcr.microsoft.com/playwright/python v1.35.0-jammy build
docker/requirements.txt pypi
  • PyYAML ==6.0.1
  • anybadge ==1.14.0
  • fastapi ==0.103.1
  • gunicorn ==21.2.0
  • orjson ==3.9.7
  • pandas ==2.1.0
  • psycopg ==3.1.10
  • schema ==0.7.5
  • scipy ==1.11.2
  • uvicorn ==0.23.2
.github/workflows/build-codespace-container.yml actions
  • docker/build-push-action v2 composite
  • docker/login-action v2 composite
  • docker/setup-buildx-action v3 composite
  • docker/setup-qemu-action v3 composite
.github/workflows/codeql.yml actions
  • actions/checkout v4 composite
  • github/codeql-action/analyze v3 composite
  • github/codeql-action/autobuild v3 composite
  • github/codeql-action/init v3 composite
tests/data/test_cases/subdir_volume_loading/Dockerfile docker
  • alpine latest build
tests/data/test_cases/subdir_volume_loading/subdir/Dockerfile docker
  • alpine latest build
tests/stress-application/Dockerfile docker
  • alpine latest build
.github/workflows/tests-vm-mac.yml actions
  • ./.github/actions/gmt-pytest * composite
  • actions/checkout v4 composite
  • green-coding-solutions/eco-ci-activity-checker v1 composite

Score: 7.957177323459474