@grnsft/if 0.5.0 → 0.6.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 (469) hide show
  1. package/README.md +5 -17
  2. package/Refactor-migration-guide.md +110 -164
  3. package/build/common/config/index.d.ts +1 -0
  4. package/build/common/config/index.js +6 -0
  5. package/build/common/config/strings.d.ts +9 -0
  6. package/build/common/config/strings.js +17 -0
  7. package/build/common/lib/load.d.ts +6 -0
  8. package/build/common/lib/load.js +18 -0
  9. package/build/{types → common/types}/manifest.d.ts +4 -1
  10. package/build/common/types/manifest.js +3 -0
  11. package/build/common/util/debug-logger.js +115 -0
  12. package/build/common/util/fs.js +94 -0
  13. package/build/common/util/helpers.d.ts +15 -0
  14. package/build/common/util/helpers.js +80 -0
  15. package/build/{util → common/util}/logger.js +1 -1
  16. package/build/{util → common/util}/validations.d.ts +149 -47
  17. package/build/common/util/validations.js +141 -0
  18. package/build/common/util/yaml.js +59 -0
  19. package/build/if-check/config/config.d.ts +6 -0
  20. package/build/if-check/config/config.js +31 -0
  21. package/build/{config → if-check/config}/index.d.ts +0 -1
  22. package/build/if-check/config/index.js +8 -0
  23. package/build/if-check/config/strings.d.ts +11 -0
  24. package/build/if-check/config/strings.js +15 -0
  25. package/build/if-check/index.js +98 -0
  26. package/build/if-check/types/process-args.d.ts +4 -0
  27. package/build/if-check/types/process-args.js +3 -0
  28. package/build/if-check/util/args.d.ts +10 -0
  29. package/build/if-check/util/args.js +56 -0
  30. package/build/if-check/util/helpers.d.ts +4 -0
  31. package/build/if-check/util/helpers.js +18 -0
  32. package/build/if-check/util/npm.d.ts +4 -0
  33. package/build/if-check/util/npm.js +59 -0
  34. package/build/if-csv/config/config.d.ts +6 -0
  35. package/build/if-csv/config/config.js +36 -0
  36. package/build/if-csv/config/index.d.ts +2 -0
  37. package/build/if-csv/config/index.js +8 -0
  38. package/build/if-csv/config/strings.d.ts +3 -0
  39. package/build/if-csv/config/strings.js +7 -0
  40. package/build/if-csv/index.js +63 -0
  41. package/build/if-csv/types/csv.d.ts +7 -0
  42. package/build/if-csv/types/csv.js +3 -0
  43. package/build/if-csv/types/process-args.d.ts +5 -0
  44. package/build/if-csv/types/process-args.js +3 -0
  45. package/build/if-csv/util/args.d.ts +12 -0
  46. package/build/if-csv/util/args.js +47 -0
  47. package/build/if-csv/util/helpers.d.ts +9 -0
  48. package/build/if-csv/util/helpers.js +95 -0
  49. package/build/if-diff/config/config.d.ts +6 -0
  50. package/build/if-diff/config/config.js +31 -0
  51. package/build/if-diff/config/index.d.ts +2 -0
  52. package/build/if-diff/config/index.js +8 -0
  53. package/build/if-diff/config/strings.d.ts +6 -0
  54. package/build/if-diff/config/strings.js +10 -0
  55. package/build/if-diff/index.js +46 -0
  56. package/build/{lib → if-diff/lib}/compare.d.ts +1 -1
  57. package/build/if-diff/lib/compare.js +56 -0
  58. package/build/{lib → if-diff/lib}/load.d.ts +16 -18
  59. package/build/if-diff/lib/load.js +51 -0
  60. package/build/if-diff/types/args.js +3 -0
  61. package/build/if-diff/types/compare.js +3 -0
  62. package/build/if-diff/types/process-args.d.ts +4 -0
  63. package/build/if-diff/types/process-args.js +3 -0
  64. package/build/if-diff/util/args.d.ts +5 -0
  65. package/build/if-diff/util/args.js +51 -0
  66. package/build/if-diff/util/helpers.d.ts +13 -0
  67. package/build/if-diff/util/helpers.js +75 -0
  68. package/build/if-env/config/config.d.ts +6 -0
  69. package/build/if-env/config/config.js +37 -0
  70. package/build/if-env/config/index.d.ts +2 -0
  71. package/build/if-env/config/index.js +8 -0
  72. package/build/if-env/config/strings.d.ts +7 -0
  73. package/build/if-env/config/strings.js +11 -0
  74. package/build/if-env/index.js +40 -0
  75. package/build/if-env/types/if-env.js +3 -0
  76. package/build/if-env/types/npm.js +3 -0
  77. package/build/if-env/types/process-args.d.ts +5 -0
  78. package/build/if-env/types/process-args.js +3 -0
  79. package/build/if-env/util/args.d.ts +12 -0
  80. package/build/if-env/util/args.js +47 -0
  81. package/build/if-env/util/helpers.d.ts +20 -0
  82. package/build/if-env/util/helpers.js +94 -0
  83. package/build/{util → if-env/util}/npm.d.ts +0 -4
  84. package/build/if-env/util/npm.js +126 -0
  85. package/build/if-merge/config/config.d.ts +6 -0
  86. package/build/if-merge/config/config.js +43 -0
  87. package/build/if-merge/config/index.d.ts +2 -0
  88. package/build/if-merge/config/index.js +8 -0
  89. package/build/if-merge/config/strings.d.ts +5 -0
  90. package/build/if-merge/config/strings.js +9 -0
  91. package/build/if-merge/index.d.ts +2 -0
  92. package/build/if-merge/index.js +26 -0
  93. package/build/if-merge/types/process-args.d.ts +6 -0
  94. package/build/if-merge/types/process-args.js +3 -0
  95. package/build/if-merge/util/args.d.ts +9 -0
  96. package/build/if-merge/util/args.js +59 -0
  97. package/build/if-merge/util/helpers.d.ts +5 -0
  98. package/build/if-merge/util/helpers.js +83 -0
  99. package/build/if-run/builtins/coefficient/index.d.ts +2 -0
  100. package/build/if-run/builtins/coefficient/index.js +67 -0
  101. package/build/if-run/builtins/copy-param/index.d.ts +2 -0
  102. package/build/if-run/builtins/copy-param/index.js +70 -0
  103. package/build/if-run/builtins/csv-lookup/index.d.ts +2 -0
  104. package/build/if-run/builtins/csv-lookup/index.js +190 -0
  105. package/build/if-run/builtins/divide/index.d.ts +2 -0
  106. package/build/if-run/builtins/divide/index.js +80 -0
  107. package/build/if-run/builtins/exponent/index.d.ts +2 -0
  108. package/build/if-run/builtins/exponent/index.js +60 -0
  109. package/build/{builtins → if-run/builtins}/export-log.d.ts +1 -1
  110. package/build/{builtins → if-run/builtins}/export-log.js +1 -1
  111. package/build/{builtins → if-run/builtins}/export-yaml.d.ts +1 -1
  112. package/build/if-run/builtins/export-yaml.js +30 -0
  113. package/build/{builtins → if-run/builtins}/index.d.ts +2 -2
  114. package/build/{builtins → if-run/builtins}/index.js +6 -6
  115. package/build/if-run/builtins/interpolation/index.d.ts +2 -0
  116. package/build/if-run/builtins/interpolation/index.js +151 -0
  117. package/build/if-run/builtins/mock-observations/helpers/common-generator.js +29 -0
  118. package/build/if-run/builtins/mock-observations/helpers/rand-int-generator.js +48 -0
  119. package/build/if-run/builtins/mock-observations/index.d.ts +2 -0
  120. package/build/if-run/builtins/mock-observations/index.js +116 -0
  121. package/build/if-run/builtins/mock-observations/interfaces/index.js +3 -0
  122. package/build/if-run/builtins/multiply/index.d.ts +2 -0
  123. package/build/if-run/builtins/multiply/index.js +59 -0
  124. package/build/if-run/builtins/regex/index.d.ts +2 -0
  125. package/build/if-run/builtins/regex/index.js +76 -0
  126. package/build/if-run/builtins/sci/index.d.ts +2 -0
  127. package/build/if-run/builtins/sci/index.js +92 -0
  128. package/build/if-run/builtins/sci-embodied/index.d.ts +2 -0
  129. package/build/if-run/builtins/sci-embodied/index.js +156 -0
  130. package/build/if-run/builtins/shell/index.d.ts +2 -0
  131. package/build/if-run/builtins/shell/index.js +60 -0
  132. package/build/if-run/builtins/subtract/index.d.ts +2 -0
  133. package/build/if-run/builtins/subtract/index.js +61 -0
  134. package/build/if-run/builtins/sum/index.d.ts +2 -0
  135. package/build/if-run/builtins/sum/index.js +66 -0
  136. package/build/if-run/builtins/time-converter/config.js +44 -0
  137. package/build/if-run/builtins/time-converter/index.d.ts +2 -0
  138. package/build/if-run/builtins/time-converter/index.js +79 -0
  139. package/build/if-run/builtins/time-sync/index.d.ts +17 -0
  140. package/build/if-run/builtins/time-sync/index.js +339 -0
  141. package/build/if-run/config/config.d.ts +9 -0
  142. package/build/if-run/config/config.js +73 -0
  143. package/build/if-run/config/index.d.ts +2 -0
  144. package/build/if-run/config/index.js +8 -0
  145. package/build/{config → if-run/config}/strings.d.ts +28 -54
  146. package/build/if-run/config/strings.js +76 -0
  147. package/build/if-run/index.d.ts +2 -0
  148. package/build/if-run/index.js +63 -0
  149. package/build/if-run/lib/aggregate.d.ts +15 -0
  150. package/build/if-run/lib/aggregate.js +123 -0
  151. package/build/if-run/lib/compute.js +142 -0
  152. package/build/{lib → if-run/lib}/environment.d.ts +1 -1
  153. package/build/if-run/lib/environment.js +75 -0
  154. package/build/{lib → if-run/lib}/exhaust.d.ts +1 -1
  155. package/build/if-run/lib/exhaust.js +27 -0
  156. package/build/if-run/lib/explain.d.ts +9 -0
  157. package/build/if-run/lib/explain.js +43 -0
  158. package/build/if-run/lib/initialize.d.ts +6 -0
  159. package/build/if-run/lib/initialize.js +109 -0
  160. package/build/if-run/lib/regroup.d.ts +5 -0
  161. package/build/if-run/lib/regroup.js +64 -0
  162. package/build/if-run/types/aggregation.d.ts +5 -0
  163. package/build/if-run/types/aggregation.js +6 -0
  164. package/build/{types → if-run/types}/compute.d.ts +12 -8
  165. package/build/if-run/types/compute.js +3 -0
  166. package/build/if-run/types/environment.js +3 -0
  167. package/build/{types → if-run/types}/exhaust-plugin-interface.d.ts +1 -1
  168. package/build/if-run/types/exhaust-plugin-interface.js +3 -0
  169. package/build/if-run/types/explain.d.ts +10 -0
  170. package/build/if-run/types/explain.js +3 -0
  171. package/build/if-run/types/interface.d.ts +3 -0
  172. package/build/if-run/types/interface.js +6 -0
  173. package/build/if-run/types/plugin-storage.js +3 -0
  174. package/build/if-run/types/process-args.d.ts +25 -0
  175. package/build/if-run/types/process-args.js +3 -0
  176. package/build/if-run/types/time-sync.js +3 -0
  177. package/build/{util → if-run/util}/aggregation-helper.d.ts +2 -1
  178. package/build/if-run/util/aggregation-helper.js +47 -0
  179. package/build/if-run/util/args.d.ts +9 -0
  180. package/build/if-run/util/args.js +60 -0
  181. package/build/if-run/util/helpers.d.ts +14 -0
  182. package/build/if-run/util/helpers.js +57 -0
  183. package/build/if-run/util/log-memoize.js +19 -0
  184. package/build/if-run/util/os-checker.js +97 -0
  185. package/build/{util → if-run/util}/plugin-storage.d.ts +1 -1
  186. package/build/if-run/util/plugin-storage.js +34 -0
  187. package/jest.config.js +2 -6
  188. package/manifests/examples/builtins/coefficient/failure-invalid-config-input-param.yml +2 -2
  189. package/manifests/examples/builtins/coefficient/failure-output-param-is-null.yaml +3 -3
  190. package/manifests/examples/builtins/coefficient/success.yml +2 -2
  191. package/manifests/examples/builtins/csv-lookup/cloud-metadata/failure-invalid-instance-type.yaml +3 -3
  192. package/manifests/examples/builtins/csv-lookup/cloud-metadata/failure-invalid-vendor.yaml +3 -3
  193. package/manifests/examples/builtins/csv-lookup/cloud-metadata/failure-missing-cloud-vendor.yml +3 -3
  194. package/manifests/examples/builtins/csv-lookup/cloud-metadata/success.yml +3 -3
  195. package/manifests/examples/builtins/csv-lookup/region-metadata/failure-missing-column.yml +3 -3
  196. package/manifests/examples/builtins/csv-lookup/region-metadata/failure-missing-output.yml +3 -3
  197. package/manifests/examples/builtins/csv-lookup/region-metadata/success-renaming.yml +4 -4
  198. package/manifests/examples/builtins/csv-lookup/region-metadata/success.yml +3 -3
  199. package/manifests/examples/builtins/csv-lookup/tdp-finder/failure-missing-input-param.yml +2 -2
  200. package/manifests/examples/builtins/csv-lookup/tdp-finder/failure-unsupported-physical-processor.yml +2 -2
  201. package/manifests/examples/builtins/csv-lookup/tdp-finder/success.yml +2 -2
  202. package/manifests/examples/builtins/divide/failure-denominator-equal-zero.yml +4 -4
  203. package/manifests/examples/builtins/divide/failure-invalid-config-denominator.yml +5 -5
  204. package/manifests/examples/builtins/divide/failure-missing-numerator.yml +4 -4
  205. package/manifests/examples/builtins/divide/success.yml +4 -6
  206. package/manifests/examples/builtins/exponent/success.yml +5 -7
  207. package/manifests/examples/builtins/interpolation/interpolation.yml +2 -2
  208. package/manifests/examples/builtins/interpolation/success.yml +2 -1
  209. package/manifests/examples/builtins/mock-observations/failure-invalid-config-cpu-range.yml +2 -2
  210. package/manifests/examples/builtins/mock-observations/failure-invalid-memory-utilization-range.yml +2 -2
  211. package/manifests/examples/builtins/mock-observations/failure-missing-timestamp-from-param.yml +2 -2
  212. package/manifests/examples/builtins/mock-observations/success.yml +2 -2
  213. package/manifests/examples/builtins/multiply/failure-input-parameter-is-missing.yml +2 -4
  214. package/manifests/examples/builtins/multiply/success-with-multiple-inputs.yml +2 -4
  215. package/manifests/examples/builtins/multiply/success.yml +3 -4
  216. package/manifests/examples/builtins/regex/failure-missing-input-param.yml +2 -4
  217. package/manifests/examples/builtins/regex/failure-not-matching-with-regex.yml +2 -4
  218. package/manifests/examples/builtins/regex/success.yml +2 -4
  219. package/manifests/examples/builtins/sci/failure-invalid-config-value.yml +2 -2
  220. package/manifests/examples/builtins/sci/failure-missing-input-param.yml +3 -2
  221. package/manifests/examples/builtins/sci/success.yml +2 -3
  222. package/manifests/examples/builtins/sci-embodied/failure-invalid-default-emission-value.yml +3 -3
  223. package/manifests/examples/builtins/sci-embodied/failure-missing-expected-lifespan.yml +2 -2
  224. package/manifests/examples/builtins/sci-embodied/success.yml +2 -2
  225. package/manifests/examples/builtins/shell/failure-invalid-command.yml +2 -2
  226. package/manifests/examples/builtins/shell/success.yml +2 -1
  227. package/manifests/examples/builtins/subtract/success.yml +6 -8
  228. package/manifests/examples/builtins/sum/failure-missing-input-param.yml +2 -4
  229. package/manifests/examples/builtins/sum/failure-missing-output-param.yml +3 -5
  230. package/manifests/examples/builtins/sum/success.yml +2 -4
  231. package/manifests/examples/builtins/time-converter/success.yaml +24 -0
  232. package/manifests/examples/builtins/time-sync/failure-config-start-later-end.yml +3 -3
  233. package/manifests/examples/builtins/time-sync/failure-missing-global-config.yml +3 -3
  234. package/manifests/examples/builtins/time-sync/success.yml +2 -2
  235. package/manifests/examples/{builtins/groupby/failure-invalid-config-group.yml → features/regroup/failure-invalid-regroup.yml} +4 -11
  236. package/manifests/examples/{builtins/groupby → features/regroup}/failure-missing-cloud-instance-type.yml +5 -12
  237. package/manifests/examples/{builtins/groupby → features/regroup}/success.yml +4 -11
  238. package/manifests/examples/pipelines/generics.yml +12 -13
  239. package/manifests/examples/pipelines/instance-metadata.yml +4 -5
  240. package/manifests/examples/pipelines/nesting.yml +157 -50
  241. package/manifests/examples/pipelines/outputs-if-diff/pipeline-with-aggregate.yaml +997 -0
  242. package/manifests/examples/pipelines/outputs-if-diff/pipeline-with-mocks.yaml +1059 -0
  243. package/manifests/examples/pipelines/pipeline-teads-sci.yml +11 -11
  244. package/manifests/examples/pipelines/pipeline-with-aggregate.yml +114 -37
  245. package/manifests/examples/pipelines/pipeline-with-mocks.yml +193 -103
  246. package/manifests/examples/pipelines/scenario-1.yml +34 -0
  247. package/manifests/examples/pipelines/scenario-2.yml +52 -0
  248. package/manifests/examples/pipelines/scenario-3.yml +86 -0
  249. package/manifests/examples/pipelines/scenario-4.yml +46 -0
  250. package/manifests/examples/pipelines/scenario-5.yml +46 -0
  251. package/manifests/examples/pipelines/sci.yml +15 -17
  252. package/manifests/examples/pipelines/teads-curve.yml +7 -6
  253. package/manifests/examples/pipelines/zeros.yml +15 -16
  254. package/manifests/outputs/bugs/aggregation-error-wrong-metric.yaml +51 -59
  255. package/manifests/outputs/bugs/input-error-missing-duration.yaml +14 -16
  256. package/manifests/outputs/bugs/mock-observations-failure-duration-is-zero.yaml +14 -16
  257. package/manifests/outputs/bugs/pipeline-error-naming-mismatch.yaml +14 -16
  258. package/manifests/outputs/bugs/pipeline-error-uninitialized-plugin.yaml +15 -17
  259. package/manifests/outputs/bugs/pipeline-ordering-error.yaml +23 -26
  260. package/manifests/outputs/bugs/sci-embodied-missing-resources-total.yaml +13 -14
  261. package/manifests/outputs/{plugins → builtins}/coefficient/failure-invalid-config-input-param.yaml +13 -17
  262. package/manifests/outputs/{plugins → builtins}/coefficient/failure-output-param-is-null.yaml +13 -17
  263. package/manifests/outputs/{plugins → builtins}/coefficient/success.yaml +11 -16
  264. package/manifests/outputs/builtins/csv-lookup/cloud-metadata/failure-invalid-instance-type.yaml +76 -0
  265. package/manifests/outputs/{plugins → builtins}/csv-lookup/cloud-metadata/failure-missing-cloud-vendor.yaml +16 -19
  266. package/manifests/outputs/{plugins → builtins}/csv-lookup/cloud-metadata/success.yaml +16 -19
  267. package/manifests/outputs/{plugins → builtins}/csv-lookup/region-metadata/failure-missing-column.yaml +14 -15
  268. package/manifests/outputs/{plugins → builtins}/csv-lookup/region-metadata/failure-missing-output.yaml +13 -15
  269. package/manifests/outputs/{plugins → builtins}/csv-lookup/region-metadata/success-renaming.yaml +13 -15
  270. package/manifests/outputs/{plugins → builtins}/csv-lookup/region-metadata/success.yaml +14 -16
  271. package/manifests/outputs/{plugins → builtins}/csv-lookup/tdp-finder/failure-missing-input-param.yaml +13 -16
  272. package/manifests/outputs/{plugins → builtins}/csv-lookup/tdp-finder/failure-unsupported-physical-processor.yaml +13 -15
  273. package/manifests/outputs/{plugins → builtins}/csv-lookup/tdp-finder/success.yaml +13 -15
  274. package/manifests/outputs/{plugins → builtins}/divide/failure-invalid-config-denominator.yaml +13 -17
  275. package/manifests/outputs/{plugins → builtins}/divide/failure-missing-numerator.yaml +13 -15
  276. package/manifests/outputs/{plugins → builtins}/divide/success-denominator-equal-zero.yaml +14 -18
  277. package/manifests/outputs/{plugins → builtins}/divide/success.yaml +14 -18
  278. package/manifests/outputs/{plugins → builtins}/exponent/success.yaml +13 -17
  279. package/manifests/outputs/{plugins → builtins}/interpolation/interpolation.yaml +14 -16
  280. package/manifests/outputs/{plugins → builtins}/interpolation/success.yaml +14 -16
  281. package/manifests/outputs/{plugins → builtins}/mock-observations/failure-invalid-config-cpu-range.yaml +13 -15
  282. package/manifests/outputs/{plugins → builtins}/mock-observations/failure-invalid-memory-utilization-range.yaml +13 -15
  283. package/manifests/outputs/{plugins → builtins}/mock-observations/failure-missing-timestamp-from-param.yaml +13 -15
  284. package/manifests/outputs/builtins/mock-observations/success.yaml +358 -0
  285. package/manifests/outputs/{plugins → builtins}/multiply/failure-input-parameter-is-missing.yaml +13 -17
  286. package/manifests/outputs/{plugins → builtins}/multiply/success-with-multiple-inputs.yaml +13 -17
  287. package/manifests/outputs/{plugins → builtins}/multiply/success.yaml +13 -17
  288. package/manifests/outputs/{plugins → builtins}/regex/failure-missing-input-param.yaml +13 -17
  289. package/manifests/outputs/{plugins → builtins}/regex/success.yaml +14 -19
  290. package/manifests/outputs/{plugins → builtins}/sci/failure-invalid-config-value.yaml +14 -16
  291. package/manifests/outputs/{plugins → builtins}/sci/failure-missing-input-param.yaml +13 -15
  292. package/manifests/outputs/{plugins/sci/success.yml.yaml → builtins/sci/success.yaml} +13 -16
  293. package/manifests/outputs/{plugins → builtins}/sci-embodied/failure-invalid-default-emission-value.yaml +13 -15
  294. package/manifests/outputs/{plugins → builtins}/sci-embodied/failure-missing-expected-lifespan.yaml +13 -15
  295. package/manifests/outputs/{plugins → builtins}/sci-embodied/success.yaml +13 -15
  296. package/manifests/outputs/{plugins → builtins}/shell/failure-invalid-command.yaml +14 -16
  297. package/manifests/outputs/{plugins → builtins}/shell/success.yaml +14 -16
  298. package/manifests/outputs/{plugins → builtins}/subtract/success.yaml +13 -17
  299. package/manifests/outputs/{plugins → builtins}/sum/failure-missing-input-param.yaml +13 -17
  300. package/manifests/outputs/{plugins → builtins}/sum/failure-missing-output-param.yaml +13 -17
  301. package/manifests/outputs/{plugins → builtins}/sum/success.yaml +13 -17
  302. package/manifests/outputs/{plugins → builtins}/time-sync/failure-config-start-later-end.yaml +20 -23
  303. package/manifests/outputs/{plugins → builtins}/time-sync/success.yaml +38 -35
  304. package/manifests/outputs/features/aggregate-failure-invalid-metrics.yaml +17 -18
  305. package/manifests/outputs/features/aggregate-failure-missing-metric-in-inputs.yaml +17 -18
  306. package/manifests/outputs/features/aggregate-horizontal.yaml +27 -23
  307. package/manifests/outputs/features/aggregate-vertical.yaml +33 -29
  308. package/manifests/outputs/features/aggregate.yaml +33 -29
  309. package/manifests/outputs/{plugins/groupby/failure-invalid-config-group.yaml → features/failure-invalid-regroup.yaml} +16 -25
  310. package/manifests/outputs/{plugins/groupby → features}/failure-missing-cloud-instance-type.yaml +16 -25
  311. package/manifests/outputs/pipelines/cloud-metadata-divide.yaml +14 -18
  312. package/manifests/outputs/pipelines/generics.yaml +239 -0
  313. package/manifests/outputs/pipelines/instance-metadata.yaml +98 -0
  314. package/manifests/outputs/pipelines/mock-obs-time-sync.yaml +246 -147
  315. package/manifests/outputs/pipelines/nesting.yaml +1799 -0
  316. package/manifests/outputs/pipelines/pipeline-teads-sci.yaml +276 -0
  317. package/manifests/outputs/pipelines/sci.yaml +297 -0
  318. package/manifests/outputs/pipelines/teads-curve.yaml +188 -0
  319. package/manifests/outputs/pipelines/zeros.yaml +198 -0
  320. package/package.json +17 -16
  321. package/src/__mocks__/mock-manifest.yaml +2 -3
  322. package/src/{config → if-env/config}/env-template.yml +2 -3
  323. package/src/{builtins → if-run/builtins}/coefficient/README.md +31 -9
  324. package/src/{builtins → if-run/builtins}/copy-param/README.md +30 -11
  325. package/src/{builtins → if-run/builtins}/csv-lookup/README.md +32 -20
  326. package/src/{builtins → if-run/builtins}/divide/README.md +21 -8
  327. package/src/{builtins → if-run/builtins}/exponent/README.md +19 -8
  328. package/src/{builtins → if-run/builtins}/interpolation/README.md +21 -6
  329. package/src/{builtins → if-run/builtins}/mock-observations/README.md +18 -4
  330. package/src/{builtins → if-run/builtins}/multiply/README.md +20 -8
  331. package/src/{builtins → if-run/builtins}/regex/README.md +19 -9
  332. package/src/{builtins → if-run/builtins}/sci/README.md +19 -9
  333. package/src/{builtins → if-run/builtins}/sci-embodied/README.md +17 -5
  334. package/src/{builtins → if-run/builtins}/shell/README.md +19 -7
  335. package/src/{builtins → if-run/builtins}/subtract/README.md +17 -6
  336. package/src/{builtins → if-run/builtins}/sum/README.md +34 -8
  337. package/src/if-run/builtins/time-converter/README.md +136 -0
  338. package/src/if-run/builtins/time-sync/README.md +267 -0
  339. package/build/builtins/coefficient/index.d.ts +0 -2
  340. package/build/builtins/coefficient/index.js +0 -65
  341. package/build/builtins/copy-param/index.d.ts +0 -2
  342. package/build/builtins/copy-param/index.js +0 -68
  343. package/build/builtins/csv-lookup/index.d.ts +0 -2
  344. package/build/builtins/csv-lookup/index.js +0 -188
  345. package/build/builtins/divide/index.d.ts +0 -2
  346. package/build/builtins/divide/index.js +0 -78
  347. package/build/builtins/exponent/index.d.ts +0 -2
  348. package/build/builtins/exponent/index.js +0 -58
  349. package/build/builtins/export-csv-raw.d.ts +0 -4
  350. package/build/builtins/export-csv-raw.js +0 -132
  351. package/build/builtins/export-csv.d.ts +0 -10
  352. package/build/builtins/export-csv.js +0 -96
  353. package/build/builtins/export-yaml.js +0 -30
  354. package/build/builtins/group-by.d.ts +0 -5
  355. package/build/builtins/group-by.js +0 -71
  356. package/build/builtins/interpolation/index.d.ts +0 -2
  357. package/build/builtins/interpolation/index.js +0 -148
  358. package/build/builtins/mock-observations/helpers/common-generator.js +0 -29
  359. package/build/builtins/mock-observations/helpers/rand-int-generator.js +0 -48
  360. package/build/builtins/mock-observations/index.d.ts +0 -2
  361. package/build/builtins/mock-observations/index.js +0 -114
  362. package/build/builtins/mock-observations/interfaces/index.js +0 -3
  363. package/build/builtins/multiply/index.d.ts +0 -2
  364. package/build/builtins/multiply/index.js +0 -57
  365. package/build/builtins/regex/index.d.ts +0 -2
  366. package/build/builtins/regex/index.js +0 -74
  367. package/build/builtins/sci/config.js +0 -44
  368. package/build/builtins/sci/index.d.ts +0 -2
  369. package/build/builtins/sci/index.js +0 -70
  370. package/build/builtins/sci-embodied/index.d.ts +0 -2
  371. package/build/builtins/sci-embodied/index.js +0 -114
  372. package/build/builtins/shell/index.d.ts +0 -2
  373. package/build/builtins/shell/index.js +0 -58
  374. package/build/builtins/subtract/index.d.ts +0 -2
  375. package/build/builtins/subtract/index.js +0 -59
  376. package/build/builtins/sum/index.d.ts +0 -2
  377. package/build/builtins/sum/index.js +0 -64
  378. package/build/builtins/time-sync.d.ts +0 -2
  379. package/build/builtins/time-sync.js +0 -300
  380. package/build/check.js +0 -95
  381. package/build/config/config.d.ts +0 -29
  382. package/build/config/config.js +0 -147
  383. package/build/config/index.js +0 -10
  384. package/build/config/params.d.ts +0 -2
  385. package/build/config/params.js +0 -196
  386. package/build/config/strings.js +0 -105
  387. package/build/diff.js +0 -46
  388. package/build/env.js +0 -38
  389. package/build/index.js +0 -48
  390. package/build/lib/aggregate.d.ts +0 -6
  391. package/build/lib/aggregate.js +0 -77
  392. package/build/lib/compare.js +0 -56
  393. package/build/lib/compute.js +0 -91
  394. package/build/lib/environment.js +0 -75
  395. package/build/lib/exhaust.js +0 -53
  396. package/build/lib/initialize.d.ts +0 -6
  397. package/build/lib/initialize.js +0 -101
  398. package/build/lib/load.js +0 -70
  399. package/build/lib/parameterize.d.ts +0 -6
  400. package/build/lib/parameterize.js +0 -55
  401. package/build/types/aggregation.d.ts +0 -2
  402. package/build/types/aggregation.js +0 -5
  403. package/build/types/compute.js +0 -3
  404. package/build/types/environment.js +0 -3
  405. package/build/types/exhaust-plugin-interface.js +0 -3
  406. package/build/types/if-env.js +0 -3
  407. package/build/types/interface.d.ts +0 -4
  408. package/build/types/interface.js +0 -8
  409. package/build/types/lib/compare.js +0 -3
  410. package/build/types/manifest.js +0 -3
  411. package/build/types/npm.js +0 -3
  412. package/build/types/parameters.d.ts +0 -5
  413. package/build/types/parameters.js +0 -5
  414. package/build/types/plugin-storage.js +0 -3
  415. package/build/types/process-args.d.ts +0 -33
  416. package/build/types/process-args.js +0 -3
  417. package/build/types/time-sync.js +0 -3
  418. package/build/types/util/args.js +0 -3
  419. package/build/util/aggregation-helper.js +0 -55
  420. package/build/util/args.d.ts +0 -37
  421. package/build/util/args.js +0 -205
  422. package/build/util/debug-logger.js +0 -118
  423. package/build/util/fs.js +0 -94
  424. package/build/util/helpers.d.ts +0 -57
  425. package/build/util/helpers.js +0 -251
  426. package/build/util/json.d.ts +0 -4
  427. package/build/util/json.js +0 -36
  428. package/build/util/log-memoize.js +0 -19
  429. package/build/util/npm.js +0 -152
  430. package/build/util/os-checker.js +0 -97
  431. package/build/util/plugin-storage.js +0 -34
  432. package/build/util/validations.js +0 -124
  433. package/build/util/yaml.js +0 -59
  434. package/manifests/outputs/bugs/initialize-error-no-config.yaml +0 -78
  435. package/manifests/outputs/bugs/initialize-error-no-path.yaml +0 -91
  436. package/manifests/outputs/bugs/initialize-error-no-plugins.yaml +0 -74
  437. package/manifests/outputs/divide.yaml +0 -93
  438. package/manifests/outputs/pipelines/mock-obs-group-by-cloud-meta.yaml +0 -645
  439. package/manifests/outputs/pipelines/mock-obs-groupby.yaml +0 -178
  440. package/manifests/outputs/plugins/csv-lookup/cloud-metadata/failure-invalid-instance-type.yaml +0 -27
  441. package/manifests/outputs/plugins/csv-lookup/cloud-metadata/failure-invalid-vendor.yaml +0 -27
  442. package/manifests/outputs/plugins/groupby/success.yaml +0 -101
  443. package/manifests/outputs/plugins/mock-observations/success.yaml +0 -220
  444. package/manifests/outputs/plugins/regex/failure-not-matching-with-regex.yaml +0 -76
  445. package/manifests/outputs/plugins/time-sync/failure-missing-global-config.yaml +0 -78
  446. package/src/__tests__/integration/templates/integration.yaml +0 -16
  447. package/src/builtins/README.md +0 -848
  448. /package/build/{util → common/util}/debug-logger.d.ts +0 -0
  449. /package/build/{util → common/util}/fs.d.ts +0 -0
  450. /package/build/{util → common/util}/logger.d.ts +0 -0
  451. /package/build/{util → common/util}/yaml.d.ts +0 -0
  452. /package/build/{index.d.ts → if-check/index.d.ts} +0 -0
  453. /package/build/{check.d.ts → if-csv/index.d.ts} +0 -0
  454. /package/build/{diff.d.ts → if-diff/index.d.ts} +0 -0
  455. /package/build/{types/util → if-diff/types}/args.d.ts +0 -0
  456. /package/build/{types/lib → if-diff/types}/compare.d.ts +0 -0
  457. /package/build/{env.d.ts → if-env/index.d.ts} +0 -0
  458. /package/build/{types → if-env/types}/if-env.d.ts +0 -0
  459. /package/build/{types → if-env/types}/npm.d.ts +0 -0
  460. /package/build/{builtins → if-run/builtins}/mock-observations/helpers/common-generator.d.ts +0 -0
  461. /package/build/{builtins → if-run/builtins}/mock-observations/helpers/rand-int-generator.d.ts +0 -0
  462. /package/build/{builtins → if-run/builtins}/mock-observations/interfaces/index.d.ts +0 -0
  463. /package/build/{builtins/sci → if-run/builtins/time-converter}/config.d.ts +0 -0
  464. /package/build/{lib → if-run/lib}/compute.d.ts +0 -0
  465. /package/build/{types → if-run/types}/environment.d.ts +0 -0
  466. /package/build/{types → if-run/types}/plugin-storage.d.ts +0 -0
  467. /package/build/{types → if-run/types}/time-sync.d.ts +0 -0
  468. /package/build/{util → if-run/util}/log-memoize.d.ts +0 -0
  469. /package/build/{util → if-run/util}/os-checker.d.ts +0 -0
