Skip to content

Repository files navigation

Visualisation plugin

Visualisation plugin is a visualisation data product that helps analyse the carbon emission and cpu energy consumption of our servers. It can be used in a pipeline to generate a report of the same.

Blank diagram (1)

A sample Report

image

Installation

# clone the repo
npm i
npm link
# [optional] for API usage, run on the target location
npm link visualization-plugin-gsft

Usage

Visualization plugin requires:

  • array containing carbon emission and energy usage data by the servers (required parameters are shown in the example usage below)
  • output file path as config

API usage

const visualization = Visualization();
const result = visualization.execute([
{
timestamp: '2024-03-05T00:00:00.000Z',
name: 'server-1',
'cpu/energy': 0.045017969268292685,
'grid/carbon-intensity': 369.4212640011265,
carbon: 16.63059510985655
},
{
timestamp: '2024-03-05T00:00:00.000Z',
name: 'server-2',
'cpu/energy': 0.029579080198170734,
'grid/carbon-intensity': 369.4212640011265,
carbon: 10.927141194798923
}
], {'output-path': './output.html'});

Standalone manifest file

name: visualization
description: Simple demo of visualization plugin
tags:
initialize:
plugins:
visualization-plugin:
method: Visualization
path: "visualization-plugin-gsft"
tree:
children:
child:
pipeline:
- visualization-plugin
inputs:
- timestamp: '2024-03-05T00:00:00.000Z'
name: 'server-1'
cpu/energy: 0.045017969268292685
grid/carbon-intensity: 369.4212640011265
carbon: 16.63059510985655
- timestamp: '2024-03-05T00:00:00.000Z'
name: 'server-2'
cpu/energy: 0.029579080198170734
grid/carbon-intensity: 369.4212640011265
carbon: 10.927141194798923
config:
visualization-plugin:
output-path: ./examples/outputs/emission-report.html

The above standalone manifest can be run with ie with the following command:

ie --manifest ./examples/manifests/visualization-standalone.yml

Integration with existing plugins

This plugin can be conveniently used along with existing plugins. In the below example, data is generated by some plugins (mock-observations, watttime etc.) and fed to the visualization plugin. The integration works fine as long as required parameters are passed down to the plugin.

Example:

...manifest file
pipeline:
- mock-observations
- cloud-metadata
- teads-curve
- watttime
- operational-carbon
- visualization-plugin
config:
visualization-plugin:
output-path: ./examples/outputs/emission-report.html

The full manifest file is available at examples/manifests/visualization-pipeline.yml. This pipeline requires some additional plugins to be installed:

npm i -g @grnsft/if-plugins
npm i -g @grnsft/if-unofficial-plugins
ie --manifest ./examples/manifests/visualization-pipeline.yml --output ./examples/outputs/output

Note: If the output-path is not specified in the config, then it picks the default path of './examples/outputs/report.html'

About

Visualisation plugin is a data product that helps analyse the carbon emission and cpu energy consumption of servers.

Resources

Stars

0 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages