@grnsft/if 0.1.8 → 0.2.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 (208) hide show
  1. package/.commitlintrc.js +45 -0
  2. package/.husky/commit-msg +4 -0
  3. package/.husky/pre-commit +6 -0
  4. package/CONTRIBUTING.md +81 -98
  5. package/README.md +16 -12
  6. package/build/config/config.d.ts +4 -5
  7. package/build/config/config.js +16 -12
  8. package/build/config/index.d.ts +1 -0
  9. package/build/config/index.js +4 -2
  10. package/build/config/params.d.ts +2 -0
  11. package/build/config/params.js +146 -0
  12. package/build/config/strings.d.ts +14 -8
  13. package/build/config/strings.js +18 -12
  14. package/build/index.js +18 -38
  15. package/build/lib/aggregate.d.ts +6 -0
  16. package/build/lib/aggregate.js +72 -0
  17. package/build/lib/compute.d.ts +5 -0
  18. package/build/lib/compute.js +84 -0
  19. package/build/lib/exhaust.d.ts +6 -0
  20. package/build/lib/exhaust.js +47 -0
  21. package/build/lib/initialize.d.ts +6 -0
  22. package/build/lib/initialize.js +98 -0
  23. package/build/lib/load.d.ts +6 -0
  24. package/build/lib/load.js +24 -0
  25. package/build/lib/parameterize.d.ts +5 -0
  26. package/build/lib/parameterize.js +49 -0
  27. package/build/models/export-csv.d.ts +2 -0
  28. package/build/models/export-csv.js +129 -0
  29. package/build/models/export-log.d.ts +4 -0
  30. package/build/models/export-log.js +18 -0
  31. package/build/models/export-yaml.d.ts +4 -0
  32. package/build/models/export-yaml.js +24 -0
  33. package/build/models/group-by.d.ts +11 -0
  34. package/build/models/group-by.js +56 -0
  35. package/build/models/index.d.ts +2 -1
  36. package/build/models/index.js +5 -3
  37. package/build/models/time-sync.d.ts +2 -54
  38. package/build/models/time-sync.js +216 -147
  39. package/build/types/aggregation.d.ts +3 -0
  40. package/build/types/aggregation.js +5 -0
  41. package/build/types/compute.d.ts +25 -0
  42. package/build/types/compute.js +3 -0
  43. package/build/types/exhaust-plugin-interface.d.ts +7 -0
  44. package/build/types/exhaust-plugin-interface.js +3 -0
  45. package/build/types/group-by.d.ts +3 -0
  46. package/build/types/group-by.js +3 -0
  47. package/build/types/initialize.d.ts +4 -0
  48. package/build/types/initialize.js +3 -0
  49. package/build/types/interface.d.ts +8 -0
  50. package/build/types/interface.js +3 -0
  51. package/build/types/load.d.ts +7 -0
  52. package/build/types/load.js +3 -0
  53. package/build/types/manifest.d.ts +40 -0
  54. package/build/types/manifest.js +3 -0
  55. package/build/types/parameters.d.ts +15 -0
  56. package/build/types/parameters.js +5 -0
  57. package/build/types/process-args.d.ts +4 -5
  58. package/build/types/process-args.js +1 -1
  59. package/build/types/time-sync.d.ts +10 -2
  60. package/build/types/time-sync.js +1 -1
  61. package/build/util/aggregation-helper.d.ts +6 -0
  62. package/build/util/aggregation-helper.js +56 -0
  63. package/build/util/args.d.ts +7 -3
  64. package/build/util/args.js +46 -18
  65. package/build/util/errors.d.ts +1 -1
  66. package/build/util/errors.js +8 -4
  67. package/build/util/helpers.d.ts +4 -0
  68. package/build/util/helpers.js +23 -4
  69. package/build/util/json.d.ts +4 -0
  70. package/build/util/json.js +16 -0
  71. package/build/util/logger.d.ts +5 -0
  72. package/build/util/logger.js +40 -0
  73. package/build/util/validations.d.ts +30 -21
  74. package/build/util/validations.js +54 -55
  75. package/build/util/yaml.js +27 -4
  76. package/examples/manifests/azure-importer.yml +24 -0
  77. package/examples/manifests/basic-demo.yml +75 -0
  78. package/examples/manifests/basic.yml +27 -0
  79. package/examples/manifests/boavizta-pipeline.yml +85 -0
  80. package/examples/{impls/case-studies → manifests}/boavizta.yml +14 -14
  81. package/examples/{impls/test → manifests}/ccf.yml +9 -10
  82. package/examples/manifests/cim.yml +20 -0
  83. package/examples/manifests/cloud-metadata.yml +41 -0
  84. package/examples/manifests/co2js.yml +30 -0
  85. package/examples/manifests/coefficient.yml +23 -0
  86. package/examples/manifests/csv-export.yml +34 -0
  87. package/examples/manifests/e-mem.yml +21 -0
  88. package/examples/{impls/test → manifests}/e-net.yml +9 -8
  89. package/examples/manifests/generics.yml +71 -0
  90. package/examples/manifests/group-by.yml +48 -0
  91. package/examples/manifests/mock-observation.yml +33 -0
  92. package/examples/manifests/multiply.yml +23 -0
  93. package/examples/manifests/nesting-demo.yml +89 -0
  94. package/examples/manifests/nesting.yml +215 -0
  95. package/examples/manifests/pipeline-demo-1.yml +85 -0
  96. package/examples/manifests/pipeline-demo-2.yml +149 -0
  97. package/examples/manifests/pipeline-demo.yml +128 -0
  98. package/examples/manifests/pipeline-teads-sci.yml +82 -0
  99. package/examples/manifests/pipeline-with-generics.yml +147 -0
  100. package/examples/manifests/pipeline-with-mocks.yml +146 -0
  101. package/examples/{impls/test → manifests}/sci-e.yml +6 -8
  102. package/examples/manifests/sci-m.yml +23 -0
  103. package/examples/{impls/test → manifests}/sci-o.yml +10 -10
  104. package/examples/{impls/test → manifests}/sci.yml +10 -9
  105. package/examples/manifests/shell.yml +20 -0
  106. package/examples/manifests/sum.yml +23 -0
  107. package/examples/{impls/test → manifests}/tdp-finder.yml +6 -7
  108. package/examples/manifests/teads-aws.yml +22 -0
  109. package/examples/manifests/teads-curve.yml +20 -0
  110. package/examples/manifests/time-sync.yml +32 -0
  111. package/examples/manifests/watt-time.yml +42 -0
  112. package/jest.config.js +6 -1
  113. package/package.json +13 -8
  114. package/src/__tests__/integration/templates/integration.yaml +16 -0
  115. package/src/models/README.md +9 -7
  116. package/tsconfig.test.json +1 -1
  117. package/Makefile +0 -16
  118. package/build/config/units.yaml +0 -112
  119. package/build/lib/models-universe.d.ts +0 -36
  120. package/build/lib/models-universe.js +0 -113
  121. package/build/lib/observatory.d.ts +0 -20
  122. package/build/lib/observatory.js +0 -31
  123. package/build/lib/planet-aggregator.d.ts +0 -6
  124. package/build/lib/planet-aggregator.js +0 -35
  125. package/build/lib/supercomputer.d.ts +0 -37
  126. package/build/lib/supercomputer.js +0 -148
  127. package/build/types/helpers.d.ts +0 -1
  128. package/build/types/helpers.js +0 -3
  129. package/build/types/impl.d.ts +0 -45
  130. package/build/types/impl.js +0 -5
  131. package/build/types/model-interface.d.ts +0 -14
  132. package/build/types/model-interface.js +0 -3
  133. package/build/types/models-universe.d.ts +0 -23
  134. package/build/types/models-universe.js +0 -3
  135. package/build/types/planet-aggregator.d.ts +0 -6
  136. package/build/types/planet-aggregator.js +0 -3
  137. package/build/types/supercomputer.d.ts +0 -4
  138. package/build/types/supercomputer.js +0 -3
  139. package/build/types/units-dealer.d.ts +0 -3
  140. package/build/types/units-dealer.js +0 -3
  141. package/build/types/units.d.ts +0 -11
  142. package/build/types/units.js +0 -37
  143. package/build/util/units-dealer.d.ts +0 -10
  144. package/build/util/units-dealer.js +0 -32
  145. package/coverage/clover.xml +0 -379
  146. package/coverage/coverage-final.json +0 -14
  147. package/coverage/lcov-report/base.css +0 -224
  148. package/coverage/lcov-report/block-navigation.js +0 -87
  149. package/coverage/lcov-report/config/config.ts.html +0 -250
  150. package/coverage/lcov-report/config/index.html +0 -146
  151. package/coverage/lcov-report/config/index.ts.html +0 -91
  152. package/coverage/lcov-report/config/strings.ts.html +0 -208
  153. package/coverage/lcov-report/favicon.png +0 -0
  154. package/coverage/lcov-report/index.html +0 -161
  155. package/coverage/lcov-report/lib/index.html +0 -161
  156. package/coverage/lcov-report/lib/models-universe.ts.html +0 -517
  157. package/coverage/lcov-report/lib/observatory.ts.html +0 -187
  158. package/coverage/lcov-report/lib/planet-aggregator.ts.html +0 -274
  159. package/coverage/lcov-report/lib/supercomputer.ts.html +0 -472
  160. package/coverage/lcov-report/models/index.html +0 -131
  161. package/coverage/lcov-report/models/index.ts.html +0 -88
  162. package/coverage/lcov-report/models/planet-aggregator.ts.html +0 -271
  163. package/coverage/lcov-report/models/time-sync.ts.html +0 -1165
  164. package/coverage/lcov-report/prettify.css +0 -1
  165. package/coverage/lcov-report/prettify.js +0 -2
  166. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  167. package/coverage/lcov-report/sorter.js +0 -196
  168. package/coverage/lcov-report/util/args.ts.html +0 -289
  169. package/coverage/lcov-report/util/errors.ts.html +0 -166
  170. package/coverage/lcov-report/util/index.html +0 -161
  171. package/coverage/lcov-report/util/units-dealer.ts.html +0 -199
  172. package/coverage/lcov-report/util/yaml.ts.html +0 -193
  173. package/coverage/lcov.info +0 -637
  174. package/examples/impls/case-studies/accenture.yml +0 -155
  175. package/examples/impls/case-studies/aggregation.yml +0 -97
  176. package/examples/impls/case-studies/aveva.yaml +0 -48
  177. package/examples/impls/case-studies/azure-yassine.yaml +0 -67
  178. package/examples/impls/case-studies/dow_msft.yml +0 -173
  179. package/examples/impls/case-studies/farm-insights.yaml +0 -35
  180. package/examples/impls/case-studies/gsf-website.yaml +0 -93
  181. package/examples/impls/case-studies/msft-eshoppen.yaml +0 -162
  182. package/examples/impls/case-studies/msft-green-ai.yaml +0 -58
  183. package/examples/impls/case-studies/ntt-data-on-premise.yaml +0 -201
  184. package/examples/impls/test/aggregation-test.yml +0 -109
  185. package/examples/impls/test/azure.yml +0 -26
  186. package/examples/impls/test/if-demo.yml +0 -61
  187. package/examples/impls/test/large-impl.yml +0 -257303
  188. package/examples/impls/test/metadata.yml +0 -21
  189. package/examples/impls/test/nesting.yml +0 -113
  190. package/examples/impls/test/sci-m.yml +0 -24
  191. package/examples/impls/test/shell.yml +0 -19
  192. package/examples/impls/test/time-sync.yml +0 -75
  193. package/examples/ompls/aggregation-test.yml +0 -340
  194. package/examples/ompls/azure.yml +0 -145
  195. package/examples/ompls/ccf.yml +0 -29
  196. package/examples/ompls/complex-pipeline.yml +0 -105
  197. package/examples/ompls/full-sci.yml +0 -64
  198. package/examples/ompls/if-demo.yml +0 -517
  199. package/examples/ompls/metadata.yml +0 -29
  200. package/examples/ompls/nesting.yml +0 -113
  201. package/examples/ompls/sci-e.yml +0 -23
  202. package/examples/ompls/sci-m.yml +0 -33
  203. package/examples/ompls/sci-o.yml +0 -29
  204. package/examples/ompls/sci.yml +0 -37
  205. package/examples/ompls/shell.yml +0 -23
  206. package/examples/ompls/time-sync.yml +0 -212
  207. package/src/config/units.yaml +0 -112
  208. package/tsconfig.build.tsbuildinfo +0 -1
@@ -0,0 +1,21 @@
1
+ name: e-mem
2
+ description:
3
+ tags:
4
+ initialize:
5
+ plugins:
6
+ e-mem:
7
+ method: EMem
8
+ path: "@grnsft/if-plugins"
9
+ global-config:
10
+ energy-per-gb: 0.002
11
+ tree:
12
+ children:
13
+ child:
14
+ pipeline:
15
+ - e-mem
16
+ config:
17
+ inputs:
18
+ - timestamp: 2023-08-06T00:00
19
+ duration: 3600
20
+ memory/utilization: 40
21
+ memory/capacity: 1
@@ -2,11 +2,13 @@ name: sci-e-demo
2
2
  description:
3
3
  tags:
4
4
  initialize:
5
- models:
6
- - name: e-net
7
- model: ENetModel
8
- path: '@grnsft/if-models'
9
- graph:
5
+ plugins:
6
+ e-net:
7
+ method: ENet
8
+ path: "@grnsft/if-plugins"
9
+ global-config:
10
+ energy-per-gb: 0.02
11
+ tree:
10
12
  children:
11
13
  child:
12
14
  pipeline:
@@ -16,6 +18,5 @@ graph:
16
18
  inputs:
17
19
  - timestamp: 2023-08-06T00:00
18
20
  duration: 3600
