@grnsft/if 0.3.1 → 0.3.3-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/.commitlintrc.js +3 -0
  2. package/.release-it.json +18 -0
  3. package/CONTRIBUTING.md +82 -1
  4. package/README.md +34 -23
  5. package/build/builtins/export-csv-raw.js +5 -5
  6. package/build/builtins/export-csv.js +17 -7
  7. package/build/builtins/export-log.js +26 -2
  8. package/build/builtins/export-yaml.js +3 -3
  9. package/build/builtins/group-by.js +20 -5
  10. package/build/builtins/time-sync.js +2 -1
  11. package/build/config/config.d.ts +3 -3
  12. package/build/config/config.js +23 -27
  13. package/build/config/strings.d.ts +1 -0
  14. package/build/config/strings.js +9 -5
  15. package/build/index.js +24 -15
  16. package/build/lib/compute.js +8 -8
  17. package/build/lib/environment.d.ts +5 -0
  18. package/build/lib/environment.js +69 -0
  19. package/build/lib/exhaust.d.ts +2 -1
  20. package/build/lib/exhaust.js +11 -9
  21. package/build/lib/initialize.d.ts +2 -2
  22. package/build/lib/initialize.js +5 -5
  23. package/build/lib/load.d.ts +1 -29
  24. package/build/lib/load.js +6 -7
  25. package/build/lib/parameterize.d.ts +2 -1
  26. package/build/lib/parameterize.js +4 -4
  27. package/build/types/compute.d.ts +2 -2
  28. package/build/types/compute.js +1 -1
  29. package/build/types/environment.d.ts +18 -0
  30. package/build/types/environment.js +3 -0
  31. package/build/types/manifest.d.ts +1 -0
  32. package/build/types/manifest.js +1 -1
  33. package/build/types/process-args.d.ts +13 -1
  34. package/build/types/process-args.js +1 -1
  35. package/build/util/aggregation-helper.js +4 -4
  36. package/build/util/args.d.ts +3 -5
  37. package/build/util/args.js +14 -10
  38. package/build/util/errors.d.ts +1 -1
  39. package/build/util/errors.js +4 -5
  40. package/build/util/helpers.d.ts +8 -2
  41. package/build/util/helpers.js +19 -15
  42. package/build/util/os-checker.d.ts +7 -0
  43. package/build/util/os-checker.js +97 -0
  44. package/build/util/validations.d.ts +90 -4
  45. package/build/util/validations.js +14 -2
  46. package/github-processes.md +168 -0
  47. package/{examples/manifests/pipeline-demo-2.yml → manifests/bugs/aggregation-error-wrong-metric.yml} +18 -39
  48. package/manifests/bugs/azure-importer-ignoring-defaults.yml +61 -0
  49. package/manifests/bugs/azure-importer-incorrect-calculation.yml +56 -0
  50. package/manifests/bugs/initialize-error-no-config.yml +27 -0
  51. package/manifests/bugs/initialize-error-no-path.yml +28 -0
  52. package/manifests/bugs/initialize-error-no-plugins.yml +23 -0
  53. package/manifests/bugs/input-error-missing-duration.yml +21 -0
  54. package/manifests/bugs/pipeline-error-naming-mismatch.yml +28 -0
  55. package/manifests/bugs/pipeline-error-uninitialized-plugin.yml +29 -0
  56. package/{examples/manifests/pipeline-teads-sci.yml → manifests/bugs/pipeline-ordering-error.yml} +15 -15
  57. package/{examples/manifests → manifests/examples}/basic.yml +3 -2
  58. package/{examples/manifests → manifests/examples}/generics.yml +16 -16
  59. package/{examples/manifests/asim-demo.yml → manifests/examples/mock-cpu-util-to-carbon.yml} +3 -7
  60. package/{examples/manifests → manifests/examples}/nesting.yml +19 -18
  61. package/{examples/manifests/pipeline-demo-1.yml → manifests/examples/pipeline-teads-sci.yml} +10 -13
  62. package/{examples/manifests/pipeline-demo.yml → manifests/examples/pipeline-with-aggregate.yml} +12 -12
  63. package/{examples/manifests → manifests/examples}/pipeline-with-mocks.yml +26 -25
  64. package/manifests/features/aggregate-horizontal.yml +44 -0
  65. package/manifests/features/aggregate-vertical.yml +44 -0
  66. package/manifests/features/aggregate.yml +44 -0
  67. package/manifests/integrations/mock-obs-groupby.yml +39 -0
  68. package/manifests/integrations/mock-obs-time-sync.yml +65 -0
  69. package/manifests/plugins/cloud-metadata/failure-invalid-vendor.yaml +21 -0
  70. package/{examples/manifests/cim.yml → manifests/plugins/cloud-metadata/success.yml} +3 -2
  71. package/manifests/plugins/coefficient/failure-invalid-config-input-param.yml +24 -0
  72. package/{examples/manifests/coefficient.yml → manifests/plugins/coefficient/success.yml} +2 -1
  73. package/manifests/plugins/divide/failure-invalid-config-denominator.yml +39 -0
  74. package/manifests/plugins/divide/success.yml +39 -0
  75. package/manifests/plugins/groupby/failure-invalid-config-group.yml +47 -0
  76. package/{examples/manifests/group-by.yml → manifests/plugins/groupby/success.yml} +24 -23
  77. package/manifests/plugins/mock-observations/failure-invalid-config-cpu-range.yml +34 -0
  78. package/{examples/manifests/mock-observation.yml → manifests/plugins/mock-observations/success.yml} +2 -1
  79. package/manifests/plugins/multiply/failure-input-parameter-is-missing.yml +24 -0
  80. package/{examples/manifests/multiply.yml → manifests/plugins/multiply/success.yml} +3 -2
  81. package/manifests/plugins/regex/failure-missing-input-param.yml +24 -0
  82. package/{examples/manifests/regex.yml → manifests/plugins/regex/success.yml} +3 -2
  83. package/manifests/plugins/sci/failure-invalid-config-value.yml +28 -0
  84. package/{examples/manifests/sci.yml → manifests/plugins/sci/success.yml} +3 -2
  85. package/manifests/plugins/sci-m/failure-invalid-default-emission-value.yml +24 -0
  86. package/{examples/manifests/sci-m.yml → manifests/plugins/sci-m/success.yml} +2 -1
  87. package/manifests/plugins/shell/failure-invalid-command.yml +21 -0
  88. package/{examples/manifests/shell.yml → manifests/plugins/shell/success.yml} +3 -2
  89. package/manifests/plugins/sum/failure-missing-input-param.yml +24 -0
  90. package/{examples/manifests/sum.yml → manifests/plugins/sum/success.yml} +3 -2
  91. package/manifests/plugins/tdp-finder/failure-missing-input-param.yml +18 -0
  92. package/{examples/manifests/tdp-finder.yml → manifests/plugins/tdp-finder/success.yml} +2 -1
  93. package/manifests/plugins/time-sync/failure-config-start-later-end.yml +34 -0
  94. package/{examples/manifests/time-sync.yml → manifests/plugins/time-sync/success.yml} +4 -2
  95. package/package.json +4 -2
  96. package/src/builtins/README.md +40 -44
  97. package/examples/manifests/azure-importer.yml +0 -24
  98. package/examples/manifests/basic-demo.yml +0 -70
  99. package/examples/manifests/boavizta-cloud.yml +0 -20
  100. package/examples/manifests/boavizta-pipeline.yml +0 -85
  101. package/examples/manifests/boavizta.yml +0 -26
  102. package/examples/manifests/ccf.yml +0 -20
  103. package/examples/manifests/cloud-metadata.yml +0 -41
  104. package/examples/manifests/co2js.yml +0 -30
  105. package/examples/manifests/csv-export.yml +0 -34
  106. package/examples/manifests/e-mem.yml +0 -21
  107. package/examples/manifests/e-net.yml +0 -22
  108. package/examples/manifests/nesting-demo.yml +0 -89
  109. package/examples/manifests/pipeline-with-generics.yml +0 -147
  110. package/examples/manifests/sci-e.yml +0 -19
  111. package/examples/manifests/sci-o.yml +0 -26
  112. package/examples/manifests/teads-aws.yml +0 -22
  113. package/examples/manifests/teads-curve.yml +0 -20
  114. package/examples/manifests/watt-time.yml +0 -42
  115. /package/{examples/manifests/divide.yml → manifests/integrations/cloud-metadata-divide-boavizta.yml} +0 -0
@@ -1,9 +1,9 @@
1
- name: pipeline-demo
2
- description:
1
+ name: aggregation-error-wrong-metric
2
+ description: a negative test case that fails due to the aggregation feature being passed an incorrect metric
3
3
  tags:
4
4
  aggregation:
5
5
  metrics:
6
- - "carbon"
6
+ - "dummy-param"
7
7
  type: "both"
8
8
  initialize:
9
9
  plugins:
@@ -12,14 +12,9 @@ initialize:
12
12
  method: TeadsCurve
13
13
  global-config:
14
14
  interpolation: spline
15
- "sum":
15
+ "sci-e":
16
16
  path: "@grnsft/if-plugins"
17
- method: Sum
18
- global-config:
19
- input-parameters:
20
- - cpu/energy
21
- - network/energy
22
- output-parameter: carbon-plus-energy'
17
+ method: SciE
23
18
  "sci-m":
24
19
  path: "@grnsft/if-plugins"
25
20
  method: SciM
@@ -48,7 +43,7 @@ tree:
48
43
  child-1:
49
44
  pipeline:
50
45
  - teads-curve
51
- - sum
46
+ - sci-e
52
47
  - sci-m
53
48
  - sci-o
54
49
  - time-sync
@@ -56,7 +51,7 @@ tree:
56
51
  config:
