@grnsft/if 0.3.4 → 0.4.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/.commitlintrc.js +0 -1
  2. package/.lintstagedrc.js +6 -0
  3. package/README.md +12 -8
  4. package/Refactor-migration-guide.md +6 -6
  5. package/github-processes.md +16 -42
  6. package/manifests/bugs/aggregation-error-wrong-metric.yml +6 -6
  7. package/manifests/bugs/azure-importer-ignoring-defaults.yml +3 -3
  8. package/manifests/bugs/azure-importer-incorrect-calculation.yml +2 -2
  9. package/manifests/bugs/mock-observations-failure-duration-is-zero.yml +34 -0
  10. package/manifests/bugs/pipeline-error-uninitialized-plugin.yml +1 -1
  11. package/manifests/bugs/pipeline-ordering-error.yml +6 -6
  12. package/manifests/bugs/sci-embodied-missing-resources-total.yml +23 -0
  13. package/manifests/examples/generics.yml +3 -3
  14. package/manifests/examples/instance-metadata.yml +36 -0
  15. package/manifests/examples/mock-cpu-util-to-carbon.yml +3 -3
  16. package/manifests/examples/nesting.yml +37 -10
  17. package/manifests/examples/pipeline-teads-sci.yml +17 -9
  18. package/manifests/examples/pipeline-with-aggregate.yml +24 -9
  19. package/manifests/examples/pipeline-with-mocks.yml +26 -9
  20. package/manifests/examples/sci.yml +131 -0
  21. package/manifests/examples/teads-curve.yml +78 -0
  22. package/manifests/features/aggregate-failure-inalid-metrics.yml +43 -0
  23. package/manifests/features/aggregate-failure-missing-metric-in-inputs.yml +43 -0
  24. package/manifests/integrations/cloud-metadata-divide-boavizta.yml +1 -1
  25. package/manifests/integrations/mock-obs-group-by-cloud-meta.yml +51 -0
  26. package/manifests/integrations/mock-obs-groupby.yml +2 -2
  27. package/manifests/integrations/mock-obs-time-sync.yml +1 -1
  28. package/manifests/plugins/cloud-metadata/failure-invalid-instance-type.yaml +21 -0
  29. package/manifests/plugins/cloud-metadata/failure-invalid-vendor.yaml +1 -1
  30. package/manifests/plugins/cloud-metadata/failure-missing-cloud-vendor.yml +21 -0
  31. package/manifests/plugins/cloud-metadata/success.yml +1 -1
  32. package/manifests/plugins/coefficient/failure-invalid-config-input-param.yml +1 -1
  33. package/manifests/plugins/coefficient/failure-output-param-is-null.yaml +24 -0
  34. package/manifests/plugins/coefficient/success.yml +1 -1
  35. package/manifests/plugins/csv-lookup/failure-missing-column.yml +26 -0
  36. package/manifests/plugins/csv-lookup/failure-missing-output.yml +26 -0
  37. package/manifests/plugins/csv-lookup/success-renaming.yml +26 -0
  38. package/manifests/plugins/csv-lookup/success.yml +26 -0
  39. package/manifests/plugins/divide/failure-denominator-equal-zero.yml +39 -0
  40. package/manifests/plugins/divide/failure-invalid-config-denominator.yml +1 -1
  41. package/manifests/plugins/divide/failure-missing-numerator.yml +39 -0
  42. package/manifests/plugins/divide/success.yml +2 -2
  43. package/manifests/plugins/groupby/failure-missing-cloud-instance-type.yml +49 -0
  44. package/manifests/plugins/interpolation/interpolation.yml +24 -0
  45. package/manifests/plugins/mock-observations/failure-invalid-config-cpu-range.yml +1 -1
  46. package/manifests/plugins/mock-observations/failure-invalid-memory-utilization-range.yml +34 -0
  47. package/manifests/plugins/mock-observations/failure-missing-timestamp-from-param.yml +34 -0
  48. package/manifests/plugins/mock-observations/success.yml +2 -2
  49. package/manifests/plugins/multiply/failure-input-parameter-is-missing.yml +1 -1
  50. package/manifests/plugins/multiply/success-with-multiple-inputs.yml +32 -0
  51. package/manifests/plugins/multiply/success.yml +3 -3
  52. package/manifests/plugins/regex/failure-missing-input-param.yml +1 -1
  53. package/manifests/plugins/regex/failure-not-matching-with-regex.yml +24 -0
  54. package/manifests/plugins/regex/success.yml +2 -2
  55. package/manifests/plugins/sci/failure-invalid-config-value.yml +2 -3
  56. package/manifests/plugins/sci/failure-missing-input-param.yml +27 -0
  57. package/manifests/plugins/sci/success.yml +5 -4
  58. package/manifests/plugins/{sci-m → sci-embodied}/failure-invalid-default-emission-value.yml +5 -6
  59. package/manifests/plugins/sci-embodied/failure-missing-expected-lifespan.yml +23 -0
  60. package/manifests/plugins/{sci-m → sci-embodied}/success.yml +5 -6
  61. package/manifests/plugins/shell/failure-invalid-command.yml +1 -1
  62. package/manifests/plugins/shell/success.yml +1 -2
  63. package/manifests/plugins/sum/failure-missing-input-param.yml +1 -1
  64. package/manifests/plugins/sum/failure-missing-output-param.yml +28 -0
  65. package/manifests/plugins/sum/success.yml +1 -1
  66. package/manifests/plugins/tdp-finder/failure-unsupported-physical-processor.yml +19 -0
  67. package/manifests/plugins/time-sync/failure-missing-global-config.yml +34 -0
  68. package/package.json +10 -2
  69. package/src/builtins/README.md +5 -5
  70. package/src/builtins/coefficient/README.md +92 -0
  71. package/src/builtins/csv-lookup/README.md +142 -0
  72. package/src/builtins/divide/README.md +95 -0
  73. package/src/builtins/exponent/README.md +97 -0
  74. package/src/builtins/interpolation/README.md +168 -0
  75. package/src/builtins/mock-observations/README.md +97 -0
  76. package/src/builtins/multiply/README.md +94 -0
  77. package/src/builtins/regex/README.md +91 -0
  78. package/src/builtins/sci/README.md +89 -0
  79. package/src/builtins/sci-embodied/README.md +110 -0
  80. package/src/builtins/shell/README.md +130 -0
  81. package/src/builtins/subtract/README.md +94 -0
  82. package/src/builtins/sum/README.md +91 -0
