Skip to content

ramgsuri/visualization-plugin

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

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •