@grnsft/if 0.3.4 → 0.4.0-beta.1

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 (259) 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/build/builtins/coefficient/index.d.ts +3 -0
  6. package/build/builtins/coefficient/index.js +51 -0
  7. package/build/builtins/coefficient/types.d.ts +5 -0
  8. package/build/builtins/coefficient/types.js +3 -0
  9. package/build/builtins/csv-lookup/index.d.ts +2 -0
  10. package/build/builtins/csv-lookup/index.js +181 -0
  11. package/build/builtins/divide/index.d.ts +2 -0
  12. package/build/builtins/divide/index.js +67 -0
  13. package/build/builtins/exponent/index.d.ts +3 -0
  14. package/build/builtins/exponent/index.js +72 -0
  15. package/build/builtins/exponent/types.d.ts +5 -0
  16. package/build/builtins/exponent/types.js +3 -0
  17. package/build/builtins/export-csv-raw.js +4 -1
  18. package/build/builtins/export-csv.js +4 -1
  19. package/build/builtins/export-log.js +4 -2
  20. package/build/builtins/export-yaml.js +4 -1
  21. package/build/builtins/index.d.ts +13 -0
  22. package/build/builtins/index.js +28 -2
  23. package/build/builtins/interpolation/index.d.ts +2 -0
  24. package/build/builtins/interpolation/index.js +146 -0
  25. package/build/builtins/interpolation/types.d.ts +5 -0
  26. package/build/builtins/interpolation/types.js +10 -0
  27. package/build/builtins/mock-observations/helpers/common-generator.d.ts +3 -0
  28. package/build/builtins/mock-observations/helpers/common-generator.js +32 -0
  29. package/build/builtins/mock-observations/helpers/rand-int-generator.d.ts +3 -0
  30. package/build/builtins/mock-observations/helpers/rand-int-generator.js +58 -0
  31. package/build/builtins/mock-observations/index.d.ts +3 -0
  32. package/build/builtins/mock-observations/index.js +116 -0
  33. package/build/builtins/mock-observations/interfaces/index.d.ts +6 -0
  34. package/build/builtins/mock-observations/interfaces/index.js +3 -0
  35. package/build/builtins/mock-observations/types.d.ts +13 -0
  36. package/build/builtins/mock-observations/types.js +3 -0
  37. package/build/builtins/multiply/index.d.ts +3 -0
  38. package/build/builtins/multiply/index.js +63 -0
  39. package/build/builtins/multiply/types.d.ts +4 -0
  40. package/build/builtins/multiply/types.js +3 -0
  41. package/build/builtins/regex/index.d.ts +3 -0
  42. package/build/builtins/regex/index.js +78 -0
  43. package/build/builtins/sci/config.d.ts +1 -0
  44. package/build/builtins/sci/config.js +44 -0
  45. package/build/builtins/sci/index.d.ts +3 -0
  46. package/build/builtins/sci/index.js +69 -0
  47. package/build/builtins/sci-embodied/index.d.ts +2 -0
  48. package/build/builtins/sci-embodied/index.js +115 -0
  49. package/build/builtins/shell/index.d.ts +3 -0
  50. package/build/builtins/shell/index.js +58 -0
  51. package/build/builtins/subtract/index.d.ts +3 -0
  52. package/build/builtins/subtract/index.js +75 -0
  53. package/build/builtins/subtract/types.d.ts +4 -0
  54. package/build/builtins/subtract/types.js +3 -0
  55. package/build/builtins/sum/index.d.ts +3 -0
  56. package/build/builtins/sum/index.js +61 -0
  57. package/build/builtins/sum/types.d.ts +4 -0
  58. package/build/builtins/sum/types.js +3 -0
  59. package/build/config/config.d.ts +8 -2
  60. package/build/config/config.js +34 -1
  61. package/build/config/strings.d.ts +22 -0
  62. package/build/config/strings.js +23 -1
  63. package/build/diff.d.ts +2 -0
  64. package/build/diff.js +41 -0
  65. package/build/index.js +8 -4
  66. package/build/lib/aggregate.js +5 -1
  67. package/build/lib/compare.d.ts +10 -0
  68. package/build/lib/compare.js +56 -0
  69. package/build/lib/compute.js +9 -1
  70. package/build/lib/environment.js +9 -3
  71. package/build/lib/exhaust.js +3 -2
  72. package/build/lib/initialize.js +5 -2
  73. package/build/lib/load.d.ts +48 -0
  74. package/build/lib/load.js +51 -2
  75. package/build/lib/parameterize.js +8 -4
  76. package/build/types/common.d.ts +4 -0
  77. package/build/types/common.js +3 -0
  78. package/build/types/helpers.d.ts +4 -0
  79. package/build/types/helpers.js +3 -0
  80. package/build/types/interface.d.ts +2 -1
  81. package/build/types/interface.js +1 -1
  82. package/build/types/lib/compare.d.ts +7 -0
  83. package/build/types/lib/compare.js +3 -0
  84. package/build/types/process-args.d.ts +7 -1
  85. package/build/types/process-args.js +1 -1
  86. package/build/types/util/args.d.ts +4 -0
  87. package/build/types/util/args.js +3 -0
  88. package/build/util/args.d.ts +7 -2
  89. package/build/util/args.js +49 -11
  90. package/build/util/debug-logger.d.ts +4 -0
  91. package/build/util/debug-logger.js +117 -0
  92. package/build/util/errors.d.ts +1 -1
  93. package/build/util/errors.js +6 -1
  94. package/build/util/helpers.d.ts +23 -0
  95. package/build/util/helpers.js +116 -2
  96. package/build/util/log-memoize.d.ts +1 -1
  97. package/build/util/log-memoize.js +1 -1
  98. package/build/util/validations.d.ts +59 -51
  99. package/build/util/validations.js +49 -18
  100. package/github-processes.md +16 -42
  101. package/manifests/bugs/aggregation-error-wrong-metric.yml +6 -6
  102. package/manifests/bugs/azure-importer-ignoring-defaults.yml +3 -3
  103. package/manifests/bugs/azure-importer-incorrect-calculation.yml +2 -2
  104. package/manifests/bugs/mock-observations-failure-duration-is-zero.yml +34 -0
  105. package/manifests/bugs/pipeline-error-uninitialized-plugin.yml +1 -1
  106. package/manifests/bugs/pipeline-ordering-error.yml +6 -6
  107. package/manifests/bugs/sci-embodied-missing-resources-total.yml +23 -0
  108. package/manifests/examples/generics.yml +3 -3
  109. package/manifests/examples/instance-metadata.yml +36 -0
  110. package/manifests/examples/mock-cpu-util-to-carbon.yml +3 -3
  111. package/manifests/examples/nesting.yml +37 -10
  112. package/manifests/examples/pipeline-teads-sci.yml +17 -9
  113. package/manifests/examples/pipeline-with-aggregate.yml +24 -9
  114. package/manifests/examples/pipeline-with-mocks.yml +26 -9
  115. package/manifests/examples/sci.yml +131 -0
  116. package/manifests/examples/teads-curve.yml +78 -0
  117. package/manifests/features/aggregate-failure-inalid-metrics.yml +43 -0
  118. package/manifests/features/aggregate-failure-missing-metric-in-inputs.yml +43 -0
  119. package/manifests/integrations/cloud-metadata-divide-boavizta.yml +1 -1
  120. package/manifests/integrations/mock-obs-group-by-cloud-meta.yml +51 -0
  121. package/manifests/integrations/mock-obs-groupby.yml +2 -2
  122. package/manifests/integrations/mock-obs-time-sync.yml +1 -1
  123. package/manifests/plugins/cloud-metadata/failure-invalid-instance-type.yaml +21 -0
  124. package/manifests/plugins/cloud-metadata/failure-invalid-vendor.yaml +1 -1
  125. package/manifests/plugins/cloud-metadata/failure-missing-cloud-vendor.yml +21 -0
  126. package/manifests/plugins/cloud-metadata/success.yml +1 -1
  127. package/manifests/plugins/coefficient/failure-invalid-config-input-param.yml +1 -1
  128. package/manifests/plugins/coefficient/failure-output-param-is-null.yaml +24 -0
  129. package/manifests/plugins/coefficient/success.yml +1 -1
  130. package/manifests/plugins/csv-lookup/failure-missing-column.yml +26 -0
  131. package/manifests/plugins/csv-lookup/failure-missing-output.yml +26 -0
  132. package/manifests/plugins/csv-lookup/success-renaming.yml +26 -0
  133. package/manifests/plugins/csv-lookup/success.yml +26 -0
  134. package/manifests/plugins/divide/failure-denominator-equal-zero.yml +39 -0
  135. package/manifests/plugins/divide/failure-invalid-config-denominator.yml +1 -1
  136. package/manifests/plugins/divide/failure-missing-numerator.yml +39 -0
  137. package/manifests/plugins/divide/success.yml +2 -2
  138. package/manifests/plugins/groupby/failure-missing-cloud-instance-type.yml +49 -0
  139. package/manifests/plugins/interpolation/interpolation.yml +24 -0
  140. package/manifests/plugins/mock-observations/failure-invalid-config-cpu-range.yml +1 -1
  141. package/manifests/plugins/mock-observations/failure-invalid-memory-utilization-range.yml +34 -0
  142. package/manifests/plugins/mock-observations/failure-missing-timestamp-from-param.yml +34 -0
  143. package/manifests/plugins/mock-observations/success.yml +2 -2
  144. package/manifests/plugins/multiply/failure-input-parameter-is-missing.yml +1 -1
  145. package/manifests/plugins/multiply/success-with-multiple-inputs.yml +32 -0
  146. package/manifests/plugins/multiply/success.yml +3 -3
  147. package/manifests/plugins/regex/failure-missing-input-param.yml +1 -1
  148. package/manifests/plugins/regex/failure-not-matching-with-regex.yml +24 -0
  149. package/manifests/plugins/regex/success.yml +2 -2
  150. package/manifests/plugins/sci/failure-invalid-config-value.yml +2 -3
  151. package/manifests/plugins/sci/failure-missing-input-param.yml +27 -0
  152. package/manifests/plugins/sci/success.yml +5 -4
  153. package/manifests/plugins/{sci-m → sci-embodied}/failure-invalid-default-emission-value.yml +5 -6
  154. package/manifests/plugins/sci-embodied/failure-missing-expected-lifespan.yml +23 -0
  155. package/manifests/plugins/{sci-m → sci-embodied}/success.yml +5 -6
  156. package/manifests/plugins/shell/failure-invalid-command.yml +1 -1
  157. package/manifests/plugins/shell/success.yml +1 -2
  158. package/manifests/plugins/sum/failure-missing-input-param.yml +1 -1
  159. package/manifests/plugins/sum/failure-missing-output-param.yml +28 -0
  160. package/manifests/plugins/sum/success.yml +1 -1
  161. package/manifests/plugins/tdp-finder/failure-unsupported-physical-processor.yml +19 -0
  162. package/manifests/plugins/time-sync/failure-missing-global-config.yml +34 -0
  163. package/package.json +10 -2
  164. package/src/builtins/README.md +5 -5
  165. package/src/builtins/coefficient/README.md +92 -0
  166. package/src/builtins/csv-lookup/README.md +142 -0
  167. package/src/builtins/divide/README.md +95 -0
  168. package/src/builtins/exponent/README.md +97 -0
  169. package/src/builtins/interpolation/README.md +168 -0
  170. package/src/builtins/mock-observations/README.md +97 -0
  171. package/src/builtins/multiply/README.md +94 -0
  172. package/src/builtins/regex/README.md +91 -0
  173. package/src/builtins/sci/README.md +89 -0
  174. package/src/builtins/sci-embodied/README.md +110 -0
  175. package/src/builtins/shell/README.md +130 -0
  176. package/src/builtins/subtract/README.md +94 -0
  177. package/src/builtins/sum/README.md +91 -0
  178. package/.env +0 -5
  179. package/coverage/clover.xml +0 -1590
  180. package/coverage/coverage-final.json +0 -50
  181. package/coverage/lcov-report/base.css +0 -224
  182. package/coverage/lcov-report/block-navigation.js +0 -87
  183. package/coverage/lcov-report/builtins/coefficient/index.html +0 -116
  184. package/coverage/lcov-report/builtins/coefficient/index.ts.html +0 -295
  185. package/coverage/lcov-report/builtins/csv-lookup/index.html +0 -116
  186. package/coverage/lcov-report/builtins/csv-lookup/index.ts.html +0 -832
  187. package/coverage/lcov-report/builtins/divide/index.html +0 -116
  188. package/coverage/lcov-report/builtins/divide/index.ts.html +0 -361
  189. package/coverage/lcov-report/builtins/exponent/index.html +0 -116
  190. package/coverage/lcov-report/builtins/exponent/index.ts.html +0 -355
  191. package/coverage/lcov-report/builtins/export-csv-raw.ts.html +0 -553
  192. package/coverage/lcov-report/builtins/export-csv.ts.html +0 -433
  193. package/coverage/lcov-report/builtins/export-log.ts.html +0 -145
  194. package/coverage/lcov-report/builtins/export-yaml.ts.html +0 -184
  195. package/coverage/lcov-report/builtins/group-by.ts.html +0 -364
  196. package/coverage/lcov-report/builtins/index.html +0 -206
  197. package/coverage/lcov-report/builtins/index.ts.html +0 -130
  198. package/coverage/lcov-report/builtins/interpolation/index.html +0 -131
  199. package/coverage/lcov-report/builtins/interpolation/index.ts.html +0 -670
  200. package/coverage/lcov-report/builtins/interpolation/types.ts.html +0 -100
  201. package/coverage/lcov-report/builtins/mock-observations/helpers/common-generator.ts.html +0 -181
  202. package/coverage/lcov-report/builtins/mock-observations/helpers/index.html +0 -131
  203. package/coverage/lcov-report/builtins/mock-observations/helpers/rand-int-generator.ts.html +0 -295
  204. package/coverage/lcov-report/builtins/mock-observations/index.html +0 -116
  205. package/coverage/lcov-report/builtins/mock-observations/index.ts.html +0 -613
  206. package/coverage/lcov-report/builtins/multiply/index.html +0 -116
  207. package/coverage/lcov-report/builtins/multiply/index.ts.html +0 -337
  208. package/coverage/lcov-report/builtins/regex/index.html +0 -116
  209. package/coverage/lcov-report/builtins/regex/index.ts.html +0 -379
  210. package/coverage/lcov-report/builtins/sci/config.ts.html +0 -205
  211. package/coverage/lcov-report/builtins/sci/index.html +0 -116
  212. package/coverage/lcov-report/builtins/sci/index.ts.html +0 -331
  213. package/coverage/lcov-report/builtins/sci-embodied/index.html +0 -116
  214. package/coverage/lcov-report/builtins/sci-embodied/index.ts.html +0 -481
  215. package/coverage/lcov-report/builtins/shell/index.html +0 -116
  216. package/coverage/lcov-report/builtins/shell/index.ts.html +0 -283
  217. package/coverage/lcov-report/builtins/subtract/index.html +0 -116
  218. package/coverage/lcov-report/builtins/subtract/index.ts.html +0 -373
  219. package/coverage/lcov-report/builtins/sum/index.html +0 -116
  220. package/coverage/lcov-report/builtins/sum/index.ts.html +0 -340
  221. package/coverage/lcov-report/builtins/time-sync.ts.html +0 -1459
  222. package/coverage/lcov-report/config/config.ts.html +0 -334
  223. package/coverage/lcov-report/config/index.html +0 -161
  224. package/coverage/lcov-report/config/index.ts.html +0 -94
  225. package/coverage/lcov-report/config/params.ts.html +0 -697
  226. package/coverage/lcov-report/config/strings.ts.html +0 -415
  227. package/coverage/lcov-report/favicon.png +0 -0
  228. package/coverage/lcov-report/index.html +0 -386
  229. package/coverage/lcov-report/lib/aggregate.ts.html +0 -331
  230. package/coverage/lcov-report/lib/compare.ts.html +0 -283
  231. package/coverage/lcov-report/lib/compute.ts.html +0 -391
  232. package/coverage/lcov-report/lib/environment.ts.html +0 -343
  233. package/coverage/lcov-report/lib/exhaust.ts.html +0 -283
  234. package/coverage/lcov-report/lib/index.html +0 -221
  235. package/coverage/lcov-report/lib/initialize.ts.html +0 -388
  236. package/coverage/lcov-report/lib/load.ts.html +0 -268
  237. package/coverage/lcov-report/lib/parameterize.ts.html +0 -283
  238. package/coverage/lcov-report/prettify.css +0 -1
  239. package/coverage/lcov-report/prettify.js +0 -2
  240. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  241. package/coverage/lcov-report/sorter.js +0 -196
  242. package/coverage/lcov-report/types/aggregation.ts.html +0 -94
  243. package/coverage/lcov-report/types/index.html +0 -146
  244. package/coverage/lcov-report/types/interface.ts.html +0 -181
  245. package/coverage/lcov-report/types/parameters.ts.html +0 -106
  246. package/coverage/lcov-report/util/aggregation-helper.ts.html +0 -286
  247. package/coverage/lcov-report/util/args.ts.html +0 -508
  248. package/coverage/lcov-report/util/errors.ts.html +0 -232
  249. package/coverage/lcov-report/util/helpers.ts.html +0 -613
  250. package/coverage/lcov-report/util/index.html +0 -266
  251. package/coverage/lcov-report/util/json.ts.html +0 -115
  252. package/coverage/lcov-report/util/log-memoize.ts.html +0 -145
  253. package/coverage/lcov-report/util/logger.ts.html +0 -151
  254. package/coverage/lcov-report/util/os-checker.ts.html +0 -421
  255. package/coverage/lcov-report/util/plugin-storage.ts.html +0 -199
  256. package/coverage/lcov-report/util/validations.ts.html +0 -526
  257. package/coverage/lcov-report/util/yaml.ts.html +0 -193
  258. package/coverage/lcov.info +0 -2811
  259. package/src/__tests__/integration/manifest/sci-e.yaml +0 -23