package/.commitlintrc.js CHANGED
@@ -27,7 +27,6 @@ module.exports = {
27
27
  'package',
28
28
  'config',
29
29
  'mocks',
30
- 'examples',
31
30
  '.github',
32
31
  '.husky',
33
32
  'scripts',
@@ -0,0 +1,6 @@
1
+ module.exports = {
2
+ '*.ts': [
3
+ 'gts lint',
4
+ ],
5
+ 'package.json': 'fixpack',
6
+ }
package/README.md CHANGED
@@ -1,38 +1,36 @@
1
1
  # Impact Framework
2
2
 
3
+ [![Node.js CI](https://github.com/Green-Software-Foundation/if/actions/workflows/nodejs-ci.yml/badge.svg)](https://github.com/Green-Software-Foundation/if/actions/workflows/nodejs-ci.yml)
3
4
 
4
5
  > [!IMPORTANT]
5
6
  > Incubation Project: This project is an incubation project being run inside the Green Software Foundation; as such, we DON’T recommend using it in any critical use case. Incubation projects are experimental, offer no support guarantee, have minimal governance and process, and may be retired at any moment. This project may one day Graduate, in which case this disclaimer will be removed.
6
7
 
7
8
  **Note** We have recently (March 2024) refactored the IF codebase and introduced some changes affecting both users and developers. You can read our migration guide [HERE](./Refactor-migration-guide.md) to help you update to the latest version!
8
9
 
9
-
10
10
  [Impact Framework](https://greensoftwarefoundation.atlassian.net/wiki/spaces/~612dd45e45cd76006a84071a/pages/17072136/Opensource+Impact+Engine+Framework) (IF) is an [Incubation](https://oc.greensoftware.foundation/project-lifecycle.html#incubation) project from the [Open Source Working Group](https://greensoftwarefoundation.atlassian.net/wiki/spaces/~612dd45e45cd76006a84071a/pages/852049/Open+Source+Working+Group) in the [Green Software Foundation](https://greensoftware.foundation/).
11
11
 
12
-
13
12
  **Our documentation is online at [if.greensoftware.foundation](https://if.greensoftware.foundation/)**
14
13
 
15
-
16
14
  **IF** is a framework to **M**odel, **M**easure, si**M**ulate and **M**onitor the environmental impacts of software
17
15
 
18
16
  Modern applications are composed of many smaller pieces of software (components) running on many different environments, for example, private cloud, public cloud, bare-metal, virtualized, containerized, mobile, laptops, and desktops.
19
17
 
20
- Every environment requires a different plugin of measurement, and there is no single solution you can use to calculate the environmental impacts for all components across all environments.
18
+ Every environment requires a different plugin of measurement, and there is no single solution you can use to calculate the environmental impacts for all components across all environments.
21
19
 
22
20
  The friction to measuring software emissions isn't that we need to know how, it's that we run software on many things and each thing has several different ways to measure.
23
21
 
24
22
  Read the [specification and design docs](https://if.greensoftware.foundation) to begin.
25
23
 
26
-
27
24
  ## Get started
28
25
 
29
- The first thing to understand is that IF is a framework for running plugins. This means that in order to do some calculations, you need to load some plugins from some external resource. We provide a [standard library of plugins](https://github.com/Green-Software-Foundation/if-plugins) and a repository of [community plugins](https://github.com/Green-Software-Foundation/if-unofficial-plugins) to get you started.
26
+ The first thing to understand is that IF is a framework for running plugins. This means that in order to do some calculations, you need to load some plugins from some external resource. We provide a [standard library of plugins](https://github.com/Green-Software-Foundation/if-plugins) and a repository of [community plugins](https://github.com/Green-Software-Foundation/if-unofficial-plugins) to get you started.
30
27
 
31
28
  Start by installing framework itself:
32
29
 
33
30
  ```sh
34
31
  npm install -g "@grnsft/if"
35
32
  ```
33
+
36
34
  Then installing some plugins:
37
35
 
38
36
  ```sh
@@ -50,6 +48,7 @@ ie -m <path-to-your-manifest-file>
50
48
  ```
51
49
 
52
50
  Note that above command will not print the final output. In order to print the final output to the console, run `if` using the optional stdout argument:
51
+
53
52
  ```sh
54
53
  ie --manifest <path-to-your-manifest-file> --stdout
55
54
  ## or using aliases
@@ -74,6 +73,12 @@ ie -m <path-to-your-manifest-file> -o <your-savepath>
74
73
 
75
74
  The `ie` CLI tool will configure and run the plugins defined in your input `yaml` (`manifest`) and return the results as an output `yaml` (`output`).
76
75
 
76
+ Use the `debug` command if you want to diagnose and fix errors in your plugin:
77
+
78
+ ```sh
79
+ ie --manifest <path-to-your-manifest-file> --debug
80
+ ```
81
+
77
82
  Use the `help` command if you need guidance about the available commands
78
83
 
79
84
  ```sh
@@ -92,10 +97,9 @@ Watch this video to learn how to create and run a `manifest`.
92
97
 
93
98
  [![Watch the walk-through video](https://i3.ytimg.com/vi/R-6eDM8AsvY/maxresdefault.jpg)](https://youtu.be/GW37Qd4AQbU)
94
99
 
95
-
96
100
  ## Contributing
97
101
 
98
- To contribute to IF, please fork this repository and raise a pull request from your fork.
102
+ To contribute to IF, please fork this repository and raise a pull request from your fork.
99
103
 
100
104
  You can check our issue board for issues tagged `help-wanted`. These are issues that are not currently, actively being worked on by the core team but are well-scoped enough for someone to pick up. We recommend commenting on the issue to start a chat with the core team, then start working on the issue when you have been assigned to it. This process helps to ensure your work is aligned with our roadmap and makes it much more likely that your changes will get merged compared to unsolicited PRs.
101
105
 
@@ -116,9 +116,9 @@ There have also been some changes to the structure of manifest files. Some of th
116
116
  For example:
117
117
 
118
118
  ```yaml
119
- "sci-m":
120
- path: "@grnsft/if-plugins"
121
- method: SciM
119
+ "sci-embodied":
120
+ path: "builtin"
121
+ method: SciEmbodied
122
122
  ```
123
123
 
124
124
  - **Global config**
@@ -150,7 +150,7 @@ There have also been some changes to the structure of manifest files. Some of th
150
150
  pipeline:
151
151
  - teads-curve
152
152
  - sci-e
153
- - sci-m
153
+ - sci-embodied
154
154
  - sci-o
155
155
  - time-sync
156
156
  - sci
@@ -174,7 +174,7 @@ There have also been some changes to the structure of manifest files. Some of th
174
174
  pipeline:
175
175
  - teads-curve
176
176
  - sci-e
177
- - sci-m
177
+ - sci-embodied
178
178
  - sci-o
179
179
  - time-sync
180
180
  - sci
@@ -254,7 +254,7 @@ tree:
254
254
  pipeline:
255
255
  - teads-curve
256
256
  - sci-e
257
- - sci-m
257
+ - sci-embodied
258
258
  - sci-o
259
259
  - time-sync
260
260
  - group-by
@@ -3,7 +3,7 @@
3
3
 
4
4
  - [`if`](https://github.com/Green-Software-Foundation/if)
5
5
  - source code for the IF
6
- - [`if-plugins`](https://github.com/Green-Software-Foundation/if-plugins)
6
+ - [`if-plugins`](https://github.com/Green-Software-Foundation/if-plugins) **DEPRECATED**
7
7
  - source code for standard library of plugins
8
8
  - IF core team commit to maintaining these plugins
9
9
  - [`if-unofficial-plugins`](https://github.com/Green-Software-Foundation/if-unofficial-plugins)
@@ -110,47 +110,21 @@ We intend to respond to new PRs and issues within 3 days of the ticket being ope
110
110
 
111
111
  ## Labels
112
112
 
113
- ```
114
- //review status labels
115
- awaiting-triage
116
- triage-pass
117
- awaiting-review
118
- review-pass
119
- awaiting-qa
120
- qa-pass
121
- changes-needed
122
-
123
- //change type labels
124
- fix
125
- feature
126
- docs
127
- package
128
- other
129
-
130
- // size labels
131
- small
132
- medium
133
- large
134
-
135
- // priority labels
136
- high-priority
137
- med-priority
138
- low-priority
139
-
140
- //delay explanation labels
141
- abandoned
142
- blocked
143
- backlogged
144
-
145
- // other labels
146
- project-management
147
- agenda
148
- discussion
149
- help-wanted
150
- good-first-issue
151
- ```
152
-
153
- Each PR is expected to have one label from each category (except `other`) assigned to it at all times.
113
+ | Label | Used by | Description |
114
+ | ---------------- | --------- | ------------------------------------------------------------------------------------------ |
115
+ | blocked | all | The issue is blocked and cannot proceed. |
116
+ | bug | all | Error, flaw or fault |
117
+ | core-only | all | This issue is reserved for the IF core team only |
118
+ | draft | all | The issue is still being written, no need to respond or action on anything. |
119
+ | good-first-issue | all | This issue is a good one for someone looking to get involved with this project/initiative. |
120
+ | help-wanted | all | This issue can be picked up by anyone in the community |
121
+ | needs-response | all | The issue has stalled because someone isn’t responding. |
122
+ | agenda | core team | Use for any meeting agenda or minutes issue. |
123
+ | EPIC | core team | Used to denote an issue that represents a whole epic |
124
+ | initiative | core team | A helper label, needed for GSF internal processes |
125
+ | i-summary | core team | A helper label, needed for GSF internal processes |
126
+ | i-milestone | core team | A helper label, needed for GSF internal processes |
127
+ | project-update | core team | Used to flag project progress updates |
154
128
 
155
129
 
156
130
  ## Releases
@@ -15,14 +15,14 @@ initialize:
15
15
  "sci-e":
16
16
  path: "@grnsft/if-plugins"
17
17
  method: SciE
18
- "sci-m":
19
- path: "@grnsft/if-plugins"
20
- method: SciM
18
+ "sci-embodied":
19
+ path: "builtin"
20
+ method: SciEmbodied
21
21
  "sci-o":
22
22
  path: "@grnsft/if-plugins"
23
23
  method: SciO
24
24
  "sci":
25
- path: "@grnsft/if-plugins"
25
+ path: "builtin"
26
26
  method: Sci
27
27
  global-config:
28
28
  functional-unit: "requests"
@@ -44,7 +44,7 @@ tree:
44
44
  pipeline:
45
45
  - teads-curve
46
46
  - sci-e
47
- - sci-m
47
+ - sci-embodied
48
48
  - sci-o
49
49
  - time-sync
50
50
  - sci
@@ -87,7 +87,7 @@ tree:
87
87
  pipeline:
88
88
  - teads-curve
89
89
  - sci-e
90
- - sci-m
90
+ - sci-embodied
91
91
  - sci-o
92
92
  - time-sync
93
93
  - sci
@@ -15,14 +15,14 @@ initialize:
15
15
  method: AzureImporter
16
16
  path: "@grnsft/if-unofficial-plugins"
17
17
  "try-defaults-1":
18
- path: "@grnsft/if-plugins"
18
+ path: "builtin"
19
19
  method: Coefficient
20
20
  global-config:
21
21
  input-parameter: grid/carbon-intensity
22
22
  coefficient: 0.1
23
23
  output-parameter: grid/carbon-intensity
24
24
  "try-defaults-2":
25
- path: "@grnsft/if-plugins"
25
+ path: "builtin"
26
26
  method: Coefficient
27
27
  global-config:
28
28
  input-parameter: network/energy
@@ -58,4 +58,4 @@ tree:
58
58
  inputs:
59
59
  - timestamp: "2024-04-04T08:00:00.001Z"
60
60
  duration: 3600
61
- energy: 100
61
+ energy: 100
@@ -7,14 +7,14 @@ initialize:
7
7
  path: '@grnsft/if-unofficial-plugins'
8
8
  method: AzureImporter
9
9
  try-defaults-1:
10
- path: '@grnsft/if-plugins'
10
+ path: 'builtin'
11
11
  method: Coefficient
12
12
  global-config:
13
13
  input-parameter: grid/carbon-intensity
14
14
  coefficient: 0.1
15
15
  output-parameter: grid/carbon-intensity
16
16
  try-defaults-2:
17
- path: '@grnsft/if-plugins'
17
+ path: 'builtin'
18
18
  method: Coefficient
19
19
  global-config:
20
20
  input-parameter: network/energy
@@ -0,0 +1,34 @@
1
+ name: mock-observation-demo
2
+ description: a manifest demonstrating how to use the mock observations feature
3
+ tags:
4
+ initialize:
5
+ outputs: ['yaml']
6
+ plugins:
7
+ mock-observations:
8
+ kind: plugin
9
+ method: MockObservations
10
+ path: "builtin"
11
+ global-config:
12
+ timestamp-from: 2023-07-06T00:00
13
+ timestamp-to: 2023-07-06T00:10
14
+ duration: 0
15
+ components:
16
+ - cloud/instance-type: A1
17
+ - cloud/instance-type: B1
18
+ generators:
19
+ common:
20
+ region: uk-west
21
+ common-key: common-val
22
+ randint:
23
+ cpu/utilization:
24
+ min: 1
25
+ max: 99
26
+ memory/utilization:
27
+ min: 1
28
+ max: 99
29
+ tree:
30
+ children:
31
+ child:
32
+ pipeline:
33
+ - mock-observations
34
+ inputs:
@@ -2,13 +2,13 @@ name: pipeline-uninitialized-plugin-error
2
2
  description: a negative test case that fails due to an uninitialized plugin being invoked in a pipeline
3
3
  tags:
4
4
  initialize:
5
+ # outputs: ['yaml']
5
6
  plugins:
6
7
  teads-curve:
7
8
  path: '@grnsft/if-unofficial-plugins'
8
9
  method: TeadsCurve
9
10
  global-config:
10
11
  interpolation: spline
11
- outputs: ['yaml']
12
12
  tree:
13
13
  children:
14
14
  child-0:
@@ -9,21 +9,21 @@ initialize:
9
9
  global-config:
10
10
  interpolation: spline
11
11
  "sum":
12
- path: "@grnsft/if-plugins"
12
+ path: "builtin"
13
13
  method: Sum
14
14
  global-config:
15
15
  input-parameters:
16
16
  - cpu/energy
17
17
  - network/energy
18
18
  output-parameter: energy
19
- "sci-m":
20
- path: "@grnsft/if-plugins"
21
- method: SciM
19
+ "sci-embodied":
20
+ path: "builtin"
21
+ method: SciEmbodied
22
22
  "sci-o":
23
23
  path: "@grnsft/if-plugins"
24
24
  method: SciO
25
25
  "sci":
26
- path: "@grnsft/if-plugins"
26
+ path: "builtin"
27
27
  method: Sci
28
28
  global-config:
29
29
  functional-unit: ""
@@ -43,7 +43,7 @@ tree:
43
43
  - teads-curve
44
44
  - sci-o
45
45
  - sum
46
- - sci-m
46
+ - sci-embodied
47
47
  - time-sync
48
48
  - sci
49
49
  config:
@@ -0,0 +1,23 @@
1
+ name: sci-embodied
2
+ description: receiving incorrect error message when running sci-embodied without `resources-total` issue #716
3
+ tags:
4
+ initialize:
5
+ #outputs: ['yaml']
6
+ plugins:
7
+ "sci-embodied": # a model that calculates m from te, tir, el, rr and rtor
8
+ method: SciEmbodied
9
+ path: "builtin"
10
+ tree:
11
+ children:
12
+ child:
13
+ pipeline:
14
+ - sci-embodied # duration & config -> embodied
15
+ defaults:
16
+ device/emissions-embodied: 1533.120 # gCO2eq
17
+ time-reserved: 3600 # 1hr in seconds
18
+ device/expected-lifespan: 94608000 # 3 years in seconds
19
+ resources-reserved: 1
20
+ # resources-total: 8
21
+ inputs:
22
+ - timestamp: 2023-07-06T00:00
23
+ duration: 3600
@@ -9,7 +9,7 @@ initialize:
9
9
  global-config:
10
10
  interpolation: spline
11
11
  "sum":
12
- path: "@grnsft/if-plugins"
12
+ path: "builtin"
13
13
  method: Sum
14
14
  global-config:
15
15
  input-parameters:
@@ -17,14 +17,14 @@ initialize:
17
17
  - network/energy
18
18
  output-parameter: energy-sum
19
19
  "coefficient":
20
- path: "@grnsft/if-plugins"
20
+ path: "builtin"
21
21
  method: Coefficient
22
22
  global-config:
23
23
  input-parameter: energy
24
24
  coefficient: 2
25
25
  output-parameter: energy-doubled
26
26
  "multiply":
27
- path: "@grnsft/if-plugins"
27
+ path: "builtin"
28
28
  method: Multiply
29
29
  global-config:
30
30
  input-parameters: ["cpu/utilization", "duration"]
@@ -0,0 +1,36 @@
1
+ name: csv-demo
2
+ description: null
3
+ tags: null
4
+ initialize:
5
+ plugins:
6
+ cloud-instance-metadata:
7
+ path: builtin
8
+ method: CSVLookup
9
+ global-config:
10
+ filepath: >-
11
+ https://raw.githubusercontent.com/Green-Software-Foundation/if-data/main/cloud-metdata-azure-instances.csv
12
+ query:
13
+ instance-class: cloud/instance-type
14
+ output: '*'
15
+ extract-processor-name:
16
+ path: builtin
17
+ method: Regex
18
+ global-config:
19
+ parameter: cpu-model-name
20
+ match: /^([^,])+/g
21
+ output: cpu/name
22
+ outputs:
23
+ - yaml
24
+ tree:
25
+ children:
26
+ child:
27
+ pipeline:
28
+ - cloud-instance-metadata
29
+ - extract-processor-name
30
+ inputs:
31
+ - timestamp: 2023-08-06T00:00
32
+ duration: 3600
33
+ cpu/energy: 0.001
34
+ cloud/provider: gcp
35
+ cloud/region: asia-east
36
+ cloud/instance-type: Standard_A1_v2
@@ -1,13 +1,13 @@
1
1
  name: mock-cpu-util-to-carbon
2
2
  description: a complete pipeline that starts with mocked CPU utilization data and outputs operational carbon in gCO2eq
3
3
  initialize:
4
- outputs: ['yaml']
4
+ #outputs: ['yaml']
5
5
  plugins:
6
6
  group-by:
7
7
  path: 'builtin'
8
8
  method: GroupBy
9
9
  operational-carbon:
10
- path: '@grnsft/if-plugins'
10
+ path: 'builtin'
11
11
  method: Multiply
12
12
  global-config:
13
13
  input-parameters: ['cpu/energy', 'grid/carbon-intensity']
@@ -24,7 +24,7 @@ initialize:
24
24
  method: CloudMetadata
25
25
  path: "@grnsft/if-plugins"
26
26
  mock-observations:
27
- path: '@grnsft/if-plugins'
27
+ path: 'builtin'
28
28
  method: MockObservations
29
29
  global-config:
30
30
  timestamp-from: '2024-03-05T00:00:00.000Z'
@@ -19,25 +19,32 @@ initialize:
19
19
  global-config:
20
20
  interpolation: spline
21
21
  sum:
22
- path: "@grnsft/if-plugins"
22
+ path: "builtin"
23
23
  method: Sum
24
24
  global-config:
25
25
  input-parameters:
26
26
  - cpu/energy
27
27
  - network/energy
28
28
  output-parameter: energy
29
- sci-m:
30
- path: "@grnsft/if-plugins"
31
- method: SciM
29
+ sci-embodied:
30
+ path: "builtin"
31
+ method: SciEmbodied
32
32
  sci-o:
33
33
  path: "@grnsft/if-plugins"
34
34
  method: SciO
35
35
  sci:
36
- path: "@grnsft/if-plugins"
36
+ path: "builtin"
37
37
  method: Sci
38
38
  global-config:
39
39
  functional-unit: "requests"
40
- functional-unit-time: "1 minute"
40
+ "sum-carbon":
41
+ path: "builtin"
42
+ method: Sum
43
+ global-config:
44
+ input-parameters:
45
+ - carbon-operational
46
+ - carbon-embodied
47
+ output-parameter: carbon
41
48
  time-sync:
42
49
  method: TimeSync
43
50
  path: "builtin"
@@ -60,8 +67,9 @@ tree:
60
67
  pipeline:
61
68
  - teads-curve
62
69
  - sum
63
- - sci-m
70
+ - sci-embodied
64
71
  - sci-o
72
+ - sum-carbon
65
73
  - time-sync
66
74
  - sci
67
75
  inputs:
@@ -71,24 +79,28 @@ tree:
71
79
  duration: 1
72
80
  cpu/utilization: 50
73
81
  network/energy: 0.000001
82
+ requests: 50
74
83
  - timestamp: "2023-12-12T00:00:01.000Z"
75
84
  duration: 5
76
85
  cpu/utilization: 20
77
86
  cloud/instance-type: A1
78
87
  cloud/region: uk-west
79
88
  network/energy: 0.000001
89
+ requests: 60
80
90
  - timestamp: "2023-12-12T00:00:06.000Z"
81
91
  duration: 7
82
92
  cpu/utilization: 15
83
93
  cloud/instance-type: A1
84
94
  cloud/region: uk-west
85
95
  network/energy: 0.000001
96
+ requests: 70
86
97
  - timestamp: "2023-12-12T00:00:13.000Z"
87
98
  duration: 30
88
99
  cloud/instance-type: A1
89
100
  cloud/region: uk-west
90
101
  cpu/utilization: 15
91
102
  network/energy: 0.000001
103
+ requests: 55
92
104
  child-1:
93
105
  defaults:
94
106
  cpu/thermal-design-power: 100
@@ -101,8 +113,9 @@ tree:
101
113
  pipeline:
102
114
  - teads-curve
103
115
  - sum
104
- - sci-m
116
+ - sci-embodied
105
117
  - sci-o
118
+ - sum-carbon
106
119
  - time-sync
107
120
  - sci
108
121
  inputs:
@@ -112,24 +125,28 @@ tree:
112
125
  duration: 1
113
126
  cpu/utilization: 50
114
127
  network/energy: 0.000001
128
+ requests: 10
115
129
  - timestamp: "2023-12-12T00:00:01.000Z"
116
130
  duration: 5
117
131
  cpu/utilization: 20
118
132
  cloud/instance-type: A1
119
133
  cloud/region: uk-west
120
134
  network/energy: 0.000001
135
+ requests: 90
121
136
  - timestamp: "2023-12-12T00:00:06.000Z"
122
137
  duration: 7
123
138
  cpu/utilization: 15
124
139
  cloud/instance-type: A1
125
140
  cloud/region: uk-west
126
141
  network/energy: 0.000001
142
+ requests: 30
127
143
  - timestamp: "2023-12-12T00:00:13.000Z"
128
144
  duration: 30
129
145
  cloud/instance-type: A1
130
146
  cloud/region: uk-west
131
147
  cpu/utilization: 15
132
148
  network/energy: 0.000001
149
+ requests: 22
133
150
  child-2:
134
151
  children:
135
152
  child-2-0:
@@ -144,8 +161,9 @@ tree:
144
161
  pipeline:
145
162
  - teads-curve
146
163
  - sum
147
- - sci-m
164
+ - sci-embodied
148
165
  - sci-o
166
+ - sum-carbon
149
167
  - time-sync
150
168
  - sci
151
169
  inputs:
@@ -155,24 +173,28 @@ tree:
155
173
  duration: 1
156
174
  cpu/utilization: 50
157
175
  network/energy: 0.000001
176
+ requests: 50
158
177
  - timestamp: "2023-12-12T00:00:01.000Z"
159
178
  duration: 5
160
179
  cpu/utilization: 20
161
180
  cloud/instance-type: A1
162
181
  cloud/region: uk-west
163
182
  network/energy: 0.000001
183
+ requests: 65
164
184
  - timestamp: "2023-12-12T00:00:06.000Z"
165
185
  duration: 7
166
186
  cpu/utilization: 15
167
187
  cloud/instance-type: A1
168
188
  cloud/region: uk-west
169
189
  network/energy: 0.000001
190
+ requests: 80
170
191
  - timestamp: "2023-12-12T00:00:13.000Z"
171
192
  duration: 30
172
193
  cloud/instance-type: A1
173
194
  cloud/region: uk-west
174
195
  cpu/utilization: 15
175
196
  network/energy: 0.000001
197
+ requests: 40
176
198
  child-2-1:
177
199
  defaults:
178
200
  cpu/thermal-design-power: 100
@@ -185,8 +207,9 @@ tree:
185
207
  pipeline:
186
208
  - teads-curve
187
209
  - sum
188
- - sci-m
210
+ - sci-embodied
189
211
  - sci-o
212
+ - sum-carbon
190
213
  - time-sync
191
214
  - sci
192
215
  inputs:
@@ -196,21 +219,25 @@ tree:
196
219
  duration: 1
197
220
  cpu/utilization: 50
198
221
  network/energy: 0.000001
222
+ requests: 50
199
223
  - timestamp: "2023-12-12T00:00:01.000Z"
200
224
  duration: 5
201
225
  cpu/utilization: 20
202
226
  cloud/instance-type: A1
203
227
  cloud/region: uk-west
204
228
  network/energy: 0.000001
229
+ requests: 50
205
230
  - timestamp: "2023-12-12T00:00:06.000Z"
206
231
  duration: 7
207
232
  cpu/utilization: 15
208
233
  cloud/instance-type: A1
209
234
  cloud/region: uk-west
210
235
  network/energy: 0.000001
236
+ requests: 60
211
237
  - timestamp: "2023-12-12T00:00:13.000Z"
212
238
  duration: 30
213
239
  cloud/instance-type: A1
214
240
  cloud/region: uk-west
215
241
  cpu/utilization: 15
216
242
  network/energy: 0.000001
243
+ requests: 40