Skip to main content
This project is an incubation project being run inside the Green Software Foundation; as such, we DON’T recommend using it in any critical use case. Incubation projects are experimental, offer no support guarantee, have minimal governance and process, and may be retired at any moment. This project may one day Graduate, in which case this disclaimer will be removed.

Plugins

The Impact Framework includes several builtin plugins (e.g. time-sync, groupby and csv-exporter). All other plugins are external plugins that have to be installed before they can be run in an IF pipeline. Anyone can create and install a new plugin. As long as the plugin conforms to the expected interface, IF can run it.

There are two repositories that were created by the IF core team. The if-plugins repository contains the "core" set of plugins that IF developers will maintain and support. We also provide a second repository of if-unofficial plugins that are mainly re-implementations of existing third party plugins or code that we expect community members to maintain independently of the IF core team.

Documentation for the specific individual plugins are available in the plugin READMEs. Below you will find a brief description of each plugin and a link to its documentation:

built-in

  • Time Sync: Takes a heterogeneous set of time series data that might be offset, discontinuous or irregularly spaces and returns time series conforming to a user defined time grid. E.g. a user can define that all sets of observations should start at sopme global start time, end at some global end time and have a specific temporal resolution.

  • CSV Exporter: Exports data for a given metric to a CSV file.

  • Groupby: Allows a user to regroup their output data according to given keys.

if-plugins

  • Cloud metadata: Looks up detailed metadata about a given cloud instance type and region, including the physical processor being used.
  • E-MEM: Calculate the energy expended due to memroy usage, by multiplying the energy used in GB by a coefficient.
  • SCI-E: Calculates the sum of all energy components.
  • SCI-M - Calculates the embodied carbon for a component.
  • SCI-O - Calculates the operational carbon from the total energy and grid carbon intensity.
  • SCI: Calculates the software carbon intensity.
  • SHELL - A plugin that enables external code in any language to be run in a child process
  • TDP-FINDER: Looks up the thermnal desig power for a given processor in a local database.
  • Sum: a generic arithmetic plugin that allows you to sum any set of input parameters.
  • Multiply: a generic arithmetic plugin that allows you to multiply any set of input parameters.
  • Coefficient: a generic arithmetic plugin that allows you to multiply any input value by a coefficient.
  • E-NET: simply multiplies the amount of data transferred (GB) by a coefficient (kWh/GB) to yield network/energy.
  • Mock Observations: A plugin for mocking observations (inputs) for testing and demo purposes.
  • Grafana-Export: a generic CSV exporter plugin.
  • Divide: A generic plugin for doing arithmetic division of two values.
  • Regex: A generic plugin to match part of one string and extract it into another.

if-unofficial-plugins

  • Azure importer: Grabs usage metrics from an Azure virtual machine, given user credentials and virtual machine details.
  • Cloud Carbon Footprint: Calculates usage metrics using the Cloud Carbon Footprint APIs.
  • WattTime: WattTime is an external service for looking up grid emissions based on location.
  • TEADS-CURVE: Calculates the energy in kWh used by the CPU
  • TEADS-AWS: Calculates the energy in kWh used by the CPU using a model specific to AWS instances.
  • Boavizta: Calculates energy and embodied carbon using the Boavizta APIs.
  • co2js: Calculates the carbon emissions of a website.

Exhaust plugins (outputs)

Export plugins designed to implement custom ways of exporting output file. Currenlty supported ones are csv, yaml and log plugins. These are currently built in to the IF, but migrating to dynamically loading export functions as plugins is part of our near-term roadmap.