@@ -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
@@ -9,25 +9,32 @@ 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
- functional-unit: ""
30
- functional-unit-time: "1-day"
29
+ functional-unit: "component"
30
+ "sum-carbon":
31
+ path: "builtin"
32
+ method: Sum
33
+ global-config:
34
+ input-parameters:
35
+ - carbon-operational
36
+ - carbon-embodied
37
+ output-parameter: carbon
31
38
  "time-sync":
32
39
  method: TimeSync
33
40
  path: "builtin"
@@ -42,9 +49,9 @@ tree:
42
49
  pipeline:
43
50
  - teads-curve
44
51
  - sum
45
- - sci-m
52
+ - sci-embodied
46
53
  - sci-o
47
- - time-sync
54
+ - sum-carbon
48
55
  - sci
49
56
  config:
50
57
  defaults:
@@ -55,6 +62,7 @@ tree:
55
62
  device/expected-lifespan: 94608000 # 3 years in seconds
56
63
  resources-reserved: 1
57
64
  resources-total: 8
65
+ component: 1
58
66
  inputs:
59
67
  - timestamp: "2023-12-12T00:00:00.000Z"
60
68
  cloud/instance-type: A1
@@ -15,18 +15,25 @@ 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"
29
- functional-unit-time: "1 minute"
29
+ "sum-carbon":
30
+ path: "builtin"
31
+ method: Sum
32
+ global-config:
33
+ input-parameters:
34
+ - carbon-operational
35
+ - carbon-embodied
36
+ output-parameter: carbon
30
37
  "time-sync":