@@ -79,17 +79,17 @@ tree:
79
79
  children:
80
80
  child-1:
81
81
  pipeline:
82
- - interpolate
83
- - cpu-factor-to-wattage
84
- - wattage-times-duration
85
- - wattage-to-energy-kwh
86
- - calculate-vcpu-ratio
87
- - correct-cpu-energy-for-vcpu-ratio
88
- - sci-embodied
89
- - operational-carbon
90
- - sum-carbon
91
- - sci
92
- config:
82
+ compute:
83
+ - interpolate
84
+ - cpu-factor-to-wattage
85
+ - wattage-times-duration
86
+ - wattage-to-energy-kwh
87
+ - calculate-vcpu-ratio
88
+ - correct-cpu-energy-for-vcpu-ratio
89
+ - sci-embodied
90
+ - operational-carbon
91
+ - sum-carbon
92
+ - sci
93
93
  defaults:
94
94
  cpu/thermal-design-power: 100
95
95
  grid/carbon-intensity: 800
@@ -3,25 +3,51 @@ description: a full pipeline with the aggregate feature enabled
3
3
  tags:
4
4
  aggregation:
5
5
  metrics:
6
- - "carbon"
6
+ - carbon
7
7
  type: "both"
8
8
  initialize:
9
9
  plugins:
10
10
  "interpolate":
11
11
  method: Interpolation
12
- path: 'builtin'
12
+ path: "builtin"
13
13
  global-config:
14
14
  method: linear
15
15
  x: [0, 10, 50, 100]
16
16
  y: [0.12, 0.32, 0.75, 1.02]
17
- input-parameter: 'cpu/utilization'
18
- output-parameter: 'cpu-factor'
17
+ input-parameter: "cpu/utilization"
18
+ output-parameter: "cpu-factor"
19
+ parameter-metadata:
20
+ inputs:
21
+ cpu/utilization:
22
+ unit: percentage
23
+ description: refers to CPU utilization.
24
+ aggregation-method: avg
25
+ outputs:
26
+ cpu-factor:
27
+ unit: kWh
28
+ description: result of interpolate
29
+ aggregation-method: avg
19
30
  "cpu-factor-to-wattage":
20
31
  method: Multiply
21
32
  path: builtin
22
33
  global-config:
23
34
  input-parameters: ["cpu-factor", "cpu/thermal-design-power"]
24
35
  output-parameter: "cpu-wattage"
36
+ parameter-metadata:
37
+ inputs:
38
+ cpu-factor:
39
+ unit: kWh
40
+ description: result of interpolate
41
+ aggregation-method: avg
42
+ cpu/thermal-design-power:
43
+ unit: kWh
44
+ description: thermal design power for a processor
45
+ aggregation-method: avg
46
+ outputs:
47
+ cpu-wattage:
48
+ unit: kWh
49
+ description: the energy used by the CPU
50
+ aggregation-method: sum
25
51
  "wattage-times-duration":
