@grnsft/if
Version:
Impact Framework
440 lines (439 loc) • 13.4 kB
YAML
name: nesting
description: a manifest that includes nested child components
tags:
kind: web
complexity: moderate
category: on-premise
aggregation:
metrics:
- carbon
type: "both"
initialize:
plugins:
"interpolate":
method: Interpolation
path: "builtin"
config:
method: linear
x: [0, 10, 50, 100]
y: [0.12, 0.32, 0.75, 1.02]
input-parameter: "cpu/utilization"
output-parameter: "cpu-factor"
parameter-metadata:
inputs:
cpu/utilization:
unit: percentage
description: refers to CPU utilization.
aggregation-method:
time: avg
component: sum
outputs:
cpu-factor:
unit: kWh
description: result of interpolate
aggregation-method:
time: avg
component: avg
"cpu-factor-to-wattage":
method: Multiply
path: builtin
config:
input-parameters: ["cpu-factor", "cpu/thermal-design-power"]
output-parameter: "cpu-wattage"
parameter-metadata:
inputs:
cpu-factor:
unit: kWh
description: result of interpolate
aggregation-method:
time: avg
component: avg
cpu/thermal-design-power:
unit: kWh
description: thermal design power for a processor
aggregation-method:
time: avg
component: avg
outputs:
cpu-wattage:
unit: kWh
description: the energy used by the CPU
aggregation-method:
time: sum
component: sum
"wattage-times-duration":
method: Multiply
path: builtin
config:
input-parameters: ["cpu-wattage", "duration"]
output-parameter: "cpu-wattage-times-duration"
"wattage-to-energy-kwh":
method: Divide
path: "builtin"
config:
numerator: cpu-wattage-times-duration
denominator: 3600000
output: cpu-energy-raw
parameter-metadata:
inputs:
cpu-wattage-times-duration:
unit: kWh
description: CPU wattage multiplied by duration
aggregation-method:
time: sum
component: sum
outputs:
cpu-energy-raw:
unit: kWh
description: Raw energy used by CPU in kWh
aggregation-method:
time: sum
component: sum
"calculate-vcpu-ratio":
method: Divide
path: "builtin"
config:
numerator: vcpus-total
denominator: vcpus-allocated
output: vcpu-ratio
parameter-metadata:
outputs:
vcpu-ratio:
unit: none
description: Ratio of vCPUs
aggregation-method:
time: copy
component: copy
"correct-cpu-energy-for-vcpu-ratio":
method: Divide
path: "builtin"
config:
numerator: cpu-energy-raw
denominator: vcpu-ratio
output: cpu-energy-kwh
sci-embodied:
path: "builtin"
method: SciEmbodied
"operational-carbon":
method: Multiply
path: builtin
config:
input-parameters: ["cpu-energy-kwh", "grid/carbon-intensity"]
output-parameter: "carbon-operational"
parameter-metadata:
inputs:
cpu-energy-kwh:
unit: kWh
description: Corrected CPU energy in kWh
aggregation-method:
time: sum
component: sum
grid/carbon-intensity:
unit: gCO2eq/kWh
description: Carbon intensity for the grid
aggregation-method:
time: avg
component: avg
outputs:
carbon-operational:
unit: gCO2eq
description: Operational carbon footprint
aggregation-method:
time: sum
component: sum
sci:
path: "builtin"
method: Sci
config:
functional-unit: "requests"
parameter-metadata:
inputs:
requests:
unit: none
description: expressed the final SCI value
aggregation-method:
time: sum
component: sum
"sum-carbon":
path: "builtin"
method: Sum
config:
input-parameters:
- carbon-operational
- embodied-carbon
output-parameter: carbon
parameter-metadata:
inputs:
carbon-operational:
description: Operational carbon footprint
unit: gCO2eq
aggregation-method:
time: sum
component: sum
embodied-carbon:
description: Embodied carbon footprint
unit: gCO2eq
aggregation-method:
time: sum
component: sum
outputs:
carbon:
description: Total carbon footprint
unit: gCO2eq
aggregation-method:
time: sum
component: sum
time-sync:
method: TimeSync
path: "builtin"
config:
start-time: "2023-12-12T00:00:00.000Z"
end-time: "2023-12-12T00:01:00.000Z"
interval: 5
allow-padding: true
parameter-metadata:
inputs:
timestamp:
unit: RFC3339
description: refers to the time of occurrence of the input
aggregation-method:
time: none
component: none
duration:
unit: seconds
description: refers to the duration of the input
aggregation-method:
time: sum
component: sum
cloud/instance-type:
unit: none
description: type of Cloud Instance name used in the cloud provider APIs
aggregation-method:
time: copy
component: copy
cloud/region:
unit: none
description: region cloud instance
aggregation-method:
time: copy
component: copy
time-reserved:
unit: seconds
description: time reserved for a component
aggregation-method:
time: avg
component: avg
network/energy:
description: "Energy consumed by the Network of the component"
unit: "kWh"
aggregation-method:
time: sum
component: sum
tree:
children:
child-0:
defaults:
cpu/thermal-design-power: 100
grid/carbon-intensity: 800
device/emissions-embodied: 1533.120 # gCO2eq
time-reserved: 3600 # 1hr in seconds
device/expected-lifespan: 94608000 # 3 years in seconds
vcpus-allocated: 1
vcpus-total: 8
pipeline:
compute:
- interpolate
- cpu-factor-to-wattage
- wattage-times-duration
- wattage-to-energy-kwh
- calculate-vcpu-ratio
- correct-cpu-energy-for-vcpu-ratio
- sci-embodied
- operational-carbon
- sum-carbon
- time-sync
- sci
inputs:
- timestamp: "2023-12-12T00:00:00.000Z"
cloud/instance-type: A1
cloud/region: uk-west
duration: 1
cpu/utilization: 50
network/energy: 0.000001
requests: 50
- timestamp: "2023-12-12T00:00:01.000Z"
duration: 5
cpu/utilization: 20
cloud/instance-type: A1
cloud/region: uk-west
network/energy: 0.000001
requests: 60
- timestamp: "2023-12-12T00:00:06.000Z"
duration: 7
cpu/utilization: 15
cloud/instance-type: A1
cloud/region: uk-west
network/energy: 0.000001
requests: 70
- timestamp: "2023-12-12T00:00:13.000Z"
duration: 30
cloud/instance-type: A1
cloud/region: uk-west
cpu/utilization: 15
network/energy: 0.000001
requests: 55
child-1:
defaults:
cpu/thermal-design-power: 100
grid/carbon-intensity: 800
device/emissions-embodied: 1533.120 # gCO2eq
time-reserved: 3600 # 1hr in seconds
device/expected-lifespan: 94608000 # 3 years in seconds
vcpus-allocated: 1
vcpus-total: 8
pipeline:
compute:
- interpolate
- cpu-factor-to-wattage
- wattage-times-duration
- wattage-to-energy-kwh
- calculate-vcpu-ratio
- correct-cpu-energy-for-vcpu-ratio
- sci-embodied
- operational-carbon
- sum-carbon
- time-sync
- sci
inputs:
- timestamp: "2023-12-12T00:00:00.000Z"
cloud/instance-type: A1
cloud/region: uk-west
duration: 1
cpu/utilization: 50
network/energy: 0.000001
requests: 10
- timestamp: "2023-12-12T00:00:01.000Z"
duration: 5
cpu/utilization: 20
cloud/instance-type: A1
cloud/region: uk-west
network/energy: 0.000001
requests: 90
- timestamp: "2023-12-12T00:00:06.000Z"
duration: 7
cpu/utilization: 15
cloud/instance-type: A1
cloud/region: uk-west
network/energy: 0.000001
requests: 30
- timestamp: "2023-12-12T00:00:13.000Z"
duration: 30
cloud/instance-type: A1
cloud/region: uk-west
cpu/utilization: 15
network/energy: 0.000001
requests: 22
child-2:
children:
child-2-0:
defaults:
cpu/thermal-design-power: 100
grid/carbon-intensity: 800
device/emissions-embodied: 1533.120 # gCO2eq
time-reserved: 3600 # 1hr in seconds
device/expected-lifespan: 94608000 # 3 years in seconds
vcpus-allocated: 1
vcpus-total: 8
pipeline:
compute:
- interpolate
- cpu-factor-to-wattage
- wattage-times-duration
- wattage-to-energy-kwh
- calculate-vcpu-ratio
- correct-cpu-energy-for-vcpu-ratio
- sci-embodied
- operational-carbon
- sum-carbon
- time-sync
- sci
inputs:
- timestamp: "2023-12-12T00:00:00.000Z"
cloud/instance-type: A1
cloud/region: uk-west
duration: 1
cpu/utilization: 50
network/energy: 0.000001
requests: 50
- timestamp: "2023-12-12T00:00:01.000Z"
duration: 5
cpu/utilization: 20
cloud/instance-type: A1
cloud/region: uk-west
network/energy: 0.000001
requests: 65
- timestamp: "2023-12-12T00:00:06.000Z"
duration: 7
cpu/utilization: 15
cloud/instance-type: A1
cloud/region: uk-west
network/energy: 0.000001
requests: 80
- timestamp: "2023-12-12T00:00:13.000Z"
duration: 30
cloud/instance-type: A1
cloud/region: uk-west
cpu/utilization: 15
network/energy: 0.000001
requests: 40
child-2-1:
defaults:
cpu/thermal-design-power: 100
grid/carbon-intensity: 800
device/emissions-embodied: 1533.120 # gCO2eq
time-reserved: 3600 # 1hr in seconds
device/expected-lifespan: 94608000 # 3 years in seconds
vcpus-allocated: 1
vcpus-total: 8
pipeline:
compute:
- interpolate
- cpu-factor-to-wattage
- wattage-times-duration
- wattage-to-energy-kwh
- calculate-vcpu-ratio
- correct-cpu-energy-for-vcpu-ratio
- sci-embodied
- operational-carbon
- sum-carbon
- time-sync
- sci
inputs:
- timestamp: "2023-12-12T00:00:00.000Z"
cloud/instance-type: A1
cloud/region: uk-west
duration: 1
cpu/utilization: 50
network/energy: 0.000001
requests: 50
- timestamp: "2023-12-12T00:00:01.000Z"
duration: 5
cpu/utilization: 20
cloud/instance-type: A1
cloud/region: uk-west
network/energy: 0.000001
requests: 50
- timestamp: "2023-12-12T00:00:06.000Z"
duration: 7
cpu/utilization: 15
cloud/instance-type: A1
cloud/region: uk-west
network/energy: 0.000001
requests: 60
- timestamp: "2023-12-12T00:00:13.000Z"
duration: 30
cloud/instance-type: A1
cloud/region: uk-west
cpu/utilization: 15
network/energy: 0.000001
requests: 40