31
38
  method: TimeSync
32
39
  path: "builtin"
@@ -44,8 +51,9 @@ tree:
44
51
  pipeline:
45
52
  - teads-curve
46
53
  - sci-e
47
- - sci-m
54
+ - sci-embodied
48
55
  - sci-o
56
+ - sum-carbon
49
57
  - time-sync
50
58
  - sci
51
59
  config:
@@ -61,34 +69,38 @@ tree:
61
69
  device/expected-lifespan: 94608000 # 3 years in seconds
62
70
  resources-reserved: 1
63
71
  resources-total: 8
64
- functional-unit-time: "1 min"
65
72
  inputs:
66
73
  - timestamp: "2023-12-12T00:00:00.000Z"
67
74
  cloud/instance-type: A1
68
75
  cloud/region: uk-west
69
76
  duration: 1
70
77
  cpu/utilization: 10
78
+ requests: 10
71
79
  - timestamp: "2023-12-12T00:00:01.000Z"
72
80
  duration: 5
73
81
  cpu/utilization: 20
74
82
  cloud/instance-type: A1
75
83
  cloud/region: uk-west
84
+ requests: 5
76
85
  - timestamp: "2023-12-12T00:00:06.000Z"
77
86
  duration: 7
78
87
  cpu/utilization: 15
