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.
# clone the repo
npm i
npm link
# [optional] for API usage, run on the target location
npm link visualization-plugin-gsft
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
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'});
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
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'