57
52
  group-by:
58
53
  group:
59
- - region
54
+ - cloud/region
60
55
  - cloud/instance-type
61
56
  defaults:
62
57
  cpu/thermal-design-power: 100
@@ -70,36 +65,28 @@ tree:
70
65
  inputs:
71
66
  - timestamp: "2023-12-12T00:00:00.000Z"
72
67
  cloud/instance-type: A1
73
- region: uk-west
68
+ cloud/region: uk-west
74
69
  duration: 1
75
70
  cpu/utilization: 10
76
- network/energy: 10
77
- energy: 5
78
71
  - timestamp: "2023-12-12T00:00:01.000Z"
79
72
  duration: 5
80
73
  cpu/utilization: 20
81
74
  cloud/instance-type: A1
82
- region: uk-west
83
- network/energy: 10
84
- energy: 5
75
+ cloud/region: uk-west
85
76
  - timestamp: "2023-12-12T00:00:06.000Z"
86
77
  duration: 7
87
78
  cpu/utilization: 15
88
79
  cloud/instance-type: A1
89
- region: uk-west
90
- network/energy: 10
91
- energy: 5
80
+ cloud/region: uk-west
92
81
  - timestamp: "2023-12-12T00:00:13.000Z"
93
82
  duration: 30
94
83
  cloud/instance-type: A1
95
- region: uk-west
84
+ cloud/region: uk-west
96
85
  cpu/utilization: 15
97
- network/energy: 10
98
- energy: 5
99
86
  child-2:
100
87
  pipeline:
101
88
  - teads-curve
102
- - sum
89
+ - sci-e
103
90
  - sci-m
104
91
  - sci-o
105
92
  - time-sync
@@ -107,8 +94,8 @@ tree:
107
94
  config:
108
95
  group-by:
109
96
  group:
110
- - region
111
- - instance-type
97
+ - cloud/region
98
+ - cloud/instance-type
112
99
  defaults:
113
100
  cpu/thermal-design-power: 100
114
101
  grid/carbon-intensity: 800
@@ -123,27 +110,19 @@ tree:
123
110
  duration: 1
124
111
  cpu/utilization: 30
125
112
  cloud/instance-type: A1
126
- region: uk-west
127
- network/energy: 10
128
- energy: 5
113
+ cloud/region: uk-west
129
114
  - timestamp: "2023-12-12T00:00:01.000Z"
130
115
  duration: 5
131
116
  cpu/utilization: 28
132
117
  cloud/instance-type: A1
133
- region: uk-west
134
- network/energy: 10
135
- energy: 5
118
+ cloud/region: uk-west
136
119
  - timestamp: "2023-12-12T00:00:06.000Z"
137
120
  duration: 7
138
121
  cpu/utilization: 40
139
122
  cloud/instance-type: A1
140
- region: uk-west
141
- network/energy: 10
142
- energy: 5
123
+ cloud/region: uk-west
143
124
  - timestamp: "2023-12-12T00:00:13.000Z"
144
125
  duration: 30
145
126
  cpu/utilization: 33
146
127
  cloud/instance-type: A1
147
- region: uk-west
148
- network/energy: 10
149
- energy: 5
128
+ cloud/region: uk-west
@@ -0,0 +1,61 @@
1
+ name: pipeline-demo
2
+ description: https://github.com/Green-Software-Foundation/if-unofficial-plugins/issues/81
3
+ tags:
4
+ # aggregation:
5
+ # metrics:
6
+ # - "carbon"
7
+ # - "energy"
8
+ #type: "both"
9
+ initialize:
10
+ outputs:
11
+ - yaml
12
+ # - csv
13
+ plugins:
14
+ "azure-importer":
15
+ method: AzureImporter
16
+ path: "@grnsft/if-unofficial-plugins"
17
+ "try-defaults-1":
18
+ path: "@grnsft/if-plugins"
19
+ method: Coefficient
20
+ global-config:
21
+ input-parameter: grid/carbon-intensity
22
+ coefficient: 0.1
23
+ output-parameter: grid/carbon-intensity
24
+ "try-defaults-2":
25
+ path: "@grnsft/if-plugins"
26
+ method: Coefficient
27
+ global-config:
28
+ input-parameter: network/energy
29
+ coefficient: 1000
30
+ output-parameter: network/energy
31
+ "sci-o":
32
+ method: SciO
33
+ path: "@grnsft/if-plugins"
34
+ "group-by":
35
+ path: "builtin"
36
+ method: GroupBy
37
+ tree:
38
+ children:
39
+ web-front: # name this according to the sub-system, e.g. portal, APIs/backend, DB
40
+ pipeline:
41
+ - azure-importer
42
+ #- try-defaults-1
43
+ #- try-defaults-2
44
+ - sci-o
45
+ config:
46
+ group-by:
47
+ group:
48
+ - instance-type
49
+ azure-importer:
50
+ azure-observation-window: 60 min
51
+ azure-observation-aggregation: "average"
52
+ azure-subscription-id: 30b6e171-af2c-4fe6-b00d-d4c70f6291fe
53
+ azure-resource-group: gcf-app_group
54
+ azure-vm-name: gcf-app
55
+ defaults:
56
+ grid/carbon-intensity: 800 # adjust for SG grid
57
+ network/energy: 0.001 # review for naming accuracy
58
+ inputs:
59
+ - timestamp: "2024-04-04T08:00:00.001Z"
60
+ duration: 3600
61
+ energy: 100
@@ -0,0 +1,56 @@
1
+ name: pipeline-demo
2
+ description: https://github.com/Green-Software-Foundation/if-unofficial-plugins/issues/81
3
+ tags: null
4
+ initialize:
5
+ plugins:
6
+ azure-importer:
7
+ path: '@grnsft/if-unofficial-plugins'
8
+ method: AzureImporter
9
+ try-defaults-1:
10
+ path: '@grnsft/if-plugins'
11
+ method: Coefficient
12
+ global-config:
13
+ input-parameter: grid/carbon-intensity
14
+ coefficient: 0.1
15
+ output-parameter: grid/carbon-intensity
16
+ try-defaults-2:
17
+ path: '@grnsft/if-plugins'
18
+ method: Coefficient
19
+ global-config:
20
+ input-parameter: network/energy
21
+ coefficient: 1000
22
+ output-parameter: network/energy
23
+ sci-o:
24
+ path: '@grnsft/if-plugins'
25
+ method: SciO
26
+ group-by:
27
+ path: builtin
28
+ method: GroupBy
29
+ outputs:
30
+ - yaml
31
+ if-version: v0.3.2
32
+ tree:
33
+ children:
34
+ web-front:
35
+ pipeline:
36
+ - azure-importer
37
+ - try-defaults-1
38
+ - try-defaults-2
39
+ config:
40
+ group-by:
41
+ group:
42
+ - instance-type
43
+ azure-importer:
44
+ azure-observation-window: 60 min
45
+ azure-observation-aggregation: average
46
+ azure-subscription-id: 30b6e171-af2c-4fe6-b00d-d4c70f6291fe
47
+ azure-resource-group: gcf-app_group
48
+ azure-vm-name: gcf-app
49
+ defaults:
50
+ grid/carbon-intensity: 800
51
+ network/energy: 0.001
52
+ inputs:
53
+ - timestamp: '2024-04-04T08:00:00.001Z'
54
+ duration: 3600
55
+ energy: 100
56
+
@@ -0,0 +1,27 @@
1
+ name: initialize-error-no-config
2
+ description: a negative test case that fails due to plugin initialization missing some required config
3
+ tags:
4
+ initialize:
5
+ plugins:
6
+ teads-curve:
7
+ path: '@grnsft/if-unofficial-plugins'
8
+ method: TeadsCurve
9
+ global-config:
10
+ outputs: ['yaml']
11
+ tree:
12
+ children:
13
+ child-0:
14
+ defaults:
15
+ cpu/thermal-design-power: 100
16
+ pipeline:
17
+ - teads-curve
18
+ inputs:
19
+ - timestamp: 2023-07-06T00:00
20
+ duration: 1
21
+ cpu/utilization: 20
22
+ - timestamp: 2023-07-06T00:01
23
+ duration: 1
24
+ cpu/utilization: 80
25
+ - timestamp: 2023-07-06T00:02
26
+ duration: 1
27
+ cpu/utilization: 20
@@ -0,0 +1,28 @@
1
+ name: initialize-error-no-path
2
+ description: a negative test case that fails because the path is mising in a plugin initialization
3
+ tags:
4
+ initialize:
5
+ plugins:
6
+ teads-curve:
7
+ path:
8
+ method: TeadsCurve
9
+ global-config:
10
+ interpolation: spline
11
+ outputs: ['yaml']
12
+ tree:
13
+ children:
14
+ child-0:
15
+ defaults:
16
+ cpu/thermal-design-power: 100
17
+ pipeline:
18
+ - teads-curve
19
+ inputs:
20
+ - timestamp: 2023-07-06T00:00
21
+ duration: 1
22
+ cpu/utilization: 20
23
+ - timestamp: 2023-07-06T00:01
24
+ duration: 1
25
+ cpu/utilization: 80
26
+ - timestamp: 2023-07-06T00:02
27
+ duration: 1
28
+ cpu/utilization: 20
@@ -0,0 +1,23 @@
1
+ name: initialize-error-no-path
2
+ description: a negative test case that fails becuase no plugins are included in the initialize block
3
+ tags:
4
+ initialize:
5
+ plugins:
6
+ outputs: ['yaml']
7
+ tree:
8
+ children:
9
+ child-0:
10
+ defaults:
11
+ cpu/thermal-design-power: 100
12
+ pipeline:
13
+ - teads-curve
14
+ inputs:
15
+ - timestamp: 2023-07-06T00:00
16
+ duration: 1
17
+ cpu/utilization: 20
18
+ - timestamp: 2023-07-06T00:01
19
+ duration: 1
20
+ cpu/utilization: 80
21
+ - timestamp: 2023-07-06T00:02
22
+ duration: 1
23
+ cpu/utilization: 20
@@ -0,0 +1,21 @@
1
+ name: input-error-missing-duration
2
+ description: a negative test case that fails due to the required `duration` field being omitted from input data
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
+ outputs: ['yaml']
12
+ tree:
13
+ children:
14
+ child-0:
15
+ defaults:
16
+ cpu/thermal-design-power: 100
17
+ pipeline:
18
+ - teads-curve
19
+ inputs:
20
+ - timestamp: 2023-07-06T00:00
21
+ cpu/utilization: 20
@@ -0,0 +1,28 @@
1
+ name: pipeline-error-naming-mismatch
2
+ description: a negative test case that fails due to the plugin name in the pipeline not matching the name given in initialize
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
+ outputs: ['yaml']
12
+ tree:
13
+ children:
14
+ child-0:
15
+ defaults:
16
+ cpu/thermal-design-power: 100
17
+ pipeline:
18
+ - wrong-name
19
+ inputs:
20
+ - timestamp: 2023-07-06T00:00
21
+ duration: 1
22
+ cpu/utilization: 20
23
+ - timestamp: 2023-07-06T00:01
24
+ duration: 1
25
+ cpu/utilization: 80
26
+ - timestamp: 2023-07-06T00:02
27
+ duration: 1
28
+ cpu/utilization: 20
@@ -0,0 +1,29 @@
1
+ name: pipeline-uninitialized-plugin-error
2
+ description: a negative test case that fails due to an uninitialized plugin being invoked in a pipeline
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
+ outputs: ['yaml']
12
+ tree:
13
+ children:
14
+ child-0:
15
+ defaults:
16
+ cpu/thermal-design-power: 100
17
+ pipeline:
18
+ - teads-curve
19
+ - multiply
20
+ inputs:
21
+ - timestamp: 2023-07-06T00:00
22
+ duration: 1
23
+ cpu/utilization: 20
24
+ - timestamp: 2023-07-06T00:01
25
+ duration: 1
26
+ cpu/utilization: 80
27
+ - timestamp: 2023-07-06T00:02
28
+ duration: 1
29
+ cpu/utilization: 20
@@ -1,5 +1,5 @@
1
- name: pipeline-teads-sci
2
- description:
1
+ name: pipeline-ordering-error
2
+ description: a negative test case that fails because sci-o is invoked too early in the pipeline (before its inputs are generated)
3
3
  tags:
4
4
  initialize:
5
5
  plugins:
@@ -12,10 +12,10 @@ initialize:
12
12
  path: "@grnsft/if-plugins"
13
13
  method: Sum
14
14
  global-config:
15
- input-parameters:
15
+ input-parameters:
16
16
  - cpu/energy
17
17
  - network/energy
18
- output-parameter: energy
18
+ output-parameter: energy
19
19
  "sci-m":
20
20
  path: "@grnsft/if-plugins"
21
21
  method: SciM
@@ -26,8 +26,8 @@ initialize:
26
26
  path: "@grnsft/if-plugins"
27
27
  method: Sci
28
28
  global-config:
29
- functional-unit: ''
30
- functional-unit-time: '1-day'
29
+ functional-unit: ""
30
+ functional-unit-time: "1-day"
31
31
  "time-sync":
32
32
  method: TimeSync
33
33
  path: "builtin"
@@ -41,9 +41,9 @@ tree:
41
41
  child-1:
42
42
  pipeline:
43
43
  - teads-curve
44
+ - sci-o
44
45
  - sum
45
46
  - sci-m
46
- - sci-o
47
47
  - time-sync
48
48
  - sci
49
49
  config:
@@ -57,26 +57,26 @@ tree:
57
57
  resources-total: 8
58
58
  inputs:
59
59
  - timestamp: "2023-12-12T00:00:00.000Z"
60
- cloud/instance-type: A1
61
- region: uk-west
60
+ cloud/instance-type: A1
61
+ cloud/region: uk-west
62
62
  duration: 1
63
63
  cpu/utilization: 50
64
64
  network/energy: 0.000001
65
65
  - timestamp: "2023-12-12T00:00:01.000Z"
66
66
  duration: 5
67
67
  cpu/utilization: 20
68
- cloud/instance-type: A1
69
- region: uk-west
68
+ cloud/instance-type: A1
69
+ cloud/region: uk-west
70
70
  network/energy: 0.000001
71
71
  - timestamp: "2023-12-12T00:00:06.000Z"
72
72
  duration: 7
73
73
  cpu/utilization: 15
74
- cloud/instance-type: A1
75
- region: uk-west
74
+ cloud/instance-type: A1
75
+ cloud/region: uk-west
76
76
  network/energy: 0.000001
77
77
  - timestamp: "2023-12-12T00:00:13.000Z"
78
78
  duration: 30
79
- cloud/instance-type: A1
80
- region: uk-west
79
+ cloud/instance-type: A1
80
+ cloud/region: uk-west
81
81
  cpu/utilization: 15
82
82
  network/energy: 0.000001