79
88
  cloud/instance-type: A1
80
89
  cloud/region: uk-west
90
+ requests: 15
81
91
  - timestamp: "2023-12-12T00:00:13.000Z"
82
92
  duration: 30
83
93
  cloud/instance-type: A1
84
94
  cloud/region: uk-west
85
95
  cpu/utilization: 15
96
+ requests: 30
86
97
  child-2:
87
98
  pipeline:
88
99
  - teads-curve
89
100
  - sci-e
90
- - sci-m
101
+ - sci-embodied
91
102
  - sci-o
103
+ - sum-carbon
92
104
  - time-sync
93
105
  - sci
94
106
  config:
@@ -104,25 +116,28 @@ tree:
104
116
  device/expected-lifespan: 94608000 # 3 years in seconds
105
117
  resources-reserved: 1
106
118
  resources-total: 8
107
- functional-unit-time: "1 min"
108
119
  inputs:
109
120
  - timestamp: "2023-12-12T00:00:00.000Z"
110
121
  duration: 1
111
122
  cpu/utilization: 30
112
123
  cloud/instance-type: A1
113
124
  cloud/region: uk-west
125
+ requests: 100
114
126
  - timestamp: "2023-12-12T00:00:01.000Z"
115
127
  duration: 5
116
128
  cpu/utilization: 28
