Green-Software-Foundation / if

Impact Framework
https://if.greensoftware.foundation/
MIT License
156 stars 41 forks source link

Manifest for the IF docs website #58

Closed jawache closed 1 month ago

jawache commented 1 year ago

What Create a manifest file that uses CO2js to estimate the carbon emissions from our IF docs website

Why

To dogfood our own tech!

Context

For a first attempt at capturing our website carbon emissions, we can use the Green Web Foundation's CO2js package, invoking the Sustainable Web Design Model. This uses the amount of data transferred when a site loads as a basis for a top down estimate of the carbon emissions for that website.

I'll also look into bottom-up approaches while this top-down model is being implemented.

The way I'd like to do this is for @manushak to create a manifest file that initializes the CO2js plugin and passes all the arguments that are accepted by the CO2js perVisitTrace function, returning all the response parameters as output data.

The idea would be that it a) clarifies precisely what information I need to source in order to estimate the website carbon emissions, and b) when that data is available, I just have to slot it into the right place in the manifest and run it.

SoW

Acceptance Criteria

jawache commented 1 year ago

As discussed on project call.

e.g. If two components might have different frequencies of measurement e.g. carbon intensity of grid is every 5 mins, CPU utilization every 5 seconds and the global frequency was set to 1 hour. Then all the measurements would have to be normalized into 1hr buckets before being passed into the models.

Another approach would be we define the global freq, and you MUST provide data at that frequency, if not the calculation fails.

Interval.

Can query measurements for different interval.

SCI can be calculated for a duration (and update the next duration).

Sometimes we may just want to calculate multiple SCI scores over time, e.g. every 5 mins. In that scenario the freq. will be 5 mins, and the telemetry put in will be again in 5 min increments.

jawache commented 1 year ago

@jmcook1186 can you take a look at reformatting this IMPL to one that meets the latest spec and add it to the impls folder as per your other issue. This will defo be a work in progress but let's have it added to the collection.

zanete commented 1 year ago

Hi @jmcook1186 happy to help with any traffic data that would be useful. Do you have any parameters for me? e.g. timeline, the metric such as users or page views, should it be broken out by anything such as website sections, device, location etc. Look forward to hearing from you.

jmcook1186 commented 1 year ago

Hi @osamajandali and @zanete - there's a draft impl for the GSF website in PR #80 but I'd love to get your help to make it more realistic.

@osamajandali can you help by explaining how the GSF website is really built and hosted? Then I can ask @zanete for appropriate metrics.

Cheers!

osamajandali commented 1 year ago

Hello @jmcook1186, I am glad to assist you with any development-related queries.

The GSF website is constructed using the GatsbyJS framework and is deployed on Netlify. We utilize GitHub, which automatically builds the website on Netlify during deployment.

To better assist you, I would appreciate it if you could share more details on what specifically you are looking for. While I have provided you with a brief overview of the essential aspects, I understand that there may be additional requirements that you require further assistance with.

zanete commented 3 months ago

@jmcook1186 can we reuse this issue to restart working on manifest for the GSF website or has too much changed and we need to start fresh? 🙏

jmcook1186 commented 3 months ago

Hi @zanete - yes we can use this ticket. A good first go at this is to use CO2js in SWD mode to estimate the website emissions from data transfer measurements. We can do this using our CO2js IF plugin.

So what I want to do is to ask @manushak to prepare a manifest that invokes the CO2js plugin and exposes all the available config for the SWD model. This will help me by enumerating all the data points I need to collect. We can divide and conquer by having @manushak prepare the manifest while I'm sourcing the right data to feed the model.

jmcook1186 commented 2 months ago

This is now just waiting for fixes to aggregation feature, then it will be done.

zanete commented 1 month ago

@manushak to look at the GSF website manifest and the existing if docs website and bring it to the level of the GSF website.