@@ -1,5 +1,5 @@
1
- name: basic-demo
2
- description:
1
+ name: basic
2
+ description: a minimal manifest executing a single plugin on a single component for a single timestep
3
3
  tags:
4
4
  initialize:
5
5
  plugins:
@@ -8,6 +8,7 @@ initialize:
8
8
  method: TeadsCurve
9
9
  global-config:
10
10
  interpolation: spline
11
+ outputs: ['yaml']
11
12
  tree:
12
13
  children:
13
14
  child-0:
@@ -1,10 +1,10 @@
1
- name: generic-arithmetic-demo
2
- description:
1
+ name: generics
2
+ description: a pipeline that does arbitrary calculations using our generic arithmetic builtins
3
3
  tags:
4
4
  initialize:
5
5
  plugins:
6
6
  teads-curve:
7
- path: '@grnsft/if-unofficial-plugins'
7
+ path: "@grnsft/if-unofficial-plugins"
8
8
  method: TeadsCurve
9
9
  global-config:
10
10
  interpolation: spline
@@ -12,10 +12,10 @@ initialize:
12
12
  path: "@grnsft/if-plugins"
13
13
  method: Sum
14
14
  global-config:
15
- input-parameters:
15
+ input-parameters:
16
16
  - cpu/energy
17
17
  - network/energy
18
- output-parameter: energy-sum
18
+ output-parameter: energy-sum
19
19
  "coefficient":
20
20
  path: "@grnsft/if-plugins"
21
21
  method: Coefficient
@@ -24,11 +24,11 @@ initialize:
24
24
  coefficient: 2
25
25
  output-parameter: energy-doubled
26
26
  "multiply":
27
- path: '@grnsft/if-plugins'
27
+ path: "@grnsft/if-plugins"
28
28
  method: Multiply
29
29
  global-config:
30
- input-parameters: ['cpu/utilization', 'duration']
31
- output-parameter: 'cpu-times-duration'
30
+ input-parameters: ["cpu/utilization", "duration"]
31
+ output-parameter: "cpu-times-duration"
32
32
  tree:
33
33
  children:
34
34
  child-1:
@@ -42,8 +42,8 @@ tree:
42
42
  cpu/thermal-design-power: 100
43
43
  inputs:
44
44
  - timestamp: "2023-12-12T00:00:00.000Z"
45
- cloud/instance-type: A1
46
- region: uk-west
45
+ cloud/instance-type: A1
46
+ cloud/region: uk-west
47
47
  duration: 1
48
48
  cpu/utilization: 50
49
49
  network/energy: 10
@@ -51,21 +51,21 @@ tree:
51
51
  - timestamp: "2023-12-12T00:00:01.000Z"
52
52
  duration: 5
53
53
  cpu/utilization: 20
54
- cloud/instance-type: A1
55
- region: uk-west
54
+ cloud/instance-type: A1
55
+ cloud/region: uk-west
56
56
  network/energy: 10
57
57
  energy: 5
58
58
  - timestamp: "2023-12-12T00:00:06.000Z"
59
59
  duration: 7
60
60
  cpu/utilization: 15
61
- cloud/instance-type: A1
62
- region: uk-west
61
+ cloud/instance-type: A1
62
+ cloud/region: uk-west
63
63
  network/energy: 10
64
64
  energy: 5
65
65
  - timestamp: "2023-12-12T00:00:13.000Z"
66
66
  duration: 30
67
- cloud/instance-type: A1
68
- region: uk-west
67
+ cloud/instance-type: A1
68
+ cloud/region: uk-west
69
69
  cpu/utilization: 15
70
70
  network/energy: 10
71
71
  energy: 5
@@ -1,11 +1,7 @@
1
- name: My Manifest File
2
- description: My First Manifest File 💚
3
- # aggregation:
4
- # metrics:
5
- # - 'carbon'
6
- # type: 'both'
1
+ name: mock-cpu-util-to-carbon
2
+ description: a complete pipeline that starts with mocked CPU utilization data and outputs operational carbon in gCO2eq
7
3
  initialize:
8
- outputs: ['yaml', 'csv']
4
+ outputs: ['yaml']
9
5
  plugins:
10
6
  group-by:
11
7
  path: 'builtin'