name: generics
description: >-
  a pipeline that does arbitrary calculations using our generic arithmetic
  builtins
tags: null
initialize:
  plugins:
    interpolate:
      path: builtin
      method: Interpolation
      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:
      path: builtin
      method: Multiply
      config:
        input-parameters:
          - cpu-factor
          - cpu/thermal-design-power
        output-parameter: cpu-wattage
    wattage-times-duration:
      path: builtin
      method: Multiply
      config:
        input-parameters:
          - cpu-wattage
          - duration
        output-parameter: cpu-wattage-times-duration
    wattage-to-energy-kwh:
      path: builtin
      method: Divide
      config:
        numerator: cpu-wattage-times-duration
        denominator: 3600000
        output: cpu-energy-raw
    calculate-vcpu-ratio:
      path: builtin
      method: Divide
      config:
        numerator: vcpus-total
        denominator: vcpus-allocated
        output: vcpu-ratio
    correct-cpu-energy-for-vcpu-ratio:
      path: builtin
      method: Divide
      config:
        numerator: cpu-energy-raw
        denominator: vcpu-ratio
        output: cpu-energy-kwh
    coefficient:
      path: builtin
      method: Coefficient
      config:
        input-parameter: cpu-energy-kwh
        coefficient: 2
        output-parameter: energy-doubled
    multiply:
      path: builtin
      method: Multiply
      config:
        input-parameters:
          - cpu/utilization
          - duration
        output-parameter: cpu-times-duration
execution:
  command: >-
    /Users/mariamkhalatova/.npm/_npx/1bf7c3c15bf47d04/node_modules/.bin/ts-node
    /Users/mariamkhalatova/Projects/UK/if/src/if-run/index.ts -m
    manifests/examples/pipelines/generics.yml -o
    manifests/outputs/pipelines/generics
  environment:
    if-version: 0.5.0
    os: macOS
    os-version: "14.5"
    node-version: 18.14.2
    date-time: 2024-07-17T20:30:54.004Z (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.10"
      - "@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.22.4
  status: success
tree:
  children:
    child-1:
      pipeline:
        compute:
          - interpolate
          - cpu-factor-to-wattage
          - wattage-times-duration
          - wattage-to-energy-kwh
          - calculate-vcpu-ratio
          - correct-cpu-energy-for-vcpu-ratio
          - coefficient
          - multiply
      defaults:
        cpu/thermal-design-power: 100
        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: 50
          network/energy: 10
          energy: 5
        - timestamp: "2023-12-12T00:00:01.000Z"
          duration: 5
          cpu/utilization: 20
          cloud/instance-type: A1
          cloud/region: uk-west
          network/energy: 10
          energy: 5
        - timestamp: "2023-12-12T00:00:06.000Z"
          duration: 7
          cpu/utilization: 15
          cloud/instance-type: A1
          cloud/region: uk-west
          network/energy: 10
          energy: 5
        - timestamp: "2023-12-12T00:00:13.000Z"
          duration: 30
          cloud/instance-type: A1
          cloud/region: uk-west
          cpu/utilization: 15
          network/energy: 10
          energy: 5
      outputs:
        - timestamp: "2023-12-12T00:00:00.000Z"
          cloud/instance-type: A1
          cloud/region: uk-west
          duration: 1
          cpu/utilization: 50
          network/energy: 10
          energy: 5
          cpu/thermal-design-power: 100
          vcpus-allocated: 1
          vcpus-total: 8
          cpu-factor: 0.75
          cpu-wattage: 75
          cpu-wattage-times-duration: 75
          cpu-energy-raw: 0.000020833333333333333
          vcpu-ratio: 8
          cpu-energy-kwh: 0.0000026041666666666666
          energy-doubled: 0.000005208333333333333
          cpu-times-duration: 50
        - timestamp: "2023-12-12T00:00:01.000Z"
          duration: 5
          cpu/utilization: 20
          cloud/instance-type: A1
          cloud/region: uk-west
          network/energy: 10
          energy: 5
          cpu/thermal-design-power: 100
          vcpus-allocated: 1
          vcpus-total: 8
          cpu-factor: 0.4275
          cpu-wattage: 42.75
          cpu-wattage-times-duration: 213.75
          cpu-energy-raw: 0.000059375
          vcpu-ratio: 8
          cpu-energy-kwh: 0.000007421875
          energy-doubled: 0.00001484375
          cpu-times-duration: 100
        - timestamp: "2023-12-12T00:00:06.000Z"
          duration: 7
          cpu/utilization: 15
          cloud/instance-type: A1
          cloud/region: uk-west
          network/energy: 10
          energy: 5
          cpu/thermal-design-power: 100
          vcpus-allocated: 1
          vcpus-total: 8
          cpu-factor: 0.37375
          cpu-wattage: 37.375
          cpu-wattage-times-duration: 261.625
          cpu-energy-raw: 0.00007267361111111111
          vcpu-ratio: 8
          cpu-energy-kwh: 0.000009084201388888889
          energy-doubled: 0.000018168402777777778
          cpu-times-duration: 105
        - timestamp: "2023-12-12T00:00:13.000Z"
          duration: 30
          cloud/instance-type: A1
          cloud/region: uk-west
          cpu/utilization: 15
          network/energy: 10
          energy: 5
          cpu/thermal-design-power: 100
          vcpus-allocated: 1
          vcpus-total: 8
          cpu-factor: 0.37375
          cpu-wattage: 37.375
          cpu-wattage-times-duration: 1121.25
          cpu-energy-raw: 0.00031145833333333335
          vcpu-ratio: 8
          cpu-energy-kwh: 0.00003893229166666667
          energy-doubled: 0.00007786458333333334
          cpu-times-duration: 450
