Releases: green-coding-solutions/green-metrics-tool
v2.1 AI/ML measurement features, Important Bugfix, Phase-Cut off mitigations
The new feature drops for Q2 in 2025 are coming to GMT. We know you could not wait any second longer :)
- AI/ML Models are now a first class citizen in GMT for measurement. Check out our easy AI prompt measurement
- See the documentation
- Also see our demo service on https://green-coding.ai
- Important Bugfix in the frontend where some values where shown as 0.0 See PR
- Phase cut-offs with sampling are now easier to mitigate by pushing the phase end into the next sample
- Too complicated? Read up on it in this PR - There are pictures, we promise!
- AI Measurements and NVIDIA power is now done via our new C provider for less overhead
What's Changed
- Removing ee visibility by @ArneTR in #1180
- Added --dev-no-save flag by @ArneTR in #1179
- Bump hiredis from 3.1.0 to 3.1.1 by @dependabot in #1182
- Bump psycopg[binary] from 3.2.7 to 3.2.8 by @dependabot in #1183
- Bump playwright/python from v1.51.0-noble to v1.52.0-noble in /docker/auxiliary-containers/gcb_playwright by @dependabot in #1174
- Shm size by @ArneTR in #1184
- Adding dev-no-sleeps and dev-no-optimization to the cluster by @ArneTR in #1185
- Bump pylint from 3.3.6 to 3.3.7 by @dependabot in #1175
- Bump deepdiff from 8.4.2 to 8.5.0 by @dependabot in #1181
- Added statistical significance schedule mode [skip ci] by @ArneTR in #1186
- Bump redis from 5.2.1 to 6.1.0 by @dependabot in #1187
- Bump psycopg[binary] from 3.2.8 to 3.2.9 by @dependabot in #1188
- Phase end cutoff mitigation by @ArneTR in #1161
- AI Optimisations Frontend added to FOSS version as appetizer by @ArneTR in #1192
- Phase padding can now be turned on and off by @ArneTR in #1193
- Sampling rate rework by @ArneTR in #1194
- Hotfix: Compare values were 3 orders of magnitude to low due to double division by @ArneTR in #1191
- Splits the diskio provider into reads and writes by @ribalba in #1189
- Checking outside symlinks when cloning from URL by @ArneTR in #1195
- Bump hiredis from 3.1.1 to 3.2.0 by @dependabot in #1197
- Bump pydantic from 2.11.4 to 2.11.5 by @dependabot in #1196
- Proper detached feature log parsing and process handling for setup-commands by @ArneTR in #1198
- Previous exception rework by @ArneTR in #1199
- RE-Implemented NVIDIA Energy capture via C by @ArneTR in #1167
- Bump hiredis from 3.2.0 to 3.2.1 by @dependabot in #1201
- Jobs can now be cancelled via API and Dashboard by @ArneTR in #1205
- (feature): Added logout button by @ArneTR in #1208
Full Changelog: v2.0...v2.1
v2.0 Variables in usage_scenarios, API changes and developer QoL
The Green Metrics Tool has reached version 2.0! 🎉
This is because we have a major new functionality and also some breaking changes to API endpoints.
New functionalities:
- Variables in Usage Scenario. You can use variables like
__GMT_VAR_XXX__
in yourusage_scenario.yml
and supply them when you start a run. Either via CLI or handed in to the cluster. The scenario will then run with the respective replaced variable.
Since comparing scenarios is a key feature of the Green Metrics Tool the usage_scenario variables are first class citizens and are a compare category. In short: same usage scenarios but different variables will create a separate category for comparison- Adding these also via the Web Frontend will come in v2.1
- Badges have now selectable units between joules and watt-hours
- Return data for watt-hours moved to milliwatt-hours
- Added note column to be sent to Eco ci in case an error happens in the CI/CD pipeline
- Eco CI now has a carbon badge in the repo overview. See example:

Breaking changes:
- Badge endpoint does not accept general parameters like 'AC' anymore, but the concrete metric must be supplied. e.g. psu_carbon_ac_mcp_machine
- runs endpoint migrated to v2 due to different return
- run endpoint migrated to v2 due to different return
- Usage scenario
setup-commands
key is now a list of dicts. See https://docs.green-coding.io/docs/measuring/usage-scenario/ - Ignore unsupported docker compose keys. Can be turned off with
ignore-unsupported-compose: true
What's Changed
- Badges with selectable unit by @ArneTR in #1073
- Bump scipy from 1.15.1 to 1.15.2 by @dependabot in #1075
- Bump psutil from 6.1.1 to 7.0.0 by @dependabot in #1074
- Adds-ping-on-install by @ribalba in #1067
- Eco-CI now has a carbon badge in the repo overview [skip ci] by @ArneTR in #1079
- Bump cachetools from 5.5.1 to 5.5.2 by @dependabot in #1076
- Bump psycopg[binary] from 3.2.4 to 3.2.5 by @dependabot in #1077
- Bump aiohttp from 3.11.12 to 3.11.13 by @dependabot in #1080
- Bump playwright/python from v1.49.1-jammy to v1.50.0-jammy in /docker/auxiliary-containers/gcb_playwright by @dependabot in #1072
- Bump psycopg-pool from 3.2.4 to 3.2.5 by @dependabot in #1078
- Bump fastapi[standard] from 0.115.8 to 0.115.11 by @dependabot in #1083
- Bump pytest from 8.3.4 to 8.3.5 by @dependabot in #1084
- Bump psycopg-pool from 3.2.5 to 3.2.6 by @dependabot in #1081
- Bump deepdiff from 8.2.0 to 8.3.0 by @dependabot in #1087
- Checking int fields for params and limiting retrieval amount by @ArneTR in #1089
- Optimizations can get data without HTTP by @ArneTR in #1090
- Bump psycopg[binary] from 3.2.5 to 3.2.6 by @dependabot in #1095
- Add compose stack name + allow test stack to run in parallel by @davidkopp in #1093
- Add support for entrypoint attribute by @davidkopp in #1088
- Logs previous exception if present by @ArneTR in #1097
- HealthCheck JSON errors are now scraped by @ArneTR in #1103
- Bump deepdiff from 8.3.0 to 8.4.2 by @dependabot in #1102
- Bump aiohttp from 3.11.13 to 3.11.14 by @dependabot in #1098
- Bump pylint from 3.3.4 to 3.3.6 by @dependabot in #1105
- (Frontend): Clearer split between modular frontend and "Runner" by @ArneTR in #1053
- Project to watchlist by @ArneTR in #1110
- Bump fastapi[standard] from 0.115.11 to 0.115.12 by @dependabot in #1113
- Bump playwright/python from v1.50.0-noble to v1.51.0-noble in /docker/auxiliary-containers/gcb_playwright by @dependabot in #1114
- More sleak card display in Watchlist by @ArneTR in #1116
- Timeline badges are now for 30 days by @ArneTR in #1117
- Bump orjson from 3.10.15 to 3.10.16 by @dependabot in #1118
- Adds monotonic clocks by @ribalba in #1106
- Installer negate by @ArneTR in #1122
- Force compare mode by @ArneTR in #1111
- User settings via dashboard by @ArneTR in #1112
- User settings are now also stored in DB by @ArneTR in #1125
- Add option to print stats to CLI by @ArneTR in #1130
- Badges all metrics by @ArneTR in #1131
- Introduces phase to badge by @ArneTR in #1134
- Redirecting port 80 to SSL by @ArneTR in #1141
- Adds the runner arguments as 'Switches' menu item to the stats.html by @ArneTR in #1144
- Added note column to be sent to eco-ci by @ArneTR in #1145
- Moving to milli-watt hours by @ArneTR in #1133
- Guard clause against too old python version by @ArneTR in #1153
- Charts now display absolute StdDev by @ArneTR in #1154
- Fix invalid run markers by @ArneTR in #1157
- Bump uvicorn[standard] from 0.34.0 to 0.34.1 by @dependabot in #1147
- Bump pydantic from 2.10.6 to 2.11.3 by @dependabot in #1143
- Machine names have now nice names in Dashboard and some QoL by @ArneTR in #1142
- Bump aiohttp from 3.11.14 to 3.11.16 by @dependabot in #1139
- Adds the option to use --ee-branch as parameter. by @ribalba in #1123
- Timeline badges rework by @ArneTR in #1158
- Entrypoint as list functionality by @ribalba in #1127
- Added init support by @ArneTR in #1160
- Bump uvicorn[standard] from 0.34.1 to 0.34.2 by @dependabot in #1159
- Bump python from 3.13.2-slim-bookworm to 3.13.3-slim-bookworm in /docker by @dependabot in #1146
- Bump aiohttp from 3.11.16 to 3.11.18 by @dependabot in #1162
- Ignore unsupported docker compose keys by @ArneTR in #1165
- Software add now returns job_id on insert; Jobs API now allows filter for job_id by @ArneTR in #1170
- Usage Scenario Variables and ScenarioRunner templates by @ArneTR in #1172
- Resource limits now also from services key; Added tests by @ArneTR in #1173
- Bump psycopg[binary] from 3.2.6 to 3.2.7 by @dependabot in #1171
- Bump pydantic from 2.11.3 to 2.11.4 by @dependabot in https://github.com/green-coding-solutions/gr...
v1.4.0 - WattHours default + QoL + depedency updates
If you look at the release logs for this month you might be thinking that only dependency updates have happened. But don't be fooled, a lot of long wanted and interesting features have made it to this months release:
- WattHours are now the default display (instead of Joules) as the unit of energy. You can still switch back to Joules in the settings
- QoL features in the dashboard:
- Unselect button when comparing runs
- href removed for non links for screen readers
- Badges now have average function
- GMT can now isolate containers from network by setting --internal
- GMT is now microjoules under the hood to allow higher resolutions
- Averages are now weighted averages for CPU utilization and others
- Sample resolution is now shown in Dashboard and you can compare if you can actually sample at the target rate
What's Changed
- Added unselect button [skip ci] by @ArneTR in #1022
- Noise reduced run start by @ArneTR in #1023
- Bump deepdiff from 8.0.1 to 8.1.1 by @dependabot in #1020
- Bump pydantic from 2.10.3 to 2.10.4 by @dependabot in #1024
- Bump aiohttp from 3.11.10 to 3.11.11 by @dependabot in #1025
- Badges for CI now include carbon and also Totals by @ArneTR in #998
- Removing href for non actual links [skip ci] by @ArneTR in #1026
- Bump psutil from 6.1.0 to 6.1.1 by @dependabot in #1028
- Added average function to badges by @ArneTR in #1029
- Adding saving for image and volume sizes by @ArneTR in #1027
- User Zero / Super Admin by @ArneTR in #1021
- Internal network by @ArneTR in #1030
- Refactorings and performance by @ArneTR in #1032
- Bump pylint from 3.3.2 to 3.3.3 by @dependabot in #1031
- Bump uvicorn-worker from 0.2.0 to 0.3.0 by @dependabot in #1034
- (improvement): Added ICMP, Ehterframe, QUIC and TCP-Streams to TCPDum… by @ArneTR in #1036
- Metric importer refactor by @ArneTR in #1035
- Bump anybadge from 1.14.0 to 1.15.6 by @dependabot in #1038
- Bump orjson from 3.10.12 to 3.10.13 by @dependabot in #1037
- Measurement table split by @ArneTR in #1039
- Moving GMT to microjoules by @ArneTR in #932
- Bump scipy from 1.14.1 to 1.15.0 by @dependabot in #1041
- (Feature): Check if swap is active; Drop VM caches and sync disk by @ArneTR in #1042
- Weighted Average for Phase Stats by @ArneTR in #1040
- Alternative cpu utilization reporting by @ArneTR in #1002
- (Feature): Sampling rate can be NULL by @ArneTR in #1045
- Bump orjson from 3.10.13 to 3.10.14 by @dependabot in #1043
- Bump pydantic from 2.10.4 to 2.10.5 by @dependabot in #1044
- Bump anybadge from 1.15.6 to 1.16.0 by @dependabot in #1046
- Bump scipy from 1.15.0 to 1.15.1 by @dependabot in #1047
- Bump psycopg[binary] from 3.2.3 to 3.2.4 by @dependabot in #1048
- Memcpy for dynamic buffer by @ArneTR in #1050
- Metric provider edge cases by @ArneTR in #1049
- Target Sampling resolution if avg sampling resolution is not available by @ArneTR in #1051
- (Feature): Frontend now remembers when description texts are closed by @ArneTR in #1054
- Timeline and badge value transform by @ArneTR in #1060
- I think we should not include the original by @ribalba in #1062
- Bump pylint from 3.3.3 to 3.3.4 by @dependabot in #1063
- Github gives you the url for the repo with a .git at the end by @ribalba in #1059
- Bump orjson from 3.10.14 to 3.10.15 by @dependabot in #1055
- Bump fastapi[standard] from 0.115.6 to 0.115.7 by @dependabot in #1057
- Bump cachetools from 5.5.0 to 5.5.1 by @dependabot in #1056
- Bump pydantic from 2.10.5 to 2.10.6 by @dependabot in #1058
- Bump aiohttp from 3.11.11 to 3.11.12 by @dependabot in #1070
- Bump deepdiff from 8.1.1 to 8.2.0 by @dependabot in #1069
- Bump pytest-playwright from 0.6.2 to 0.7.0 by @dependabot in #1068
- Bump fastapi[standard] from 0.115.7 to 0.115.8 by @dependabot in #1066
- Makes the installer more robust by @ribalba in #1065
- Adds the option to add args to the docker call string by @ribalba in #1064
- (Feature): Disk IO providers now block more virtual devices and stand multiple partitions by @ArneTR in #1052
- Bump python from 3.13.1-slim-bookworm to 3.13.2-slim-bookworm in /docker by @dependabot in #1071
Full Changelog: v1.3.0...v1.4.0
v1.3.0 Codespaces + CarbonDB 2.0 + QoL / Tests / Package updates
Whoo, what a christmas release!!
GMT comes along for the holidays with an unusual packed feature release and also some more extensive test coverage now even including the frontend.
The higlights are:
- We now have a default Codespaces setup to try at your convenience. Just click on the Codespaces button in the Readme and try out GMT pre-installed and pre-configured with our trusty Cloud Energy reporter active for cloud measurements
- The integrated Cloud Energy now accounts vor vhost ratio of your machine so you can get reliable GMT values even in VMs
- Phase Stats are now also saved if runs fails. So no data gets lost if you want to account for the carbon consumption of your measurement cluster
- CarbonDB 2.0 is now ready for use. (Please note that this is an enterprise only feature and distributed in a separate repository - See https://www.green-coding.io/products/carbondb/)
- Clickable Comparsion Charts + Display Missing Values by @ArneTR in #1017 So nice!!!!!
Thanks again to our contributors this month:
- @davidkopp ❤️
What's Changed
- Remove Apex Charts by @ArneTR in #955
- Bump uvicorn[standard] from 0.31.1 to 0.32.0 by @dependabot in #956
- Added frontend tests by @ArneTR in #945
- Fixes wrong o vs. O parameter by @ribalba in #958
- Bump psutil from 6.0.0 to 6.1.0 by @dependabot in #959
- Bump orjson from 3.10.7 to 3.10.9 by @dependabot in #961
- --dev-no-build -> --dev-cache-build by @ArneTR in #963
- Carbondb 2.0 - New by @ArneTR in #957
- Adding tag and commit mode to Timeline Projects scheduling by @ArneTR in #960
- Cleaned up GitHub Workflows and using CarbonDB 2.0 by @ArneTR in #964
- Bump playwright/python from v1.46.0-jammy to v1.48.0-jammy in /docker/auxiliary-containers/gcb_playwright by @dependabot in #965
- Bump fastapi[standard] from 0.115.2 to 0.115.3 by @dependabot in #967
- Bump orjson from 3.10.9 to 3.10.10 by @dependabot in #966
- Bump redis from 5.1.1 to 5.2.0 by @dependabot in #968
- Bump tqdm from 4.66.5 to 4.66.6 by @dependabot in #971
- Bump fastapi[standard] from 0.115.3 to 0.115.4 by @dependabot in #969
- Bump pytest-randomly from 3.15.0 to 3.16.0 by @dependabot in #970
- Bump orjson from 3.10.10 to 3.10.11 by @dependabot in #974
- Bump tqdm from 4.66.6 to 4.67.0 by @dependabot in #975
- Bump fastapi[standard] from 0.115.4 to 0.115.5 by @dependabot in #978
- Bump aiohttp from 3.10.10 to 3.11.0 by @dependabot in #980
- Bump aiohttp from 3.11.0 to 3.11.2 by @dependabot in #981
- Bump aiohttp from 3.11.2 to 3.11.4 by @dependabot in #984
- Bump psycopg-pool from 3.2.3 to 3.2.4 by @dependabot in #982
- fixes the GCC warnings by @ribalba in #985
- RAPL energy filtering moved to provider by @ArneTR in #979
- Phase Stats are now also saved if runs fails by @ArneTR in #972
- Monotonic and low value check by @ArneTR in #973
- Container energy idle by @ArneTR in #992
- Codespaces merge into main by @ArneTR in #993
- Vhost ratio for XGBoost provider by @ArneTR in #994
- Gitignore improvements by @davidkopp in #995
- Adding enterprise submodule for custom additional components by @ArneTR in #996
- Bump aiohttp from 3.11.4 to 3.11.7 by @dependabot in #991
- Bump uvicorn[standard] from 0.32.0 to 0.32.1 by @dependabot in #988
- Bump pydantic from 2.9.2 to 2.10.1 by @dependabot in #990
- Bump pydantic from 2.10.1 to 2.10.2 by @dependabot in #1005
- Bump pytest-playwright from 0.5.2 to 0.6.2 by @dependabot in #1004
- Bump orjson from 3.10.11 to 3.10.12 by @dependabot in #1001
- Bump playwright/python from v1.48.0-jammy to v1.49.0-jammy in /docker/auxiliary-containers/gcb_playwright by @dependabot in #999
- Bump tqdm from 4.67.0 to 4.67.1 by @dependabot in #1000
- Bump aiohttp from 3.11.7 to 3.11.9 by @dependabot in #1009
- Bump pytest from 8.3.3 to 8.3.4 by @dependabot in #1007
- Bump pylint from 3.3.1 to 3.3.2 by @dependabot in #1008
- Bump hiredis from 3.0.0 to 3.1.0 by @dependabot in #1012
- Bump python from 3.12.7-slim-bookworm to 3.13.0-slim-bookworm in /docker by @dependabot in #949
- Bump redis from 5.2.0 to 5.2.1 by @dependabot in #1014
- Bump aiohttp from 3.11.9 to 3.11.10 by @dependabot in #1013
- Bump fastapi[standard] from 0.115.5 to 0.115.6 by @dependabot in #1011
- Bump pydantic from 2.10.2 to 2.10.3 by @dependabot in #1010
- Bump python from 3.13.0-slim-bookworm to 3.13.1-slim-bookworm in /docker by @dependabot in #1015
- Allowing Deeplinks to specific phases [skip ci] by @ArneTR in #1016
- Tcp dump by @ArneTR in #919
- Bump playwright/python from v1.49.0-jammy to v1.49.1-jammy in /docker/auxiliary-containers/gcb_playwright by @dependabot in #1018
- Bump uvicorn[standard] from 0.32.1 to 0.34.0 by @dependabot in #1019
- Clickable Comparsion Charts + Display Missing Values by @ArneTR in #1017
Full Changelog: v1.2.0...v1.3.0
v1.2.0 STDDEV changes and display tweaks
STDDEV in GMT is now exclusively calculated as SAMPLE-STDDEV and not POP-STDDEV anymore.
This is for two reasons:
- It is required by certifications like the Blue Angel for Software
- We got many debates that in cases where the average is only estimated through measurements and is not absolute one MUST use the sample STDDEV. Still one could argue that one does not want to characterize the measured software but rather the measurement setup it is safer to use the sample STDDEV as it is always higher
Furthermore some display changed where made to have the AVG bar optional and quick-access for the timeline was added on overview
What's Changed
- Toggle for AVG in Timeline Charts by @ArneTR in #940
- Sample stddev by @ArneTR in #941
- (feature): Print CSS styles for frontend [skip ci] by @ArneTR in #942
- Test fixes by @ArneTR in #943
- Bump uvicorn[standard] from 0.31.0 to 0.31.1 by @dependabot in #944
- Bump aiohttp from 3.10.9 to 3.10.10 by @dependabot in #946
- Quick Access for timeline added by @ArneTR in #947
- Making Workload Validation also accept absolute values by @ArneTR in #948
- Bump fastapi[standard] from 0.115.0 to 0.115.2 by @dependabot in #950
Full Changelog: v1.1.1...v1.1.2
v1.1.1 SCI / Embodied Carbon Patch & dependencies update
- (fix) SCI values were not correctly reported anymore.
- (update) Using the release to also update some depedencies
What's Changed
- Bump python from 3.12.6-slim-bookworm to 3.12.7-slim-bookworm in /docker by @dependabot in #938
- Bump redis from 5.1.0 to 5.1.1 by @dependabot in #936
- Bump aiohttp from 3.10.8 to 3.10.9 by @dependabot in #937
- Missing embodied carbon values by @ArneTR in #939
Full Changelog: v1.1...v1.1.1
v.1.1.0 - Patch Release / Feature Release
v1.0 is just a week out, and here it is: The first patch / feature release :)
We encourage everybody to update as one reporter was reporting broken data.
Fixes
- Some API calls in the HOG are now optional as we have seen machines without disks
- GMT uses for reporiting the SI norms. That means that 1 KB is 1000 Bytes, not 1024 (as this would be kiB). We fixed one occurence where this was not correctly reported but should be negligeable to most users.
- network_io_cgroup_container reporter was reporting grossly false high values. Here an accumulation instead of an assign was happening. (Note that this was introduced in v1.0 and was fine in versions before. Blast radius should thus be small)
Features addons
- SSL is now possible in the installation process. It should be pretty straight forward but documentation is to follow.
- Cron dir is now refactored and all cron jobs have error handling
- Added a backup script to import backups to the database (Can handle 100 GB+ imports !)
Important info
CarbonDB 2.0 is actually not part of this release. Due to some branch merging it looks this way on GitHub. It will be released later next week with v1.2
What's Changed
- Bump redis from 5.0.8 to 5.1.0 by @dependabot in #922
- Bump uvicorn[standard] from 0.30.6 to 0.31.0 by @dependabot in #923
- Bump psycopg[binary] from 3.2.2 to 3.2.3 by @dependabot in #924
- Bump aiohttp from 3.10.6 to 3.10.8 by @dependabot in #925
- Makes the disk optional by @ribalba in #926
- Refactor reporters and install script by @ArneTR in #920
- Ssl by @ArneTR in #928
- Cron dir refactoring by @ArneTR in #929
- pip timeouts and retries increased by @ArneTR in #930
- Added Backup script [skip ci] by @ArneTR in #931
- Timeline has now bookmark functionality [skip ci] by @ArneTR in #933
- Byte normalization - SI Units by @ArneTR in #934
- Fix: metric providers for IO where accumulating instead of echoing by @ArneTR in #935
Full Changelog: v1.0...v1.0.1
v1.0
The 1.0 release !!!! 🎉
While this release mostly contains updates and tests to asset the stability of the measurements it has two main perks:
- GMT now has an authentication so it can be used with multiple users to implement ACLs and data retention
- GMT is now fully compliant with the measurement requirements for the new Blue Angel for Software
We opted for the 1.0 release now as we have used it to capture more than 1 TB of measurement data of 100+ users.
GMT has been featured on many conferences and papers
We believe it is now ready for 1.0. Enjoy!
What's Changed
- Bump playwright/python from v1.45.0-jammy to v1.45.1-jammy in /docker/auxiliary-containers/gcb_playwright by @dependabot in #844
- Bump pytest from 8.3.1 to 8.3.2 by @dependabot in #843
- Bump aiohttp from 3.9.5 to 3.10.0 by @dependabot in #845
- Bump redis from 5.0.7 to 5.0.8 by @dependabot in #846
- Bump uvicorn[standard] from 0.30.3 to 0.30.4 by @dependabot in #847
- Bump fastapi from 0.111.1 to 0.112.0 by @dependabot in #848
- Adds the new fastapi include by @ribalba in #849
- Bump tqdm from 4.66.4 to 4.66.5 by @dependabot in #852
- Bump aiohttp from 3.10.0 to 3.10.1 by @dependabot in #850
- Bump uvicorn[standard] from 0.30.4 to 0.30.5 by @dependabot in #851
- Bump pyyaml from 6.0.1 to 6.0.2 by @dependabot in #853
- Bump aiohttp from 3.10.1 to 3.10.2 by @dependabot in #854
- Bump orjson from 3.10.6 to 3.10.7 by @dependabot in #855
- Bump aiohttp from 3.10.2 to 3.10.3 by @dependabot in #858
- Bump gunicorn from 22.0.0 to 23.0.0 by @dependabot in #857
- Bump python from 3.12.4-slim-bookworm to 3.12.5-slim-bookworm in /docker by @dependabot in #856
- Bump uvicorn[standard] from 0.30.5 to 0.30.6 by @dependabot in #861
- Fix using depends_on in conjunction with container_name by @davidkopp in #860
- Bump fastapi[standard] from 0.112.0 to 0.112.1 by @dependabot in #863
- Bump aiohttp from 3.10.3 to 3.10.4 by @dependabot in #864
- Bump playwright/python from v1.45.1-jammy to v1.46.0-jammy in /docker/auxiliary-containers/gcb_playwright by @dependabot in #865
- RAPL check shall only run on linux systems by @ArneTR in #862
- Bump aiohttp from 3.10.4 to 3.10.5 by @dependabot in #866
- head -1 could lead to SIGPIPE 124 by @ArneTR in #867
- Bump scipy from 1.14.0 to 1.14.1 by @dependabot in #868
- Make the debug messages better by @ribalba in #870
- Checks for duplicate flow names by @ribalba in #869
- Trims values from requests submit and allows value addition through url by @ribalba in #873
- Checks if when read-sci-stdout is specified that also log-stdout is True by @ribalba in #875
- Bump fastapi[standard] from 0.112.1 to 0.112.2 by @dependabot in #876
- CORS allowed origins now dynamic by @ArneTR in #878
- Bump deepdiff from 7.0.1 to 8.0.0 by @dependabot in #879
- Bump deepdiff from 8.0.0 to 8.0.1 by @dependabot in #880
- Bump pylint from 3.2.6 to 3.2.7 by @dependabot in #881
- Bump fastapi[standard] from 0.112.2 to 0.113.0 by @dependabot in #884
- Bump pydantic from 2.8.2 to 2.9.0 by @dependabot in #883
- Guard clause when non-git root supplied in CLI by @ArneTR in #874
- Fetch mode named digestable by @ArneTR in #885
- Bump fastapi[standard] from 0.113.0 to 0.114.0 by @dependabot in #887
- Adds checks to the install scripts by @ribalba in #886
- Bump pydantic from 2.9.0 to 2.9.1 by @dependabot in #889
- Bump pytest from 8.3.2 to 8.3.3 by @dependabot in #890
- Added new demo data [skip ci] by @ArneTR in #892
- Bump fastapi[standard] from 0.114.0 to 0.114.2 by @dependabot in #899
- Bump psycopg[binary] from 3.2.1 to 3.2.2 by @dependabot in #900
- Bump python from 3.12.5-slim-bookworm to 3.12.6-slim-bookworm in /docker by @dependabot in #898
- Measurement importer by @ArneTR in #908
- Bump fastapi[standard] from 0.114.2 to 0.115.0 by @dependabot in #905
- Bump pydantic from 2.9.1 to 2.9.2 by @dependabot in #904
- Bump psycopg-pool from 3.2.2 to 3.2.3 by @dependabot in #901
- Bump pylint from 3.2.7 to 3.3.0 by @dependabot in #911
- Bump plotext from 5.2.8 to 5.3.1 by @dependabot in #909
- Bump pandas from 2.2.2 to 2.2.3 by @dependabot in #910
- Bump plotext from 5.3.1 to 5.3.2 by @dependabot in #914
- Bump aiohttp from 3.10.5 to 3.10.6 by @dependabot in #912
- Bump pylint from 3.3.0 to 3.3.1 by @dependabot in #913
- Added DiskIO Reporter by @ArneTR in #825
- Carbondb unique by @ArneTR in #877
- Phase name check by @ArneTR in #893
- Authentication in GMT by @ArneTR in #872
- Blue angel for Software reporters by @ArneTR in #916
Full Changelog: v0.25...v1.0
v0.25 Security Release! + Feature drop
Security
When install GMT in an unsecured multi-user environment a malicious actor that has already penetrated the system could replace a binary in an allowed sudoers path to get root access rights.
This security vulnerability is to be seen as relatively low, as the system is not open from the outside. It is a local privilege escalation.
We recommend updating to this release as soon as possible. Fix can be applied by just running the install script (install_linux.sh
/ install_mac.sh
) again.
Features
- Power per Container is now displayed in the dashboard. This feature is based on a linear estimation of the container CPU usage and the total machine power
- Multi-Stage-Build Docker Images Support
- Global Timeout to abort measurement when a timer is expired
- Weekly projects for the timeline projects to run a project only once a week
- RAPL energy filtering guard clause is now checked
What's Changed
- Bump green-coding-solutions/eco-ci-energy-estimation from 2 to 3 by @dependabot in #754
- Bump fastapi from 0.110.2 to 0.110.3 by @dependabot in #758
- Bump orjson from 3.10.1 to 3.10.2 by @dependabot in #759
- Bump tqdm from 4.66.2 to 4.66.4 by @dependabot in #760
- Added more sanity checks for duplicate and wrong container names; Add… by @ArneTR in #762
- Bump schema from 0.7.5 to 0.7.7 by @dependabot in #765
- Bump orjson from 3.10.2 to 3.10.3 by @dependabot in #764
- Bump redis from 5.0.3 to 5.0.4 by @dependabot in #756
- Bump psycopg-pool from 3.2.1 to 3.2.2 by @dependabot in #771
- Bump pylint from 3.1.0 to 3.2.0 by @dependabot in #772
- Bump pytest from 8.1.1 to 8.2.0 by @dependabot in #757
- Bump pydantic from 2.7.0 to 2.7.1 by @dependabot in #755
- Contexts and volume included can now happen in parent directories by @ArneTR in #767
- Trying to force keyword args by @ArneTR in #766
- Bump psycopg[binary] from 3.1.18 to 3.1.19 by @dependabot in #770
- Bump pytest from 8.2.0 to 8.2.1 by @dependabot in #775
- Bump playwright/python from v1.43.0-jammy to v1.44.0-jammy in /docker/auxiliary-containers/gcb_playwright by @dependabot in #774
- Bump pylint from 3.2.0 to 3.2.2 by @dependabot in #776
- Allow local URI to be a symbolic link by @davidkopp in #779
- Bump requests from 2.31.0 to 2.32.2 by @dependabot in #782
- Bump scipy from 1.13.0 to 1.13.1 by @dependabot in #784
- Proposal: Increase default wait time for dependencies by @davidkopp in #781
- Bump docker from 7.0.0 to 7.1.0 by @dependabot in #786
- Moving int to str by @ArneTR in #785
- Bump uvicorn[standard] from 0.29.0 to 0.30.0 by @dependabot in #787
- Uvicorn worker by @ArneTR in #788
- Improve Healthcheck with start-interval parameter by @davidkopp in #783
- Bump pydantic from 2.7.1 to 2.7.2 by @dependabot in #789
- Added sorting by date and unified ci and measurement runs frontend by @ArneTR in #769
- Bump requests from 2.32.2 to 2.32.3 by @dependabot in #791
- Adding network to SCI and clarifications by @ArneTR in #793
- Moving our workflows to Ubuntu 24.04 because Docker Engine is too old… by @ArneTR in #794
- Reducing workflow permissions by @ArneTR in #797
- Power per container by @ArneTR in #795
- Bump uvicorn[standard] from 0.30.0 to 0.30.1 by @dependabot in #801
- Adds a script to remove carbonDB duplicates by @ribalba in #799
- Bump pydantic from 2.7.2 to 2.7.3 by @dependabot in #802
- Bump pytest from 8.2.1 to 8.2.2 by @dependabot in #804
- Bump python from 3.12.3-slim-bookworm to 3.12.4-slim-bookworm in /docker by @dependabot in #807
- Bump redis from 5.0.4 to 5.0.5 by @dependabot in #805
- Bump pylint from 3.2.2 to 3.2.3 by @dependabot in #806
- Bump orjson from 3.10.3 to 3.10.4 by @dependabot in #808
- Bump pydantic from 2.7.3 to 2.7.4 by @dependabot in #809
- Bump redis from 5.0.5 to 5.0.6 by @dependabot in #810
- Bump orjson from 3.10.4 to 3.10.5 by @dependabot in #811
- Bump psutil from 5.9.8 to 6.0.0 by @dependabot in #816
- Added randomly by @ArneTR in #818
- Warmup for machines added if too cool by @ArneTR in #817
- Local images support by @ArneTR in #813
- Global timeout by @ArneTR in #814
- Kaniko enable multi-stage builds by @ArneTR in #819
- Bump scipy from 1.13.1 to 1.14.0 by @dependabot in #820
- Co2eq totals and Co2i totals by @ArneTR in #823
- Calling fixture by @ArneTR in #826
- Bump redis from 5.0.6 to 5.0.7 by @dependabot in #822
- Bump psycopg[binary] from 3.1.19 to 3.2.1 by @dependabot in #827
- Bump pylint from 3.2.3 to 3.2.5 by @dependabot in #828
- Bump pydantic from 2.7.4 to 2.8.0 by @dependabot in #829
- Bump orjson from 3.10.5 to 3.10.6 by @dependabot in #830
- Weekly projects added by @ArneTR in #834
- Bump pydantic from 2.8.0 to 2.8.2 by @dependabot in #831
- Expires header added to email by @ArneTR in #824
- Bump docker/build-push-action from 5 to 6 by @dependabot in #815
- Bump playwright/python from v1.44.0-jammy to v1.45.0-jammy in /docker/auxiliary-containers/gcb_playwright by @dependabot in #832
- Bump fastapi from 0.110.3 to 0.111.1 by @dependabot in #837
- Bump pytest from 8.2.2 to 8.3.1 by @dependabot in #840
- Bump hiredis from 2.3.2 to 3.0.0 by @dependabot in #841
- Bump uvicorn[standard] from 0.30.1 to 0.30.3 by @dependabot in #839
- Bump pylint from 3.2.5 to 3.2.6 by @dependabot in #838
- Security fix for python interpreter replacement by @ArneTR in #835
- Rapl energy filtering check by @ArneTR in https://github.com/green-coding-so...
v0.24 - Optimizations, Diffing, Intel PSYS, Performance, CarbonDB & QoL
Oh my, what a release!
The most important: Green Metrics Tool now has optimizations!
When you do a run you will be informed about what to tweak and optimize in order to make your software greener. We are releasing a first bunch of battle tested optimizations into open source. More to follow!
See details on the bottom of the GMT page here: https://www.green-coding.io/projects/green-metrics-tool/
Other very prominent changes are:
- Introducing heavy caching with Redis for API Requests, badges and internal calculations
- Error handling is now modular and will use a Queuing system if wanted. Blocking email errors are gone!
- CarbonDB added. You can now find out how much carbon your total cluster is using!
- Diffing has been implemented! See details here: #693
- PSYS domain can now be captured to get the whole energy of your Notebook: https://docs.green-coding.io/docs/measuring/metric-providers/psu-energy-dc-rapl-msr-machine/
- Many checks for measurement stability, taskset in order to reduce overhead, docker builds have now layer caching for faster GMT updates, DB reconnects and much more. Read the detailes under What's changed
What's Changed
- Adds support for cpu utilization on mac with resolution of under 100ms by @ribalba in #681
- Added uptime command to hardware info by @ArneTR in #697
- date parsing cannot handle 29 feb without pre-set year by @ArneTR in #699
- Dynanmic system checks by @ArneTR in #700
- Initial version of the carbonDB by @ribalba in #676
- Added no_python flag and ported flags to mac by @ArneTR in #698
- Adds optimisation functionality by @ribalba in #702
- Fixes some issues with CarbonDB by @ribalba in #708
- Quickfix for the hog not to create so much data by @ribalba in #710
- Timestamping was not working; Order of magnitude off [skip ci] by @ArneTR in #712
- Added additional AMD family for AMD Ryzen 5 by @ArneTR in #711
- Added failed run visiblity by @ArneTR in #714
- DB Auto Reconnect on connection drop by @ArneTR in #716
- Small fixes by @ribalba in #717
- Caching pip packages betweeen docker builds by @ArneTR in #721
- Eco CI performance fix by @ArneTR in #720
- Fixes the tests on main by @ribalba in #722
- Adds more tests by @ribalba in #723
- orjson requirement added by @ArneTR in #725
- tiny changes by @ribalba in #729
- Turbo boost legacy by @ArneTR in #731
- Mcp energy fix by @ArneTR in #732
- Psys by @ArneTR in #730
- Adds co2 values to eco-ci by @ribalba in #726
- Normalized -i switch to always be ms by @ArneTR in #733
- Added taskset directive by @ArneTR in #734
- Added missing eco-ci migration and optimizations tester by @ArneTR in #736
- Diffing with artifacts by @ArneTR in #693
- Error handling modular by @ArneTR in #743
- Block requests without hostname by @ArneTR in #744
- Basic optimizations by @ArneTR in #752
Full Changelog: v0.23...v0.24