19
- data-in: 1
20
- data-out: 2
21
- network-energy-coefficient: 0.02
21
+ network/data-in: 1
22
+ network/data-out: 2
@@ -0,0 +1,71 @@
1
+ name: generic-arithmetic-demo
2
+ description:
3
+ tags:
4
+ initialize:
5
+ plugins:
6
+ teads-curve:
7
+ path: '@grnsft/if-unofficial-plugins'
8
+ method: TeadsCurve
9
+ global-config:
10
+ interpolation: spline
11
+ "sum":
12
+ path: "@grnsft/if-plugins"
13
+ method: Sum
14
+ global-config:
15
+ input-parameters:
16
+ - cpu/energy
17
+ - network/energy
18
+ output-parameter: energy-sum
19
+ "coefficient":
20
+ path: "@grnsft/if-plugins"
21
+ method: Coefficient
22
+ global-config:
23
+ input-parameter: energy
24
+ coefficient: 2
25
+ output-parameter: energy-doubled
26
+ "multiply":
27
+ path: '@grnsft/if-plugins'
28
+ method: Multiply
29
+ global-config:
30
+ input-parameters: ['cpu/utilization', 'duration']
31
+ output-parameter: 'cpu-times-duration'
32
+ tree:
33
+ children:
34
+ child-1:
35
+ pipeline:
36
+ - teads-curve
37
+ - sum
38
+ - coefficient
39
+ - multiply
40
+ config:
41
+ defaults:
42
+ cpu/thermal-design-power: 100
43
+ inputs:
44
+ - timestamp: "2023-12-12T00:00:00.000Z"
45
+ instance-type: A1
46
+ region: uk-west
47
+ duration: 1
48
+ cpu/utilization: 50
49
+ network/energy: 10
50
+ energy: 5
51
+ - timestamp: "2023-12-12T00:00:01.000Z"
52
+ duration: 5
53
+ cpu/utilization: 20
54
+ instance-type: A1
55
+ region: uk-west
56
+ network/energy: 10
57
+ energy: 5
58
+ - timestamp: "2023-12-12T00:00:06.000Z"
59
+ duration: 7
60
+ cpu/utilization: 15
61
+ instance-type: A1
62
+ region: uk-west
63
+ network/energy: 10
64
+ energy: 5
65
+ - timestamp: "2023-12-12T00:00:13.000Z"
66
+ duration: 30
67
+ instance-type: A1
68
+ region: uk-west
69
+ cpu/utilization: 15
70
+ network/energy: 10
71
+ energy: 5
@@ -0,0 +1,48 @@
1
+ name: groupby-demo
2
+ description: demo pipeline
3
+ initialize:
4
+ plugins:
5
+ group-by:
6
+ path: 'builtin'
7
+ method: GroupBy
8
+ tree:
9
+ children:
10
+ my-app:
11
+ pipeline:
12
+ - group-by
13
+ config:
14
+ group-by:
15
+ group:
16
+ - region
17
+ - instance-type
18
+ inputs:
19
+ - timestamp: 2023-07-06T00:00
20
+ duration: 300
21
+ instance-type: A1
22
+ region: uk-west
23
+ cpu-util: 99
24
+ - timestamp: 2023-07-06T05:00
25
+ duration: 300
26
+ instance-type: A1
27
+ region: uk-west
28
+ cpu-util: 23
29
+ - timestamp: 2023-07-06T10:00
30
+ duration: 300
31
+ instance-type: A1
32
+ region: uk-west
33
+ cpu-util: 12
34
+ - timestamp: 2023-07-06T00:00 # note this time restarts at the start timstamp
35
+ duration: 300
36
+ instance-type: B1
37
+ region: uk-west
38
+ cpu-util: 11
39
+ - timestamp: 2023-07-06T05:00
40
+ duration: 300
41
+ instance-type: B1
42
+ region: uk-west
43
+ cpu-util: 67
44
+ - timestamp: 2023-07-06T10:00
45
+ duration: 300
46
+ instance-type: B1
47
+ region: uk-west
48
+ cpu-util: 1
@@ -0,0 +1,33 @@
1
+ name: mock-observation-demo
2
+ description: example invoking mock-observation plugin
3
+ tags:
4
+ initialize:
5
+ plugins:
6
+ mock-observations:
7
+ kind: plugin
8
+ method: MockObservations
9
+ path: "@grnsft/if-plugins"
10
+ global-config:
11
+ timestamp-from: 2023-07-06T00:00
12
+ timestamp-to: 2023-07-06T00:10
13
+ duration: 60
14
+ components:
15
+ - instance-type: A1
16
+ - 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
+ - mock-observations
33
+ inputs:
@@ -0,0 +1,23 @@
1
+ name: multiply-demo
2
+ description:
3
+ tags:
4
+ initialize:
5
+ plugins:
6
+ multiply:
7
+ method: Multiply
8
+ path: "@grnsft/if-plugins"
9
+ global-config:
10
+ input-parameters: ["cpu/energy", "network/energy"]
11
+ output-parameter: "energy-product"
12
+ tree:
13
+ children:
14
+ child:
15
+ pipeline:
16
+ - multiply
17
+ config:
18
+ sum:
19
+ inputs:
20
+ - timestamp: 2023-08-06T00:00
21
+ duration: 3600
22
+ cpu/energy: 0.001
23
+ network/energy: 0.002
@@ -0,0 +1,89 @@
1
+ name: nesting-demo
2
+ description: null
3
+ tags:
4
+ kind: web
5
+ complexity: moderate
6
+ category: on-premise
7
+ params:
8
+ aggregation:
9
+ type: vertical
10
+ metrics:
11
+ - "energy"
12
+ initialize:
13
+ plugins:
14
+ teads-curve:
15
+ path: "@grnsft/if-unofficial-plugins"
16
+ method: TeadsCurve
17
+ global-config:
18
+ interpolation: spline
19
+ sci-e:
20
+ path: "@grnsft/if-plugins"
21
+ method: SciE
22
+ sci-m:
23
+ path: "@grnsft/if-plugins"
24
+ method: SciM
25
+ sci-o:
26
+ path: "@grnsft/if-plugins"
27
+ method: SciO
28
+ "time-sync":
29
+ method: TimeSync
30
+ path: "builtin"
31
+ global-config:
32
+ start-time: "2023-12-12T00:00:00.000Z"
33
+ end-time: "2023-12-12T00:01:00.000Z"
34
+ interval: 5
35
+ allow-padding: true
36
+ sci:
37
+ path: "@grnsft/if-plugins"
38
+ method: Sci
39
+ global-config:
40
+ functional-unit: "requests"
41
+ functional-unit-time: "1 minute"
42
+ tree:
43
+ children:
44
+ child-0:
45
+ defaults:
46
+ cpu/thermal-design-power: 100
47
+ grid/carbon-intensity: 800
48
+ device/emissions-embodied: 1533.120 # gCO2eq
49
+ time-reserved: 3600 # 1hr in seconds
50
+ device/expected-lifespan: 94608000 # 3 years in seconds
51
+ resources-reserved: 1
52
+ resources-total: 8
53
+ functional-unit-time: "1 min"
54
+ pipeline:
55
+ - teads-curve
56
+ - sci-e
57
+ - sci-m
58
+ - sci-o
59
+ - time-sync
60
+ - sci
61
+ inputs:
62
+ - timestamp: 2023-12-12T00:00
63
+ duration: 10
64
+ cpu/utilization: 50
65
+ network/energy: 1
66
+ energy: 1
67
+ child-1:
68
+ defaults:
69
+ cpu/thermal-design-power: 100
70
+ grid/carbon-intensity: 800
71
+ device/emissions-embodied: 1533.120 # gCO2eq
72
+ time-reserved: 3600 # 1hr in seconds
73
+ device/expected-lifespan: 94608000 # 3 years in seconds
74
+ resources-reserved: 1
75
+ resources-total: 8
76
+ functional-unit-time: "1 min"
77
+ pipeline:
78
+ - teads-curve
79
+ - sci-e
80
+ - sci-m
81
+ - sci-o
82
+ - time-sync
83
+ - sci
84
+ inputs:
85
+ - timestamp: 2023-12-12T00:00
86
+ duration: 10
87
+ cpu/utilization: 30
88
+ network/energy: 1
89
+ energy: 1
@@ -0,0 +1,215 @@
1
+ name: nesting-demo
2
+ description: null
3
+ tags:
4
+ kind: web
5
+ complexity: moderate
6
+ category: on-premise
7
+ aggregation:
8
+ metrics:
9
+ - "carbon"
10
+ - "energy"
11
+ type: "both"
12
+ params:
13
+ initialize:
14
+ plugins:
15
+ teads-curve:
16
+ path: "@grnsft/if-unofficial-plugins"
17
+ method: TeadsCurve
18
+ global-config:
19
+ interpolation: spline
20
+ sum:
21
+ path: "@grnsft/if-plugins"
22
+ method: Sum
23
+ global-config:
24
+ input-parameters:
25
+ - cpu/energy
26
+ - network/energy
27
+ output-parameter: energy
28
+ sci-m:
29
+ path: "@grnsft/if-plugins"
30
+ method: SciM
31
+ sci-o:
32
+ path: "@grnsft/if-plugins"
33
+ method: SciO
34
+ sci:
35
+ path: "@grnsft/if-plugins"
36
+ method: Sci
37
+ global-config:
38
+ functional-unit: "requests"
39
+ functional-unit-time: "1 minute"
40
+ time-sync:
41
+ method: TimeSync
42
+ path: "builtin"
43
+ global-config:
44
+ start-time: "2023-12-12T00:00:00.000Z"
45
+ end-time: "2023-12-12T00:01:00.000Z"
46
+ interval: 5
47
+ allow-padding: true
48
+ tree:
49
+ children:
50
+ child-0:
51
+ defaults:
52
+ cpu/thermal-design-power: 100
53
+ grid/carbon-intensity: 800
54
+ device/emissions-embodied: 1533.120 # gCO2eq
55
+ time-reserved: 3600 # 1hr in seconds
56
+ device/expected-lifespan: 94608000 # 3 years in seconds
57
+ resources-reserved: 1
58
+ resources-total: 8
59
+ pipeline:
60
+ - teads-curve
61
+ - sum
62
+ - sci-m
63
+ - sci-o
64
+ - time-sync
65
+ - sci
66
+ inputs:
67
+ - timestamp: "2023-12-12T00:00:00.000Z"
68
+ instance-type: A1
69
+ region: uk-west
70
+ duration: 1
71
+ cpu/utilization: 50
72
+ network/energy: 0.000001
73
+ - timestamp: "2023-12-12T00:00:01.000Z"
74
+ duration: 5
75
+ cpu/utilization: 20
76
+ instance-type: A1
77
+ region: uk-west
78
+ network/energy: 0.000001
79
+ - timestamp: "2023-12-12T00:00:06.000Z"
80
+ duration: 7
81
+ cpu/utilization: 15
82
+ instance-type: A1
83
+ region: uk-west
84
+ network/energy: 0.000001
85
+ - timestamp: "2023-12-12T00:00:13.000Z"
86
+ duration: 30
87
+ instance-type: A1
88
+ region: uk-west
89
+ cpu/utilization: 15
90
+ network/energy: 0.000001
91
+ child-1:
92
+ defaults:
93
+ cpu/thermal-design-power: 100
94
+ grid/carbon-intensity: 800
95
+ device/emissions-embodied: 1533.120 # gCO2eq
96
+ time-reserved: 3600 # 1hr in seconds
97
+ device/expected-lifespan: 94608000 # 3 years in seconds
98
+ resources-reserved: 1
99
+ resources-total: 8
100
+ pipeline:
101
+ - teads-curve
102
+ - sum
103
+ - sci-m
104
+ - sci-o
105
+ - time-sync
106
+ - sci
107
+ inputs:
108
+ - timestamp: "2023-12-12T00:00:00.000Z"
109
+ instance-type: A1
110
+ 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
+ instance-type: A1
118
+ region: uk-west
119
+ network/energy: 0.000001
120
+ - timestamp: "2023-12-12T00:00:06.000Z"
121
+ duration: 7
122
+ cpu/utilization: 15
123
+ instance-type: A1
124
+ region: uk-west
125
+ network/energy: 0.000001
126
+ - timestamp: "2023-12-12T00:00:13.000Z"
127
+ duration: 30
128
+ instance-type: A1
129
+ region: uk-west
130
+ cpu/utilization: 15
131
+ network/energy: 0.000001
132
+ child-2:
133
+ children:
134
+ child-2-0:
135
+ defaults:
136
+ cpu/thermal-design-power: 100
137
+ grid/carbon-intensity: 800
138
+ device/emissions-embodied: 1533.120 # gCO2eq
139
+ time-reserved: 3600 # 1hr in seconds
140
+ device/expected-lifespan: 94608000 # 3 years in seconds
141
+ resources-reserved: 1
142
+ resources-total: 8
143
+ pipeline:
144
+ - teads-curve
145
+ - sum
146
+ - sci-m
147
+ - sci-o
148
+ - time-sync
149
+ - sci
150
+ inputs:
151
+ - timestamp: "2023-12-12T00:00:00.000Z"
152
+ instance-type: A1
153
+ region: uk-west
154
+ duration: 1
155
+ cpu/utilization: 50
156
+ network/energy: 0.000001
157
+ - timestamp: "2023-12-12T00:00:01.000Z"
158
+ duration: 5
159
+ cpu/utilization: 20
160
+ instance-type: A1
161
+ region: uk-west
162
+ network/energy: 0.000001
163
+ - timestamp: "2023-12-12T00:00:06.000Z"
164
+ duration: 7
165
+ cpu/utilization: 15
166
+ instance-type: A1
167
+ region: uk-west
168
+ network/energy: 0.000001
169
+ - timestamp: "2023-12-12T00:00:13.000Z"
170
+ duration: 30
171
+ instance-type: A1
172
+ region: uk-west
173
+ cpu/utilization: 15
174
+ network/energy: 0.000001
175
+ child-2-1:
176
+ defaults:
177
+ cpu/thermal-design-power: 100
178
+ grid/carbon-intensity: 800
179
+ device/emissions-embodied: 1533.120 # gCO2eq
180
+ time-reserved: 3600 # 1hr in seconds
181
+ device/expected-lifespan: 94608000 # 3 years in seconds
182
+ resources-reserved: 1
183
+ resources-total: 8
184
+ pipeline:
185
+ - teads-curve
186
+ - sum
187
+ - sci-m
188
+ - sci-o
189
+ - time-sync
190
+ - sci
191
+ inputs:
192
+ - timestamp: "2023-12-12T00:00:00.000Z"
193
+ instance-type: A1
194
+ region: uk-west
195
+ duration: 1
196
+ cpu/utilization: 50
197
+ network/energy: 0.000001
198
+ - timestamp: "2023-12-12T00:00:01.000Z"
199
+ duration: 5
200
+ cpu/utilization: 20
201
+ instance-type: A1
202
+ region: uk-west
203
+ network/energy: 0.000001
204
+ - timestamp: "2023-12-12T00:00:06.000Z"
205
+ duration: 7
206
+ cpu/utilization: 15
207
+ instance-type: A1
208
+ region: uk-west
209
+ network/energy: 0.000001
210
+ - timestamp: "2023-12-12T00:00:13.000Z"
211
+ duration: 30
212
+ instance-type: A1
213
+ region: uk-west
214
+ cpu/utilization: 15
215
+ network/energy: 0.000001
@@ -0,0 +1,85 @@
1
+ name: pipeline-demo
2
+ description:
3
+ tags:
4
+ initialize:
5
+ plugins:
6
+ boavizta-cpu:
7
+ method: BoaviztaCpuOutput
8
+ path: "@grnsft/if-unofficial-plugins"
9
+ global-config:
10
+ allocation: LINEAR
11
+ verbose: true
12
+ "sum":
13
+ path: "@grnsft/if-plugins"
14
+ method: Sum
15
+ global-config:
16
+ input-parameters:
17
+ - cpu/energy
18
+ - network/energy
19
+ output-parameter: energy
20
+ "sci-m":
21
+ path: "@grnsft/if-plugins"
22
+ method: SciM
23
+ "sci-o":
24
+ path: "@grnsft/if-plugins"
25
+ method: SciO
26
+ "sci":
27
+ path: "@grnsft/if-plugins"
28
+ method: Sci
29
+ global-config:
30
+ functional-unit: ""
31
+ functional-unit-time: "1-day"
32
+ "time-sync":
33
+ method: TimeSync
34
+ path: "builtin"
35
+ global-config:
36
+ start-time: "2023-12-12T00:00:00.000Z"
37
+ end-time: "2023-12-12T00:01:00.000Z"
38
+ interval: 5
39
+ allow-padding: true
40
+ tree:
41
+ children:
42
+ child-1:
43
+ pipeline:
44
+ - boavizta-cpu
45
+ - sum
46
+ - sci-m
47
+ - sci-o
48
+ - time-sync
49
+ - sci
50
+ config:
51
+ defaults:
52
+ cpu/thermal-design-power: 100
53
+ grid/carbon-intensity: 800
54
+ device/emissions-embodied: 1533.120 # gCO2eq
55
+ time-reserved: 3600 # 1hr in seconds
56
+ device/expected-lifespan: 94608000 # 3 years in seconds
57
+ resources-reserved: 1
58
+ resources-total: 8
59
+ cpu/number-cores: 24
60
+ cpu/name: Intel® Core™ i7-1185G7
61
+ inputs:
62
+ - timestamp: "2023-12-12T00:00:00.000Z"
63
+ instance-type: A1
64
+ region: uk-west
65
+ duration: 1
66
+ cpu/utilization: 50
67
+ network/energy: 0.000001
68
+ - timestamp: "2023-12-12T00:00:01.000Z"
69
+ duration: 5
70
+ cpu/utilization: 20
71
+ instance-type: A1
72
+ region: uk-west
73
+ network/energy: 0.000001
74
+ - timestamp: "2023-12-12T00:00:06.000Z"
75
+ duration: 7
76
+ cpu/utilization: 15
77
+ instance-type: A1
78
+ region: uk-west
79
+ network/energy: 0.000001
80
+ - timestamp: "2023-12-12T00:00:13.000Z"
81
+ duration: 30
82
+ instance-type: A1
83
+ region: uk-west
84
+ cpu/utilization: 15
85
+ network/energy: 0.000001