117
129
  cloud/instance-type: A1
118
130
  cloud/region: uk-west
131
+ requests: 150
119
132
  - timestamp: "2023-12-12T00:00:06.000Z"
120
133
  duration: 7
121
134
  cpu/utilization: 40
122
135
  cloud/instance-type: A1
123
136
  cloud/region: uk-west
137
+ requests: 110
124
138
  - timestamp: "2023-12-12T00:00:13.000Z"
125
139
  duration: 30
126
140
  cpu/utilization: 33
127
141
  cloud/instance-type: A1
128
142
  cloud/region: uk-west
143
+ requests: 180
@@ -10,7 +10,7 @@ initialize:
10
10
  mock-observations:
11
11
  kind: plugin
12
12
  method: MockObservations
13
- path: "@grnsft/if-plugins"
13
+ path: "builtin"
14
14
  global-config:
15
15
  timestamp-from: 2023-07-06T00:00
16
16
  timestamp-to: 2023-07-06T00:10
@@ -33,18 +33,25 @@ initialize:
33
33
  "sci-e":
34
34
  path: "@grnsft/if-plugins"
35
35
  method: SciE
36
- "sci-m":
37
- path: "@grnsft/if-plugins"
38
- method: SciM
36
+ "sci-embodied":
37
+ path: "builtin"
38
+ method: SciEmbodied
39
39
  "sci-o":