26
52
  method: Multiply
27
53
  path: builtin
@@ -35,6 +61,17 @@ initialize:
35
61
  numerator: cpu-wattage-times-duration
36
62
  denominator: 3600000
37
63
  output: cpu-energy-raw
64
+ parameter-metadata:
65
+ inputs:
66
+ cpu-wattage-times-duration:
67
+ unit: kWh
68
+ description: CPU wattage multiplied by duration
69
+ aggregation-method: sum
70
+ outputs:
71
+ cpu-energy-raw:
72
+ unit: kWh
73
+ description: Raw energy used by CPU in kWh
74
+ aggregation-method: sum
38
75
  "calculate-vcpu-ratio":
39
76
  method: Divide
40
77
  path: "builtin"
@@ -42,6 +79,21 @@ initialize:
42
79
  numerator: vcpus-total
43
80
  denominator: vcpus-allocated
44
81
  output: vcpu-ratio
82
+ parameter-metadata:
83
+ inputs:
84
+ vcpus-total:
85
+ unit: count
86
+ description: total number of vcpus available on a particular resource
87
+ aggregation-method: none
88
+ vcpus-allocated:
89
+ unit: count
90
+ description: number of vcpus allocated to particular resource
91
+ aggregation-method: none
92
+ outputs:
93
+ vcpu-ratio:
94
+ unit: none
95
+ description: Ratio of vCPUs
96
+ aggregation-method: none
45
97
  "correct-cpu-energy-for-vcpu-ratio":
46
98
  method: Divide
47
99
  path: "builtin"
@@ -58,11 +110,32 @@ initialize:
58
110
  global-config:
59
111
  input-parameters: ["cpu-energy-kwh", "grid/carbon-intensity"]
60
112
  output-parameter: "carbon-operational"
113
+ parameter-metadata:
114
+ inputs:
115
+ cpu-energy-kwh:
116
+ unit: kWh
117
+ description: Corrected CPU energy in kWh
118
+ aggregation-method: sum
119
+ grid/carbon-intensity:
120
+ unit: gCO2eq/kWh
121
+ description: Carbon intensity for the grid
122
+ aggregation-method: avg
123
+ outputs:
124
+ carbon-operational:
125
+ unit: gCO2eq
126
+ description: Operational carbon footprint
127
+ aggregation-method: sum
61
128
  "sci":
62
129
  path: "builtin"
63
130
  method: Sci
64
131
  global-config:
65
132
  functional-unit: requests # factor to convert per time to per f.unit
133
+ parameter-metadata:
134
+ inputs:
135
+ requests:
136
+ unit: none
137
+ description: expressed the final SCI value
138
+ aggregation-method: sum
66
139
  "sum-carbon":
67
140
  path: "builtin"
68
141
  method: Sum
@@ -71,6 +144,12 @@ initialize:
71
144
  - carbon-operational
