name: aggregation-error-wrong-metric
description: >-
  a negative test case that fails due to the aggregation feature being passed an
  incorrect metric
tags: null
aggregation:
  metrics:
    - dummy-param
  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
    cpu-factor-to-wattage:
      method: Multiply
      path: builtin
      config:
        input-parameters:
          - cpu-factor
          - cpu/thermal-design-power
        output-parameter: cpu-wattage
    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
    calculate-vcpu-ratio:
      method: Divide
      path: builtin
      config:
        numerator: vcpus-total
        denominator: vcpus-allocated
        output: vcpu-ratio
    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
    sci:
      path: builtin
      method: Sci
      config:
        functional-unit: requests
    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
execution:
  status: fail
  command: >-
    /Users/manushak/.npm/_npx/1bf7c3c15bf47d04/node_modules/.bin/ts-node
    /Users/manushak/Documents/Projects/Green-Software/if/src/if-run/index.ts -m
    manifests/outputs/bugs/aggregation-error-wrong-metric.yaml
  environment:
    if-version: 0.6.0
    os: macOS
    os-version: 14.6.1
    node-version: 18.20.4
    date-time: 2024-10-04T08:38:25.343Z (UTC)
    dependencies:
      - '@babel/core@7.22.10'
      - '@babel/preset-typescript@7.23.3'
      - '@commitlint/cli@18.6.0'
      - '@commitlint/config-conventional@18.6.0'
      - '@grnsft/if-core@0.0.25'
      - '@jest/globals@29.7.0'
      - '@types/jest@29.5.8'
      - '@types/js-yaml@4.0.9'
      - '@types/luxon@3.4.2'
      - '@types/node@20.9.0'
      - axios-mock-adapter@1.22.0
      - axios@1.7.2
      - cross-env@7.0.3
      - csv-parse@5.5.6
      - csv-stringify@6.4.6
      - fixpack@4.0.0
      - gts@5.2.0
      - husky@8.0.3
      - jest@29.7.0
      - js-yaml@4.1.0
      - lint-staged@15.2.2
      - luxon@3.4.4
      - release-it@16.3.0
      - rimraf@5.0.5
      - ts-command-line-args@2.5.1
      - ts-jest@29.1.1
      - typescript-cubic-spline@1.0.1
      - typescript@5.2.2
      - winston@3.11.0
      - zod@3.23.8
  error: >-
    MissingAggregationParamError: Aggregation metric dummy-param is not found in
    inputs[0].
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
          - time-sync
          - sci
      defaults:
        cpu/thermal-design-power: 100
        grid/carbon-intensity: 800
        device/emissions-embodied: 1533.12
        time-reserved: 3600
        device/expected-lifespan: 94608000
        vcpus-allocated: 1
        vcpus-total: 8
      inputs:
        - timestamp: '2023-12-12T00:00:00.000Z'
          cloud/instance-type: A1
          cloud/region: uk-west
          duration: 1
          cpu/utilization: 10
          requests: 100
        - timestamp: '2023-12-12T00:00:01.000Z'
          duration: 5
          cpu/utilization: 20
          cloud/instance-type: A1
          cloud/region: uk-west
          requests: 100
        - timestamp: '2023-12-12T00:00:06.000Z'
          duration: 7
          cpu/utilization: 15
          cloud/instance-type: A1
          cloud/region: uk-west
          requests: 100
        - timestamp: '2023-12-12T00:00:13.000Z'
          duration: 30
          cloud/instance-type: A1
          cloud/region: uk-west
          cpu/utilization: 15
          requests: 100
    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
          - time-sync
          - sci
      defaults:
        cpu/thermal-design-power: 100
        grid/carbon-intensity: 800
        device/emissions-embodied: 1533.12
        time-reserved: 3600
        device/expected-lifespan: 94608000
        vcpus-allocated: 1
        vcpus-total: 8
      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: 100
        - timestamp: '2023-12-12T00:00:06.000Z'
          duration: 7
          cpu/utilization: 40
          cloud/instance-type: A1
          cloud/region: uk-west
          requests: 100
        - timestamp: '2023-12-12T00:00:13.000Z'
          duration: 30
          cpu/utilization: 33
          cloud/instance-type: A1
          cloud/region: uk-west
          requests: 100