40
40
  path: "@grnsft/if-plugins"
41
41
  method: SciO
42
+ "sum-carbon":
43
+ path: "builtin"
44
+ method: Sum
45
+ global-config:
46
+ input-parameters:
47
+ - carbon-operational
48
+ - carbon-embodied
49
+ output-parameter: carbon
42
50
  "sci":
43
- path: "@grnsft/if-plugins"
51
+ path: "builtin"
44
52
  method: Sci
45
53
  global-config:
46
54
  functional-unit: "requests"
47
- functional-unit-time: "1 minute"
48
55
  "time-sync":
49
56
  method: TimeSync
50
57
  path: "builtin"
@@ -56,15 +63,16 @@ initialize:
56
63
  "group-by":
57
64
  path: builtin
58
65
  method: GroupBy
59
- outputs: ['yaml']
66
+ # outputs: ['yaml']
60
67
  tree:
61
68
  children:
62
69
  child-1:
63
70
  pipeline:
64
71
  - teads-curve
65
72
  - sci-e
66
- - sci-m
73
+ - sci-embodied
67
74
  - sci-o
75
+ - sum-carbon
68
76
  - time-sync
69
77
  - sci
70
78
  config:
@@ -87,27 +95,32 @@ tree:
87
95
  cloud/region: uk-west