72
145
  - carbon-embodied
73
146
  output-parameter: carbon
147
+ parameter-metadata:
148
+ outputs:
149
+ carbon:
150
+ unit: gCO2eq
151
+ description: product of carbon
152
+ aggregation-method: sum
74
153
  "time-sync":
75
154
  method: TimeSync
76
155
  path: "builtin"
@@ -83,22 +162,21 @@ tree:
83
162
  children:
84
163
  child-1:
85
164
  pipeline:
86
- - interpolate
87
- - cpu-factor-to-wattage
88
- - wattage-times-duration
89
- - wattage-to-energy-kwh
90
- - calculate-vcpu-ratio
91
- - correct-cpu-energy-for-vcpu-ratio
92
- - sci-embodied
93
- - operational-carbon
94
- - sum-carbon
95
- - time-sync
96
- - sci
97
- config:
98
- group-by:
99
- group:
100
- - cloud/region
101
- - cloud/instance-type
165
+ regroup:
166
+ - cloud/region
167
+ - cloud/instance-type
168
+ compute:
169
+ - interpolate
170
+ - cpu-factor-to-wattage
171
+ - wattage-times-duration
172
+ - wattage-to-energy-kwh
173
+ - calculate-vcpu-ratio
174
+ - correct-cpu-energy-for-vcpu-ratio
175
+ - sci-embodied
176
+ - operational-carbon
177
+ - sum-carbon
178
+ - time-sync
179
+ - sci
102
180
  defaults:
103
181
  cpu/thermal-design-power: 100
104
182
  grid/carbon-intensity: 800
@@ -134,22 +212,21 @@ tree:
134
212
  requests: 30
135
213
  child-2:
136
214
  pipeline:
137
- - interpolate
138
- - cpu-factor-to-wattage
139
- - wattage-times-duration
140
- - wattage-to-energy-kwh
141
- - calculate-vcpu-ratio
142
- - correct-cpu-energy-for-vcpu-ratio
143
- - sci-embodied
144
- - operational-carbon
145
- - sum-carbon
146
- - time-sync
147
- - sci
148
- config:
149
- group-by:
150
- group:
151
- - cloud/region
152
- - cloud/instance-type
215
+ regroup:
216
+ - cloud/region
217
+ - cloud/instance-type
218
+ compute:
219
+ - interpolate
220
+ - cpu-factor-to-wattage
221
+ - wattage-times-duration
222
+ - wattage-to-energy-kwh
223
+ - calculate-vcpu-ratio
224
+ - correct-cpu-energy-for-vcpu-ratio
225
+ - sci-embodied
226
+ - operational-carbon
227
+ - sum-carbon
228
+ - time-sync
229
+ - sci
153
230
  defaults:
154
231
  cpu/thermal-design-power: 100
155
232
  grid/carbon-intensity: 800
@@ -182,4 +259,4 @@ tree:
182
259
  cpu/utilization: 33
183
260
  cloud/instance-type: A1
184
261
  cloud/region: uk-west
185
- requests: 180
262
+ requests: 180
@@ -3,7 +3,7 @@ description: a full pipeline seeded with data from mock-observations feature
3
3
  tags:
4
4
  aggregation:
5
5
  metrics:
6
- - "carbon"
6
+ - carbon
7
7
  type: "both"
8
8
  initialize:
9
9
  plugins:
@@ -12,71 +12,185 @@ initialize:
12
12
  method: MockObservations
13
13
  path: "builtin"
14
14
  global-config:
15
- timestamp-from: 2023-07-06T00:00
16
- timestamp-to: 2023-07-06T00:10
17
- duration: 60
15
+ timestamp-from: "2023-12-12T00:00:00.000Z"
16
+ timestamp-to: "2023-12-12T00:00:13.000Z"
17
+ duration: 30
18
18
  components:
19
19
  - cloud/instance-type: A1
20
20
  generators:
21
21
  common:
22
22
  cloud/region: uk-west
23
- common-key: common-val
24
23
  randint:
25
24
  cpu/utilization:
26
25
  min: 1
27
26
  max: 99
28
- "interpolate":
27
+ parameter-metadata:
28
+ inputs:
29
+ timestamp:
30
+ description: refers to the time of occurrence of the input
31
+ unit: RFC3339
32
+ aggregation-method: none
33
+ duration:
34
+ description: refers to the duration of the input
35
+ unit: seconds
36
+ aggregation-method: sum
37
+ cloud/instance-type:
38
+ description: type of Cloud Instance name used in the cloud provider APIs
39
+ unit: none
40
+ aggregation-method: none
41
+ cloud/region:
42
+ description: region cloud instance
43
+ unit: none
44
+ aggregation-method: none
45
+ interpolate:
29
46
  method: Interpolation
30
- path: 'builtin'
47
+ path: "builtin"
31
48
  global-config:
32
49
  method: linear
33
50
  x: [0, 10, 50, 100]
34
51
  y: [0.12, 0.32, 0.75, 1.02]
35
- input-parameter: 'cpu/utilization'
36
- output-parameter: 'cpu-factor'
37
- "cpu-factor-to-wattage":
52
+ input-parameter: "cpu/utilization"
53
+ output-parameter: "cpu-factor"
54
+ parameter-metadata:
55
+ inputs:
56
+ cpu/utilization:
57
+ description: refers to CPU utilization.
58
+ unit: percentage
59
+ aggregation-method: avg
60
+ outputs:
61
+ cpu-factor:
62
+ description: result of interpolate
63
+ unit: kWh
64
+ aggregation-method: avg
65
+ cpu-factor-to-wattage:
38
66
  method: Multiply
39
67
  path: builtin
40
68
  global-config:
41
69
  input-parameters: ["cpu-factor", "cpu/thermal-design-power"]
42
70
  output-parameter: "cpu-wattage"
43
- "wattage-times-duration":
71
+ parameter-metadata:
72
+ inputs:
73
+ cpu-factor:
74
+ description: result of interpolate
75
+ unit: kWh
76
+ aggregation-method: avg
77
+ cpu/thermal-design-power:
78
+ description: thermal design power for a processor
79
+ unit: kWh
80
+ aggregation-method: avg
81
+ outputs:
82
+ cpu-wattage:
83
+ description: the energy used by the CPU
84
+ unit: kWh
85
+ aggregation-method: sum
86
+ wattage-times-duration:
44
87
  method: Multiply
45
88
  path: builtin
46
89
  global-config:
47
90
  input-parameters: ["cpu-wattage", "duration"]
48
91
  output-parameter: "cpu-wattage-times-duration"
49
- "wattage-to-energy-kwh":
92
+ parameter-metadata:
93
+ inputs:
94
+ cpu-wattage:
95
+ description: Energy used by the CPU
96
+ unit: kWh
97
+ aggregation-method: sum
98
+ duration:
99
+ description: Duration of the observation
100
+ unit: seconds
101
+ aggregation-method: sum
102
+ outputs:
103
+ cpu-wattage-times-duration:
104
+ description: CPU wattage multiplied by duration
105
+ unit: kWh
106
+ aggregation-method: sum
107
+ wattage-to-energy-kwh:
50
108
  method: Divide
51
109
  path: "builtin"
52
110
  global-config:
53
111
  numerator: cpu-wattage-times-duration
54
112
  denominator: 3600000
55
113
  output: cpu-energy-raw
56
- "calculate-vcpu-ratio":
114
+ parameter-metadata:
115
+ inputs:
116
+ cpu-wattage-times-duration:
117
+ description: CPU wattage multiplied by duration
118
+ unit: kWh
119
+ aggregation-method: sum
120
+ outputs:
121
+ cpu-energy-raw:
122
+ description: Raw energy used by CPU in kWh
123
+ unit: kWh
124
+ aggregation-method: sum
125
+ calculate-vcpu-ratio:
57
126
  method: Divide
58
127
  path: "builtin"
59
128
  global-config:
60
129
  numerator: vcpus-total
61
130
  denominator: vcpus-allocated
62
131
  output: vcpu-ratio
63
- "correct-cpu-energy-for-vcpu-ratio":
132
+ parameter-metadata:
133
+ inputs:
134
+ vcpus-total:
135
+ description: total number of vcpus available on a particular resource
136
+ unit: count
137
+ aggregation-method: none
138
+ vcpus-allocated:
139
+ description: number of vcpus allocated to particular resource
140
+ unit: count
141
+ aggregation-method: none
142
+ outputs:
143
+ vcpu-ratio:
144
+ description: Ratio of vCPUs
145
+ unit: none
146
+ aggregation-method: none
147
+ correct-cpu-energy-for-vcpu-ratio:
64
148
  method: Divide
65
149
  path: "builtin"
66
150
  global-config:
67
151
  numerator: cpu-energy-raw
68
152
  denominator: vcpu-ratio
69
153
  output: cpu-energy-kwh
70
- "sci-embodied":
154
+ parameter-metadata:
155
+ inputs:
156
+ cpu-energy-raw:
157
+ description: Raw energy used by CPU in kWh
158
+ unit: kWh
159
+ aggregation-method: sum
160
+ vcpu-ratio:
161
+ description: Ratio of vCPUs
162
+ unit: none
163
+ aggregation-method: none
164
+ outputs:
165
+ cpu-energy-kwh:
166
+ description: Corrected CPU energy in kWh
167
+ unit: kWh
168
+ aggregation-method: sum
169
+ sci-embodied:
71
170
  path: "builtin"
72
171
  method: SciEmbodied
73
- "operational-carbon":
172
+ operational-carbon:
74
173
  method: Multiply
75
174
  path: builtin
76
175
  global-config:
77
176
  input-parameters: ["cpu-energy-kwh", "grid/carbon-intensity"]
78
177
  output-parameter: "carbon-operational"
