UNPKG

@grnsft/if

Version:

Impact Framework

292 lines 8.49 kB
name: pipeline-with-aggregate description: a full pipeline with the aggregate feature enabled tags: 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: avg 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: inputs: vcpus-total: unit: count description: total number of vcpus available on a particular resource aggregation-method: time: copy component: copy vcpus-allocated: unit: count description: number of vcpus allocated to particular resource aggregation-method: time: copy component: copy 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 # factor to convert per time to per f.unit 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: outputs: carbon: unit: gCO2eq description: product of carbon 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 tree: children: child-1: pipeline: regroup: - cloud/region - cloud/instance-type 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 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-total: 8 vcpus-allocated: 1 inputs: - timestamp: "2023-12-12T00:00:00.000Z" cloud/instance-type: A1 cloud/region: uk-west duration: 1 cpu/utilization: 10 requests: 10 - timestamp: "2023-12-12T00:00:01.000Z" duration: 5 cpu/utilization: 20 cloud/instance-type: A1 cloud/region: uk-west requests: 5 - timestamp: "2023-12-12T00:00:06.000Z" duration: 7 cpu/utilization: 15 cloud/instance-type: A1 cloud/region: uk-west requests: 15 - timestamp: "2023-12-12T00:00:13.000Z" duration: 30 cloud/instance-type: A1 cloud/region: uk-west cpu/utilization: 15 requests: 30 child-2: pipeline: regroup: - cloud/region - cloud/instance-type 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 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-total: 8 vcpus-allocated: 1 inputs: - timestamp: "2023-12-12T00:00:00.000Z" duration: 1 cpu/utilization: 30 cloud/instance-type: A1 cloud/region: uk-west requests: 100 - timestamp: "2023-12-12T00:00:01.000Z" duration: 5 cpu/utilization: 28 cloud/instance-type: A1 cloud/region: uk-west requests: 150 - timestamp: "2023-12-12T00:00:06.000Z" duration: 7 cpu/utilization: 40 cloud/instance-type: A1 cloud/region: uk-west requests: 110 - timestamp: "2023-12-12T00:00:13.000Z" duration: 30 cpu/utilization: 33 cloud/instance-type: A1 cloud/region: uk-west requests: 180