88
96
  duration: 1
89
97
  cpu/utilization: 10
98
+ requests: 30
90
99
  - timestamp: "2023-12-12T00:00:01.000Z"
91
100
  duration: 5
92
101
  cpu/utilization: 20
93
102
  cloud/instance-type: A1
94
103
  cloud/region: uk-west
104
+ requests: 40
95
105
  - timestamp: "2023-12-12T00:00:06.000Z"
96
106
  duration: 7
97
107
  cpu/utilization: 15
98
108
  cloud/instance-type: A1
99
109
  cloud/region: uk-west
110
+ requests: 30
100
111
  - timestamp: "2023-12-12T00:00:13.000Z"
101
112
  duration: 30
102
113
  cloud/instance-type: A1
103
114
  cloud/region: uk-west
104
115
  cpu/utilization: 15
116
+ requests: 50
105
117
  child-2:
106
118
  pipeline:
107
119
  - teads-curve
108
120
  - sci-e
109
- - sci-m
121
+ - sci-embodied
110
122
  - sci-o
123
+ - sum-carbon
111
124
  - time-sync
112
125
  - sci
113
126
  config:
@@ -130,18 +143,22 @@ tree:
130
143
  cpu/utilization: 30
131
144
  cloud/instance-type: A1
132
145
  cloud/region: uk-west
146
+ requests: 30
133
147
  - timestamp: "2023-12-12T00:00:01.000Z"
134
148
  duration: 5
135
149
  cpu/utilization: 28
136
150
  cloud/instance-type: A1
137
151
  cloud/region: uk-west
152
+ requests: 40
138
153
  - timestamp: "2023-12-12T00:00:06.000Z"
139
154
  duration: 7
140
155
  cpu/utilization: 40
141
156
  cloud/instance-type: A1
142
157
  cloud/region: uk-west
158
+ requests: 50
143
159
  - timestamp: "2023-12-12T00:00:13.000Z"
144
160
  duration: 30
145
161
  cpu/utilization: 33
146
162
  cloud/instance-type: A1
147
163
  cloud/region: uk-west