79
- "sum-carbon":
178
+ parameter-metadata:
179
+ inputs:
180
+ cpu-energy-kwh:
181
+ description: Corrected CPU energy in kWh
182
+ unit: kWh
183
+ aggregation-method: sum
184
+ grid/carbon-intensity:
185
+ description: Carbon intensity for the grid
186
+ unit: gCO2eq/kWh
187
+ aggregation-method: avg
188
+ outputs:
189
+ carbon-operational:
190
+ description: Operational carbon footprint
191
+ unit: gCO2eq
192
+ aggregation-method: sum
193
+ sum-carbon:
80
194
  path: "builtin"
81
195
  method: Sum
82
196
  global-config:
@@ -84,12 +198,38 @@ initialize:
84
198
  - carbon-operational
85
199
  - carbon-embodied
86
200
  output-parameter: carbon
87
- "sci":
201
+ parameter-metadata:
202
+ inputs:
203
+ carbon-operational:
204
+ description: Operational carbon footprint
205
+ unit: gCO2eq
206
+ aggregation-method: sum
207
+ carbon-embodied:
208
+ description: Embodied carbon footprint
209
+ unit: gCO2eq
210
+ aggregation-method: sum
211
+ outputs:
212
+ carbon:
213
+ description: Total carbon footprint
214
+ unit: gCO2eq
215
+ aggregation-method: sum
216
+ sci:
88
217
  path: "builtin"
89
218
  method: Sci
90
219
  global-config:
91
220
  functional-unit: "requests"
92
- "time-sync":
221
+ parameter-metadata:
222
+ inputs:
223
+ requests:
224
+ description: expressed the final SCI value
225
+ unit: none
226
+ aggregation-method: sum
227
+ outputs:
228
+ sci:
229
+ description: Scientific Carbon Intensity
230
+ unit: none
231
+ aggregation-method: none
232
+ time-sync:
93
233
  method: TimeSync
94
234
  path: "builtin"
95
235
  global-config:
@@ -97,30 +237,27 @@ initialize:
97
237
  end-time: "2023-12-12T00:01:00.000Z"
98
238
  interval: 5
99
239
  allow-padding: true
100
- "group-by":
101
- path: builtin
102
- method: GroupBy
103
- # outputs: ['yaml']
104
240
  tree:
105
241
  children:
106
242
  child-1:
107
243
  pipeline:
108
- - interpolate
109
- - cpu-factor-to-wattage
110
- - wattage-times-duration
111
- - wattage-to-energy-kwh
112
- - calculate-vcpu-ratio
113
- - correct-cpu-energy-for-vcpu-ratio
114
- - sci-embodied
115
- - operational-carbon
116
- - sum-carbon
117
- - time-sync
118
- - sci
119
- config:
120
- group-by:
121
- group:
122
- - cloud/region
123
- - instance-type
244
+ observe:
245
+ - mock-observations
246
+ regroup:
247
+ - cloud/region
248
+ - cloud/instance-type
249
+ compute:
250
+ - interpolate
251
+ - cpu-factor-to-wattage
252
+ - wattage-times-duration
253
+ - wattage-to-energy-kwh
254
+ - calculate-vcpu-ratio
255
+ - correct-cpu-energy-for-vcpu-ratio
256
+ - sci-embodied
257
+ - operational-carbon
258
+ - sum-carbon
259
+ - time-sync
260
+ - sci
124
261
  defaults:
125
262
  cpu/thermal-design-power: 100
126
263
  grid/carbon-intensity: 800
@@ -130,48 +267,25 @@ tree:
130
267
  vcpus-total: 8
131
268
  vcpus-allocated: 1
132
269
  inputs:
133
- - timestamp: "2023-12-12T00:00:00.000Z"
134
- cloud/instance-type: A1
135
- cloud/region: uk-west
136
- duration: 1
137
- cpu/utilization: 10
138
- requests: 30
139
- - timestamp: "2023-12-12T00:00:01.000Z"
140
- duration: 5
141
- cpu/utilization: 20
142
- cloud/instance-type: A1
143
- cloud/region: uk-west
144
- requests: 40
145
- - timestamp: "2023-12-12T00:00:06.000Z"
146
- duration: 7
147
- cpu/utilization: 15
148
- cloud/instance-type: A1
149
- cloud/region: uk-west
150
- requests: 30
151
- - timestamp: "2023-12-12T00:00:13.000Z"
152
- duration: 30
153
- cloud/instance-type: A1
154
- cloud/region: uk-west
155
- cpu/utilization: 15
156
- requests: 50
157
270
  child-2:
158
271
  pipeline:
159
- - interpolate
160
- - cpu-factor-to-wattage
161
- - wattage-times-duration
162
- - wattage-to-energy-kwh
163
- - calculate-vcpu-ratio
164
- - correct-cpu-energy-for-vcpu-ratio
165
- - sci-embodied
166
- - operational-carbon
167
- - sum-carbon
168
- - time-sync
169
- - sci
170
- config:
171
- group-by:
172
- group:
173
- - cloud/region
174
- - cloud/instance-type
272
+ observe:
273
+ - mock-observations
274
+ regroup:
275
+ - cloud/region
276
+ - cloud/instance-type
277
+ compute:
278
+ - interpolate
279
+ - cpu-factor-to-wattage
280
+ - wattage-times-duration
281
+ - wattage-to-energy-kwh
282
+ - calculate-vcpu-ratio
283
+ - correct-cpu-energy-for-vcpu-ratio
284
+ - sci-embodied
285
+ - operational-carbon
286
+ - sum-carbon
287
+ - time-sync
288
+ - sci
175
289
  defaults:
176
290
  cpu/thermal-design-power: 100
177
291
  grid/carbon-intensity: 800
@@ -181,27 +295,3 @@ tree:
181
295
  vcpus-total: 8
182
296
  vcpus-allocated: 1
183
297
  inputs:
184
- - timestamp: "2023-12-12T00:00:00.000Z"
185
- duration: 1
186
- cpu/utilization: 30
187
- cloud/instance-type: A1
188
- cloud/region: uk-west
189
- requests: 30
190
- - timestamp: "2023-12-12T00:00:01.000Z"
191
- duration: 5
192
- cpu/utilization: 28
193
- cloud/instance-type: A1
194
- cloud/region: uk-west
195
- requests: 40
196
- - timestamp: "2023-12-12T00:00:06.000Z"
197
- duration: 7
198
- cpu/utilization: 40
199
- cloud/instance-type: A1
200
- cloud/region: uk-west
201
- requests: 50
202
- - timestamp: "2023-12-12T00:00:13.000Z"
203
- duration: 30
204
- cpu/utilization: 33
205
- cloud/instance-type: A1
206
- cloud/region: uk-west
207
- requests: 60
@@ -0,0 +1,34 @@
1
+ name: demo
2
+ description: demo for observe feat
3
+ tags:
4
+ initialize:
5
+ plugins:
6
+ mock-observations:
7
+ kind: plugin
8
+ method: MockObservations
9
+ path: "builtin"
10
+ global-config:
11
+ timestamp-from: 2023-07-06T00:00
12
+ timestamp-to: 2023-07-06T00:01
13
+ duration: 60
14
+ components:
15
+ - cloud/instance-type: A1
16
+ - cloud/instance-type: B1
17
+ generators:
18
+ common:
19
+ region: uk-west
20
+ common-key: common-val
21
+ randint:
22
+ cpu/utilization:
23
+ min: 1
24
+ max: 99
25
+ memory/utilization:
26
+ min: 1
27
+ max: 99
28
+ tree:
29
+ children:
30
+ child:
31
+ pipeline:
32
+ observe:
33
+ - mock-observations
34
+ inputs: null