@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.
- package/.commitlintrc.js +3 -0
- package/.release-it.json +18 -0
- package/CONTRIBUTING.md +82 -1
- package/README.md +34 -23
- package/build/builtins/export-csv-raw.js +5 -5
- package/build/builtins/export-csv.js +17 -7
- package/build/builtins/export-log.js +26 -2
- package/build/builtins/export-yaml.js +3 -3
- package/build/builtins/group-by.js +20 -5
- package/build/builtins/time-sync.js +2 -1
- package/build/config/config.d.ts +3 -3
- package/build/config/config.js +23 -27
- package/build/config/strings.d.ts +1 -0
- package/build/config/strings.js +9 -5
- package/build/index.js +24 -15
- package/build/lib/compute.js +8 -8
- package/build/lib/environment.d.ts +5 -0
- package/build/lib/environment.js +69 -0
- package/build/lib/exhaust.d.ts +2 -1
- package/build/lib/exhaust.js +11 -9
- package/build/lib/initialize.d.ts +2 -2
- package/build/lib/initialize.js +5 -5
- package/build/lib/load.d.ts +1 -29
- package/build/lib/load.js +6 -7
- package/build/lib/parameterize.d.ts +2 -1
- package/build/lib/parameterize.js +4 -4
- package/build/types/compute.d.ts +2 -2
- package/build/types/compute.js +1 -1
- package/build/types/environment.d.ts +18 -0
- package/build/types/environment.js +3 -0
- package/build/types/manifest.d.ts +1 -0
- package/build/types/manifest.js +1 -1
- package/build/types/process-args.d.ts +13 -1
- package/build/types/process-args.js +1 -1
- package/build/util/aggregation-helper.js +4 -4
- package/build/util/args.d.ts +3 -5
- package/build/util/args.js +14 -10
- package/build/util/errors.d.ts +1 -1
- package/build/util/errors.js +4 -5
- package/build/util/helpers.d.ts +8 -2
- package/build/util/helpers.js +19 -15
- package/build/util/os-checker.d.ts +7 -0
- package/build/util/os-checker.js +97 -0
- package/build/util/validations.d.ts +90 -4
- package/build/util/validations.js +14 -2
- package/github-processes.md +168 -0
- package/{examples/manifests/pipeline-demo-2.yml → manifests/bugs/aggregation-error-wrong-metric.yml} +18 -39
- package/manifests/bugs/azure-importer-ignoring-defaults.yml +61 -0
- package/manifests/bugs/azure-importer-incorrect-calculation.yml +56 -0
- package/manifests/bugs/initialize-error-no-config.yml +27 -0
- package/manifests/bugs/initialize-error-no-path.yml +28 -0
- package/manifests/bugs/initialize-error-no-plugins.yml +23 -0
- package/manifests/bugs/input-error-missing-duration.yml +21 -0
- package/manifests/bugs/pipeline-error-naming-mismatch.yml +28 -0
- package/manifests/bugs/pipeline-error-uninitialized-plugin.yml +29 -0
- package/{examples/manifests/pipeline-teads-sci.yml → manifests/bugs/pipeline-ordering-error.yml} +15 -15
- package/{examples/manifests → manifests/examples}/basic.yml +3 -2
- package/{examples/manifests → manifests/examples}/generics.yml +16 -16
- package/{examples/manifests/asim-demo.yml → manifests/examples/mock-cpu-util-to-carbon.yml} +3 -7
- package/{examples/manifests → manifests/examples}/nesting.yml +19 -18
- package/{examples/manifests/pipeline-demo-1.yml → manifests/examples/pipeline-teads-sci.yml} +10 -13
- package/{examples/manifests/pipeline-demo.yml → manifests/examples/pipeline-with-aggregate.yml} +12 -12
- package/{examples/manifests → manifests/examples}/pipeline-with-mocks.yml +26 -25
- package/manifests/features/aggregate-horizontal.yml +44 -0
- package/manifests/features/aggregate-vertical.yml +44 -0
- package/manifests/features/aggregate.yml +44 -0
- package/manifests/integrations/mock-obs-groupby.yml +39 -0
- package/manifests/integrations/mock-obs-time-sync.yml +65 -0
- package/manifests/plugins/cloud-metadata/failure-invalid-vendor.yaml +21 -0
- package/{examples/manifests/cim.yml → manifests/plugins/cloud-metadata/success.yml} +3 -2
- package/manifests/plugins/coefficient/failure-invalid-config-input-param.yml +24 -0
- package/{examples/manifests/coefficient.yml → manifests/plugins/coefficient/success.yml} +2 -1
- package/manifests/plugins/divide/failure-invalid-config-denominator.yml +39 -0
- package/manifests/plugins/divide/success.yml +39 -0
- package/manifests/plugins/groupby/failure-invalid-config-group.yml +47 -0
- package/{examples/manifests/group-by.yml → manifests/plugins/groupby/success.yml} +24 -23
- package/manifests/plugins/mock-observations/failure-invalid-config-cpu-range.yml +34 -0
- package/{examples/manifests/mock-observation.yml → manifests/plugins/mock-observations/success.yml} +2 -1
- package/manifests/plugins/multiply/failure-input-parameter-is-missing.yml +24 -0
- package/{examples/manifests/multiply.yml → manifests/plugins/multiply/success.yml} +3 -2
- package/manifests/plugins/regex/failure-missing-input-param.yml +24 -0
- package/{examples/manifests/regex.yml → manifests/plugins/regex/success.yml} +3 -2
- package/manifests/plugins/sci/failure-invalid-config-value.yml +28 -0
- package/{examples/manifests/sci.yml → manifests/plugins/sci/success.yml} +3 -2
- package/manifests/plugins/sci-m/failure-invalid-default-emission-value.yml +24 -0
- package/{examples/manifests/sci-m.yml → manifests/plugins/sci-m/success.yml} +2 -1
- package/manifests/plugins/shell/failure-invalid-command.yml +21 -0
- package/{examples/manifests/shell.yml → manifests/plugins/shell/success.yml} +3 -2
- package/manifests/plugins/sum/failure-missing-input-param.yml +24 -0
- package/{examples/manifests/sum.yml → manifests/plugins/sum/success.yml} +3 -2
- package/manifests/plugins/tdp-finder/failure-missing-input-param.yml +18 -0
- package/{examples/manifests/tdp-finder.yml → manifests/plugins/tdp-finder/success.yml} +2 -1
- package/manifests/plugins/time-sync/failure-config-start-later-end.yml +34 -0
- package/{examples/manifests/time-sync.yml → manifests/plugins/time-sync/success.yml} +4 -2
- package/package.json +4 -2
- package/src/builtins/README.md +40 -44
- package/examples/manifests/azure-importer.yml +0 -24
- package/examples/manifests/basic-demo.yml +0 -70
- package/examples/manifests/boavizta-cloud.yml +0 -20
- package/examples/manifests/boavizta-pipeline.yml +0 -85
- package/examples/manifests/boavizta.yml +0 -26
- package/examples/manifests/ccf.yml +0 -20
- package/examples/manifests/cloud-metadata.yml +0 -41
- package/examples/manifests/co2js.yml +0 -30
- package/examples/manifests/csv-export.yml +0 -34
- package/examples/manifests/e-mem.yml +0 -21
- package/examples/manifests/e-net.yml +0 -22
- package/examples/manifests/nesting-demo.yml +0 -89
- package/examples/manifests/pipeline-with-generics.yml +0 -147
- package/examples/manifests/sci-e.yml +0 -19
- package/examples/manifests/sci-o.yml +0 -26
- package/examples/manifests/teads-aws.yml +0 -22
- package/examples/manifests/teads-curve.yml +0 -20
- package/examples/manifests/watt-time.yml +0 -42
- /package/{examples/manifests/divide.yml → manifests/integrations/cloud-metadata-divide-boavizta.yml} +0 -0
package/src/builtins/README.md
CHANGED
|
@@ -279,7 +279,6 @@ tree:
|
|
|
279
279
|
carbon: 200
|
|
280
280
|
energy: 200
|
|
281
281
|
requests: 380
|
|
282
|
-
|
|
283
282
|
```
|
|
284
283
|
|
|
285
284
|
|
|
@@ -673,44 +672,43 @@ graph:
|
|
|
673
672
|
- teads-curve
|
|
674
673
|
config:
|
|
675
674
|
group-by:
|
|
676
|
-
- cloud
|
|
675
|
+
- cloud/region
|
|
677
676
|
- instance-type
|
|
678
677
|
inputs:
|
|
679
678
|
- timestamp: 2023-07-06T00:00
|
|
680
|
-
duration: 300
|
|
681
|
-
instance-type: A1
|
|
682
|
-
region: uk-west
|
|
679
|
+
duration: 300
|
|
680
|
+
instance-type: A1
|
|
681
|
+
cloud/region: uk-west
|
|
683
682
|
cpu-util: 99
|
|
684
|
-
- timestamp: 2023-07-06T05:00
|
|
685
|
-
duration: 300
|
|
686
|
-
instance-type: A1
|
|
687
|
-
region: uk-west
|
|
688
|
-
cpu-util: 23
|
|
683
|
+
- timestamp: 2023-07-06T05:00
|
|
684
|
+
duration: 300
|
|
685
|
+
instance-type: A1
|
|
686
|
+
cloud/region: uk-west
|
|
687
|
+
cpu-util: 23
|
|
689
688
|
- timestamp: 2023-07-06T10:00
|
|
690
689
|
duration: 300
|
|
691
|
-
instance-type: A1
|
|
692
|
-
region: uk-west
|
|
690
|
+
instance-type: A1
|
|
691
|
+
cloud/region: uk-west
|
|
693
692
|
cpu-util: 12
|
|
694
693
|
- timestamp: 2023-07-06T00:00 # note this time restarts at the start timstamp
|
|
695
694
|
duration: 300
|
|
696
695
|
instance-type: B1
|
|
697
|
-
region: uk-west
|
|
696
|
+
cloud/region: uk-west
|
|
698
697
|
cpu-util: 11
|
|
699
|
-
- timestamp: 2023-07-06T05:00
|
|
700
|
-
duration: 300
|
|
698
|
+
- timestamp: 2023-07-06T05:00
|
|
699
|
+
duration: 300
|
|
701
700
|
instance-type: B1
|
|
702
|
-
region: uk-west
|
|
701
|
+
cloud/region: uk-west
|
|
703
702
|
cpu-util: 67
|
|
704
703
|
- timestamp: 2023-07-06T10:00
|
|
705
704
|
duration: 300
|
|
706
705
|
instance-type: B1
|
|
707
|
-
region: uk-west
|
|
708
|
-
cpu-util: 1
|
|
706
|
+
cloud/region: uk-west
|
|
707
|
+
cpu-util: 1
|
|
709
708
|
```
|
|
710
709
|
|
|
711
710
|
However, each observation contains an `instance-type` field that varies between observations. There are two instance types being represented in this array of observations. This means there are duplicate entries for the same timestamp in this array. This is the problem that `group-by` solves. You provide `instance-type` as a key to the `group-by` plugin and it extracts the data belonging to the different instances and separates them into independent arrays. The above example would be restructured so that instance types `A1` and `B1` have their own data, as follows:
|
|
712
711
|
|
|
713
|
-
|
|
714
712
|
```yaml
|
|
715
713
|
graph:
|
|
716
714
|
children:
|
|
@@ -721,7 +719,7 @@ graph:
|
|
|
721
719
|
config:
|
|
722
720
|
group-by:
|
|
723
721
|
groups:
|
|
724
|
-
- cloud
|
|
722
|
+
- cloud/region
|
|
725
723
|
- instance-type
|
|
726
724
|
children:
|
|
727
725
|
A1:
|
|
@@ -729,35 +727,35 @@ graph:
|
|
|
729
727
|
- timestamp: 2023-07-06T00:00
|
|
730
728
|
duration: 300
|
|
731
729
|
instance-type: A1
|
|
732
|
-
region: uk-west
|
|
730
|
+
cloud/region: uk-west
|
|
733
731
|
cpu-util: 99
|
|
734
732
|
- timestamp: 2023-07-06T05:00
|
|
735
733
|
duration: 300
|
|
736
734
|
instance-type: A1
|
|
737
|
-
region: uk-west
|
|
735
|
+
cloud/region: uk-west
|
|
738
736
|
cpu-util: 23
|
|
739
737
|
- timestamp: 2023-07-06T10:00
|
|
740
738
|
duration: 300
|
|
741
739
|
instance-type: A1
|
|
742
|
-
region: uk-west
|
|
740
|
+
cloud/region: uk-west
|
|
743
741
|
cpu-util: 12
|
|
744
742
|
B1:
|
|
745
743
|
inputs:
|
|
746
744
|
- timestamp: 2023-07-06T00:00
|
|
747
745
|
duration: 300
|
|
748
746
|
instance-type: B1
|
|
749
|
-
region: uk-east
|
|
747
|
+
cloud/region: uk-east
|
|
750
748
|
cpu-util: 11
|
|
751
749
|
- timestamp: 2023-07-06T05:00
|
|
752
750
|
duration: 300
|
|
753
751
|
instance-type: B1
|
|
754
|
-
region: uk-east
|
|
752
|
+
cloud/region: uk-east
|
|
755
753
|
cpu-util: 67
|
|
756
754
|
- timestamp: 2023-07-06T10:00
|
|
757
755
|
duration: 300
|
|
758
756
|
instance-type: B1
|
|
759
|
-
region: uk-east
|
|
760
|
-
cpu-util: 1
|
|
757
|
+
cloud/region: uk-east
|
|
758
|
+
cpu-util: 1
|
|
761
759
|
```
|
|
762
760
|
|
|
763
761
|
### Using `group-by`
|
|
@@ -769,9 +767,9 @@ The initialization looks as follows:
|
|
|
769
767
|
```yaml
|
|
770
768
|
initialize:
|
|
771
769
|
plugins:
|
|
772
|
-
group-by:
|
|
773
|
-
|
|
774
|
-
|
|
770
|
+
group-by:
|
|
771
|
+
path: 'builtin'
|
|
772
|
+
method: GroupBy
|
|
775
773
|
```
|
|
776
774
|
|
|
777
775
|
You then have to provide config defining which keys to group by in each component. This is done at the component level (i.e. not global config).
|
|
@@ -782,19 +780,18 @@ For example:
|
|
|
782
780
|
tree:
|
|
783
781
|
children:
|
|
784
782
|
my-app:
|
|
785
|
-
pipeline:
|
|
783
|
+
pipeline:
|
|
786
784
|
- group-by
|
|
787
785
|
config:
|
|
788
786
|
group-by:
|
|
789
787
|
group:
|
|
790
|
-
- region
|
|
788
|
+
- cloud/region
|
|
791
789
|
- instance-type
|
|
792
790
|
```
|
|
793
791
|
|
|
794
|
-
In the example above, the plugin would regroup the input data for the specific component by `region` and by `instance-type`.
|
|
795
|
-
|
|
796
|
-
Assuming the values `A1` and `B1` are found for `instance-type` and the values `uk-east` and `uk-west` are found for `region`, the result of `group-by` would look similar to the following:
|
|
792
|
+
In the example above, the plugin would regroup the input data for the specific component by `cloud/region` and by `instance-type`.
|
|
797
793
|
|
|
794
|
+
Assuming the values `A1` and `B1` are found for `instance-type` and the values `uk-east` and `uk-west` are found for `cloud/region`, the result of `group-by` would look similar to the following:
|
|
798
795
|
|
|
799
796
|
```yaml
|
|
800
797
|
tree:
|
|
@@ -805,7 +802,7 @@ tree:
|
|
|
805
802
|
config:
|
|
806
803
|
group-by:
|
|
807
804
|
groups:
|
|
808
|
-
- region
|
|
805
|
+
- cloud/region
|
|
809
806
|
- instance-type
|
|
810
807
|
children:
|
|
811
808
|
uk-west:
|
|
@@ -815,17 +812,17 @@ tree:
|
|
|
815
812
|
- timestamp: 2023-07-06T00:00
|
|
816
813
|
duration: 300
|
|
817
814
|
instance-type: A1
|
|
818
|
-
region: uk-west
|
|
815
|
+
cloud/region: uk-west
|
|
819
816
|
cpu-util: 99
|
|
820
817
|
- timestamp: 2023-07-06T05:00
|
|
821
818
|
duration: 300
|
|
822
819
|
instance-type: A1
|
|
823
|
-
region: uk-west
|
|
820
|
+
cloud/region: uk-west
|
|
824
821
|
cpu-util: 23
|
|
825
822
|
- timestamp: 2023-07-06T10:00
|
|
826
823
|
duration: 300
|
|
827
824
|
instance-type: A1
|
|
828
|
-
region: uk-west
|
|
825
|
+
cloud/region: uk-west
|
|
829
826
|
cpu-util: 12
|
|
830
827
|
uk-east:
|
|
831
828
|
children:
|
|
@@ -834,19 +831,18 @@ tree:
|
|
|
834
831
|
- timestamp: 2023-07-06T00:00
|
|
835
832
|
duration: 300
|
|
836
833
|
instance-type: B1
|
|
837
|
-
region: uk-east
|
|
834
|
+
cloud/region: uk-east
|
|
838
835
|
cpu-util: 11
|
|
839
836
|
- timestamp: 2023-07-06T05:00
|
|
840
837
|
duration: 300
|
|
841
838
|
instance-type: B1
|
|
842
|
-
region: uk-east
|
|
839
|
+
cloud/region: uk-east
|
|
843
840
|
cpu-util: 67
|
|
844
841
|
- timestamp: 2023-07-06T10:00
|
|
845
842
|
duration: 300
|
|
846
843
|
instance-type: B1
|
|
847
|
-
region: uk-east
|
|
848
|
-
cpu-util: 1
|
|
844
|
+
cloud/region: uk-east
|
|
845
|
+
cpu-util: 1
|
|
849
846
|
```
|
|
850
847
|
|
|
851
848
|
This reorganized data can then be used to feed the rest of a computation pipeline.
|
|
852
|
-
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
name: azure-importer
|
|
2
|
-
description: example impl invoking Azure Importer model
|
|
3
|
-
tags:
|
|
4
|
-
initialize:
|
|
5
|
-
plugins:
|
|
6
|
-
azure-importer:
|
|
7
|
-
path: "@grnsft/if-unofficial-plugins"
|
|
8
|
-
method: AzureImporter
|
|
9
|
-
kind: plugin
|
|
10
|
-
tree:
|
|
11
|
-
children:
|
|
12
|
-
child:
|
|
13
|
-
pipeline:
|
|
14
|
-
- azure-importer
|
|
15
|
-
config:
|
|
16
|
-
azure-importer:
|
|
17
|
-
azure-observation-window: 5 min # value and unit must be space separated
|
|
18
|
-
azure-observation-aggregation: "average"
|
|
19
|
-
azure-subscription-id: 42a3c589-87ce-4478-8ed6-9adc11b81965
|
|
20
|
-
azure-resource-group: Group1
|
|
21
|
-
azure-vm-name: VM1
|
|
22
|
-
inputs:
|
|
23
|
-
- timestamp: "2023-11-02T10:35:31.820Z"
|
|
24
|
-
duration: 3600
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
name: basic-demo
|
|
2
|
-
description: null
|
|
3
|
-
tags: null
|
|
4
|
-
initialize:
|
|
5
|
-
plugins:
|
|
6
|
-
mock-observations:
|
|
7
|
-
path: "@grnsft/if-plugins"
|
|
8
|
-
method: MockObservations
|
|
9
|
-
global-config:
|
|
10
|
-
timestamp-from: 2024-02-26T00:00
|
|
11
|
-
timestamp-to: 2024-02-26T00:10
|
|
12
|
-
duration: 60
|
|
13
|
-
components:
|
|
14
|
-
- cloud/instance-type: Standard_A1_v2
|
|
15
|
-
- cloud/instance-type: Standard_A2_v2
|
|
16
|
-
generators:
|
|
17
|
-
common:
|
|
18
|
-
cloud/vendor: azure
|
|
19
|
-
cloud/region: uk-west
|
|
20
|
-
geolocation: 37.7749,-122.4194
|
|
21
|
-
randint:
|
|
22
|
-
cpu/utilization:
|
|
23
|
-
min: 1
|
|
24
|
-
max: 99
|
|
25
|
-
teads-curve:
|
|
26
|
-
path: "@grnsft/if-unofficial-plugins"
|
|
27
|
-
method: TeadsCurve
|
|
28
|
-
global-config:
|
|
29
|
-
interpolation: spline
|
|
30
|
-
group-by:
|
|
31
|
-
path: "builtin"
|
|
32
|
-
method: GroupBy
|
|
33
|
-
cloud-metadata:
|
|
34
|
-
method: CloudMetadata
|
|
35
|
-
path: "@grnsft/if-plugins"
|
|
36
|
-
operational-carbon:
|
|
37
|
-
path: "@grnsft/if-plugins"
|
|
38
|
-
method: Multiply
|
|
39
|
-
global-config:
|
|
40
|
-
input-parameters: ["cpu/energy", "grid/carbon-intensity"]
|
|
41
|
-
output-parameter: "cpu/carbon"
|
|
42
|
-
watttime:
|
|
43
|
-
path: "@grnsft/if-unofficial-plugins"
|
|
44
|
-
method: WattTimeGridEmissions
|
|
45
|
-
tree:
|
|
46
|
-
children:
|
|
47
|
-
application:
|
|
48
|
-
pipeline:
|
|
49
|
-
- mock-observations
|
|
50
|
-
# - group-by
|
|
51
|
-
- cloud-metadata
|
|
52
|
-
- teads-curve
|
|
53
|
-
- watttime
|
|
54
|
-
- operational-carbon
|
|
55
|
-
defaults:
|
|
56
|
-
grid/carbon-intensity: 250
|
|
57
|
-
geolocation: 48.8567,2.3522
|
|
58
|
-
# config:
|
|
59
|
-
# group-by:
|
|
60
|
-
# group:
|
|
61
|
-
# - cloud/region
|
|
62
|
-
# - cloud/instance-type
|
|
63
|
-
inputs:
|
|
64
|
-
- timestamp: "2024-02-26 00:00:00"
|
|
65
|
-
duration: 60
|
|
66
|
-
cloud/instance-type: Standard_A1_v2
|
|
67
|
-
cloud/vendor: azure
|
|
68
|
-
cloud/region: francesouth
|
|
69
|
-
geolocation: 48.8567,2.3522
|
|
70
|
-
cpu/utilization: 15
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
name: boavizta cloud demo
|
|
2
|
-
description: calls boavizta api
|
|
3
|
-
tags:
|
|
4
|
-
initialize:
|
|
5
|
-
plugins:
|
|
6
|
-
"boavizta-cloud":
|
|
7
|
-
method: BoaviztaCloudOutput
|
|
8
|
-
path: "@grnsft/if-unofficial-plugins"
|
|
9
|
-
tree:
|
|
10
|
-
children:
|
|
11
|
-
child:
|
|
12
|
-
pipeline:
|
|
13
|
-
- boavizta-cloud
|
|
14
|
-
defaults:
|
|
15
|
-
instance-type: r6g.medium
|
|
16
|
-
provider: aws
|
|
17
|
-
inputs:
|
|
18
|
-
- timestamp: "2021-01-01T00:00:00Z"
|
|
19
|
-
duration: 15 # Secs
|
|
20
|
-
cpu/utilization: 34
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
name: boavizta-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
|
-
cloud/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
|
-
cloud/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
|
-
cloud/instance-type: A1
|
|
78
|
-
region: uk-west
|
|
79
|
-
network/energy: 0.000001
|
|
80
|
-
- timestamp: "2023-12-12T00:00:13.000Z"
|
|
81
|
-
duration: 30
|
|
82
|
-
cloud/instance-type: A1
|
|
83
|
-
region: uk-west
|
|
84
|
-
cpu/utilization: 15
|
|
85
|
-
network/energy: 0.000001
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
name: boavizta
|
|
2
|
-
description: calls boavizta api
|
|
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
|
-
tree:
|
|
13
|
-
children:
|
|
14
|
-
child:
|
|
15
|
-
pipeline:
|
|
16
|
-
- boavizta-cpu
|
|
17
|
-
defaults:
|
|
18
|
-
cpu/number-cores: 24
|
|
19
|
-
cpu/name: Intel® Core™ i7-1185G7
|
|
20
|
-
inputs:
|
|
21
|
-
- timestamp: 2023-07-06T00:00 # [KEYWORD] [NO-SUBFIELDS] time when measurement occurred
|
|
22
|
-
duration: 3600 # Secs
|
|
23
|
-
cpu/utilization: 18.392
|
|
24
|
-
- timestamp: 2023-08-06T00:00 # [KEYWORD] [NO-SUBFIELDS] time when measurement occurred
|
|
25
|
-
duration: 3600 # Secs
|
|
26
|
-
cpu/utilization: 16
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
name: ccf-demo
|
|
2
|
-
description: example impl invoking CCF model
|
|
3
|
-
tags:
|
|
4
|
-
initialize:
|
|
5
|
-
plugins:
|
|
6
|
-
ccf:
|
|
7
|
-
method: CloudCarbonFootprint
|
|
8
|
-
path: "@grnsft/if-unofficial-plugins"
|
|
9
|
-
tree:
|
|
10
|
-
children:
|
|
11
|
-
child:
|
|
12
|
-
pipeline:
|
|
13
|
-
- ccf
|
|
14
|
-
defaults:
|
|
15
|
-
cloud/vendor: "aws"
|
|
16
|
-
cloud/instance-type: "m5n.large"
|
|
17
|
-
inputs:
|
|
18
|
-
- timestamp: 2023-07-06T00:00 # [KEYWORD] [NO-SUBFIELDS] time when measurement occurred
|
|
19
|
-
duration: 1
|
|
20
|
-
cpu/utilization: 10
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
name: coud-instanmce-metadata-demo
|
|
2
|
-
description: null
|
|
3
|
-
tags: null
|
|
4
|
-
initialize:
|
|
5
|
-
plugins:
|
|
6
|
-
teads-curve:
|
|
7
|
-
path: '@grnsft/if-unofficial-plugins'
|
|
8
|
-
method: TeadsCurve
|
|
9
|
-
global-config:
|
|
10
|
-
interpolation: spline
|
|
11
|
-
cloud-instance-metadata:
|
|
12
|
-
method: CloudInstanceMetadata
|
|
13
|
-
path: "@grnsft/if-plugins"
|
|
14
|
-
tree:
|
|
15
|
-
children:
|
|
16
|
-
child-0:
|
|
17
|
-
defaults:
|
|
18
|
-
cpu/thermal-design-power: 100
|
|
19
|
-
cloud/vendor: aws
|
|
20
|
-
cloud/instance-type: m5n.large
|
|
21
|
-
pipeline:
|
|
22
|
-
- teads-curve
|
|
23
|
-
- cloud-instance-metadata
|
|
24
|
-
inputs:
|
|
25
|
-
- timestamp: 2023-07-06T00:00
|
|
26
|
-
duration: 10
|
|
27
|
-
cpu/utilization: 80
|
|
28
|
-
- timestamp: 2023-07-06T00:01
|
|
29
|
-
duration: 10
|
|
30
|
-
cpu/utilization: 80
|
|
31
|
-
outputs:
|
|
32
|
-
- timestamp: 2023-07-06T00:00
|
|
33
|
-
duration: 10
|
|
34
|
-
cpu/utilization: 80
|
|
35
|
-
cpu/thermal-design-power: 100
|
|
36
|
-
cpu/energy: 0.00025568089430894314
|
|
37
|
-
- timestamp: 2023-07-06T00:01
|
|
38
|
-
duration: 10
|
|
39
|
-
cpu/utilization: 80
|
|
40
|
-
cpu/thermal-design-power: 100
|
|
41
|
-
cpu/energy: 0.00025568089430894314
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
name: co2js-demo
|
|
2
|
-
description: example impl invoking CO2.JS model
|
|
3
|
-
tags:
|
|
4
|
-
initialize:
|
|
5
|
-
plugins:
|
|
6
|
-
co2js:
|
|
7
|
-
method: Co2js
|
|
8
|
-
path: "@grnsft/if-unofficial-plugins"
|
|
9
|
-
global-config:
|
|
10
|
-
options:
|
|
11
|
-
dataReloadRatio: 0.6
|
|
12
|
-
firstVisitPercentage: 0.9
|
|
13
|
-
returnVisitPercentage: 0.1
|
|
14
|
-
gridIntensity:
|
|
15
|
-
device: 560.98
|
|
16
|
-
dataCenter:
|
|
17
|
-
country: "TWN"
|
|
18
|
-
tree:
|
|
19
|
-
children:
|
|
20
|
-
child:
|
|
21
|
-
pipeline:
|
|
22
|
-
- co2js
|
|
23
|
-
config:
|
|
24
|
-
co2js:
|
|
25
|
-
type: swd
|
|
26
|
-
green-web-host: true
|
|
27
|
-
inputs:
|
|
28
|
-
- timestamp: 2023-07-06T00:00
|
|
29
|
-
duration: 1
|
|
30
|
-
network/data/bytes: 1000000
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
name: csv-export-demo
|
|
2
|
-
description: example exporting output to a csv file
|
|
3
|
-
tags:
|
|
4
|
-
initialize:
|
|
5
|
-
plugins:
|
|
6
|
-
csv-exporter:
|
|
7
|
-
method: CsvExport
|
|
8
|
-
path: "@grnsft/if-plugins"
|
|
9
|
-
tree:
|
|
10
|
-
children:
|
|
11
|
-
child:
|
|
12
|
-
pipeline:
|
|
13
|
-
- csv-exporter
|
|
14
|
-
config:
|
|
15
|
-
csv-exporter:
|
|
16
|
-
output-path: ./examples/outputs/csv-test.csv
|
|
17
|
-
headers:
|
|
18
|
-
- timestamp
|
|
19
|
-
- duration
|
|
20
|
-
- carbon
|
|
21
|
-
- energy
|
|
22
|
-
inputs:
|
|
23
|
-
- timestamp: 2023-07-06T00:00
|
|
24
|
-
duration: 1
|
|
25
|
-
operational-carbon: 0.02
|
|
26
|
-
embodied-carbon: 5
|
|
27
|
-
energy: 3.5
|
|
28
|
-
carbon: 5.02
|
|
29
|
-
- timestamp: 2023-07-06T00:10
|
|
30
|
-
duration: 1
|
|
31
|
-
operational-carbon: 0.03
|
|
32
|
-
embodied-carbon: 4
|
|
33
|
-
energy: 2.9
|
|
34
|
-
carbon: 4.03
|
|
@@ -1,21 +0,0 @@
|
|
|
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
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
name: sci-e-demo
|
|
2
|
-
description:
|
|
3
|
-
tags:
|
|
4
|
-
initialize:
|
|
5
|
-
plugins:
|
|
6
|
-
e-net:
|
|
7
|
-
method: ENet
|
|
8
|
-
path: "@grnsft/if-plugins"
|
|
9
|
-
global-config:
|
|
10
|
-
energy-per-gb: 0.02
|
|
11
|
-
tree:
|
|
12
|
-
children:
|
|
13
|
-
child:
|
|
14
|
-
pipeline:
|
|
15
|
-
- e-net
|
|
16
|
-
config:
|
|
17
|
-
e-net:
|
|
18
|
-
inputs:
|
|
19
|
-
- timestamp: 2023-08-06T00:00
|
|
20
|
-
duration: 3600
|
|
21
|
-
network/data-in: 1
|
|
22
|
-
network/data-out: 2
|