164
+ requests: 60
@@ -0,0 +1,131 @@
1
+ name: pipeline-teads-sci
2
+ description: a full pipeline seeded with some hardcoded input data and yielding an SCI score
3
+ tags:
4
+ initialize:
5
+ plugins:
6
+ interpolate:
7
+ method: Interpolation
8
+ path: 'builtin'
9
+ global-config:
10
+ method: linear
11
+ x: [0, 10, 50, 100]
12
+ y: [0.12, 0.32, 0.75, 1.02]
13
+ input-parameter: 'cpu/utilization'
14
+ output-parameter: 'cpu-factor'
15
+ cpu-factor-to-wattage:
16
+ method: Multiply
17
+ path: builtin
18
+ global-config:
19
+ input-parameters: ["cpu-factor", "cpu/thermal-design-power"]
20
+ output-parameter: "cpu-wattage"
21
+ wattage-times-duration:
22
+ method: Multiply
23
+ path: builtin
24
+ global-config:
25
+ input-parameters: ["cpu-wattage", "duration"]
26
+ output-parameter: "cpu-wattage-times-duration"
27
+ wattage-to-energy-kwh:
28
+ method: Divide
29
+ path: "builtin"
30
+ global-config:
31
+ numerator: cpu-wattage-times-duration
32
+ denominator: 3600000
33
+ output: cpu-energy-raw
34
+ calculate-vcpu-ratio:
35
+ method: Divide
36
+ path: "builtin"
37
+ global-config:
38
+ numerator: vcpus-total
39
+ denominator: vcpus-allocated
40
+ output: vcpu-ratio
41
+ correct-cpu-energy-for-vcpu-ratio:
42
+ method: Divide
43
+ path: "builtin"
44
+ global-config:
45
+ numerator: cpu-energy-raw
46
+ denominator: vcpu-ratio
47
+ output: cpu/energy
48
+ sum-energy-components:
49
+ path: "builtin"
50
+ method: Sum
51
+ global-config:
52
+ input-parameters:
53
+ - cpu/energy
54
+ - network/energy
55
+ output-parameter: energy
56
+ "embodied-carbon":
57
+ path: "builtin"
58
+ method: SciEmbodied
59
+ "operational-carbon":
60
+ method: Multiply
61
+ path: builtin
62
+ global-config:
63
+ input-parameters: ["energy", "grid/carbon-intensity"]
64
+ output-parameter: "carbon-operational"
65
+ "sum-carbon":
66
+ path: "builtin"
67
+ method: Sum
68
+ global-config:
69
+ input-parameters:
70
+ - carbon-operational
71
+ - carbon-embodied
72
+ output-parameter: carbon
73
+ "sci":
74
+ path: "builtin"
75
+ method: Sci
76
+ global-config:
77
+ functional-unit: "component"
78
+ outputs:
79
+ - yaml
80
+ tree:
81
+ children:
82
+ child-1:
83
+ pipeline:
84
+ - interpolate
85
+ - cpu-factor-to-wattage
86
+ - wattage-times-duration
87
+ - wattage-to-energy-kwh
88
+ - calculate-vcpu-ratio
89
+ - correct-cpu-energy-for-vcpu-ratio
90
+ - sum-energy-components
91
+ - embodied-carbon
92
+ - operational-carbon
93
+ - sum-carbon
94
+ - sci
95
+ config:
96
+ defaults:
97
+ cpu/thermal-design-power: 100
98
+ vcpus-total: 8
99
+ vcpus-allocated: 2
100
+ grid/carbon-intensity: 800
101
+ device/emissions-embodied: 1533.120 # gCO2eq
102
+ time-reserved: 3600 # 1hr in seconds
103
+ device/expected-lifespan: 94608000 # 3 years in seconds
104
+ resources-reserved: vcpus-allocated
105
+ resources-total: vcpus-total
106
+ component: 1
107
+ inputs:
108
+ - timestamp: "2023-12-12T00:00:00.000Z"
109
+ cloud/instance-type: A1
110
+ cloud/region: uk-west
111
+ duration: 1
112
+ cpu/utilization: 50
113
+ network/energy: 0.000001
114
+ - timestamp: "2023-12-12T00:00:01.000Z"
115
+ duration: 5
116
+ cpu/utilization: 20
117
+ cloud/instance-type: A1
118
+ cloud/region: uk-west
119
+ network/energy: 0.000001
120
+ - timestamp: "2023-12-12T00:00:06.000Z"
121
+ duration: 7
122
+ cpu/utilization: 15
123
+ cloud/instance-type: A1
124
+ cloud/region: uk-west
125
+ network/energy: 0.000001
126
+ - timestamp: "2023-12-12T00:00:13.000Z"
127
+ duration: 30
128
+ cloud/instance-type: A1
129
+ cloud/region: uk-west
130
+ cpu/utilization: 15
131
+ network/energy: 0.000001