@grnsft/if 0.1.9 → 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 (176) 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 -3
  7. package/build/config/config.js +11 -10
  8. package/build/config/params.js +17 -17
  9. package/build/config/strings.d.ts +9 -8
  10. package/build/config/strings.js +13 -12
  11. package/build/index.js +19 -69
  12. package/build/lib/aggregate.d.ts +6 -0
  13. package/build/lib/aggregate.js +72 -0
  14. package/build/lib/compute.d.ts +5 -0
  15. package/build/lib/compute.js +84 -0
  16. package/build/lib/exhaust.d.ts +6 -0
  17. package/build/lib/exhaust.js +47 -0
  18. package/build/lib/initialize.d.ts +6 -0
  19. package/build/lib/initialize.js +98 -0
  20. package/build/lib/load.d.ts +6 -0
  21. package/build/lib/load.js +24 -0
  22. package/build/lib/parameterize.d.ts +5 -0
  23. package/build/lib/parameterize.js +49 -0
  24. package/build/models/export-csv.d.ts +2 -0
  25. package/build/models/export-csv.js +129 -0
  26. package/build/models/export-log.d.ts +4 -0
  27. package/build/models/export-log.js +18 -0
  28. package/build/models/export-yaml.d.ts +4 -0
  29. package/build/models/export-yaml.js +24 -0
  30. package/build/models/group-by.d.ts +11 -0
  31. package/build/models/group-by.js +56 -0
  32. package/build/models/index.d.ts +2 -1
  33. package/build/models/index.js +5 -3
  34. package/build/models/time-sync.d.ts +2 -57
  35. package/build/models/time-sync.js +204 -158
  36. package/build/types/aggregation.js +5 -0
  37. package/build/types/compute.d.ts +25 -0
  38. package/build/types/compute.js +3 -0
  39. package/build/types/exhaust-plugin-interface.d.ts +7 -0
  40. package/build/types/exhaust-plugin-interface.js +3 -0
  41. package/build/types/group-by.d.ts +3 -0
  42. package/build/types/group-by.js +3 -0
  43. package/build/types/initialize.d.ts +4 -0
  44. package/build/types/initialize.js +3 -0
  45. package/build/types/interface.d.ts +8 -0
  46. package/build/types/interface.js +3 -0
  47. package/build/types/load.d.ts +7 -0
  48. package/build/types/load.js +3 -0
  49. package/build/types/manifest.d.ts +40 -0
  50. package/build/types/manifest.js +3 -0
  51. package/build/types/parameters.d.ts +4 -5
  52. package/build/types/parameters.js +1 -1
  53. package/build/types/process-args.d.ts +3 -5
  54. package/build/types/process-args.js +1 -1
  55. package/build/types/time-sync.d.ts +9 -2
  56. package/build/types/time-sync.js +1 -1
  57. package/build/util/aggregation-helper.d.ts +6 -0
  58. package/build/util/aggregation-helper.js +56 -0
  59. package/build/util/args.d.ts +6 -3
  60. package/build/util/args.js +21 -17
  61. package/build/util/errors.d.ts +1 -1
  62. package/build/util/errors.js +8 -4
  63. package/build/util/helpers.d.ts +4 -0
  64. package/build/util/helpers.js +23 -4
  65. package/build/util/json.d.ts +4 -0
  66. package/build/util/json.js +16 -0
  67. package/build/util/logger.d.ts +5 -0
  68. package/build/util/logger.js +40 -0
  69. package/build/util/validations.d.ts +22 -19
  70. package/build/util/validations.js +41 -34
  71. package/examples/{impls/test → manifests}/azure-importer.yml +8 -8
  72. package/examples/manifests/basic-demo.yml +75 -0
  73. package/examples/manifests/basic.yml +27 -0
  74. package/examples/manifests/boavizta-pipeline.yml +85 -0
  75. package/examples/{impls/test → manifests}/boavizta.yml +11 -12
  76. package/examples/{impls/test → manifests}/ccf.yml +9 -10
  77. package/examples/manifests/cim.yml +20 -0
  78. package/examples/manifests/cloud-metadata.yml +41 -0
  79. package/examples/manifests/co2js.yml +30 -0
  80. package/examples/manifests/coefficient.yml +23 -0
  81. package/examples/manifests/csv-export.yml +34 -0
  82. package/examples/manifests/e-mem.yml +21 -0
  83. package/examples/{impls/test → manifests}/e-net.yml +9 -8
  84. package/examples/manifests/generics.yml +71 -0
  85. package/examples/manifests/group-by.yml +48 -0
  86. package/examples/manifests/mock-observation.yml +33 -0
  87. package/examples/manifests/multiply.yml +23 -0
  88. package/examples/manifests/nesting-demo.yml +89 -0
  89. package/examples/manifests/nesting.yml +215 -0
  90. package/examples/manifests/pipeline-demo-1.yml +85 -0
  91. package/examples/manifests/pipeline-demo-2.yml +149 -0
  92. package/examples/manifests/pipeline-demo.yml +128 -0
  93. package/examples/manifests/pipeline-teads-sci.yml +82 -0
  94. package/examples/manifests/pipeline-with-generics.yml +147 -0
  95. package/examples/manifests/pipeline-with-mocks.yml +146 -0
  96. package/examples/{impls/test → manifests}/sci-e.yml +6 -8
  97. package/examples/manifests/sci-m.yml +23 -0
  98. package/examples/{impls/test → manifests}/sci-o.yml +10 -10
  99. package/examples/{impls/test → manifests}/sci.yml +10 -9
  100. package/examples/manifests/shell.yml +20 -0
  101. package/examples/manifests/sum.yml +23 -0
  102. package/examples/{impls/test → manifests}/tdp-finder.yml +6 -7
  103. package/examples/manifests/teads-aws.yml +22 -0
  104. package/examples/manifests/teads-curve.yml +20 -0
  105. package/examples/manifests/time-sync.yml +32 -0
  106. package/examples/manifests/watt-time.yml +42 -0
  107. package/jest.config.js +6 -1
  108. package/package.json +13 -8
  109. package/src/__tests__/integration/templates/integration.yaml +16 -0
  110. package/src/models/README.md +6 -6
  111. package/tsconfig.test.json +1 -1
  112. package/Makefile +0 -16
  113. package/build/lib/aggregator.d.ts +0 -7
  114. package/build/lib/aggregator.js +0 -46
  115. package/build/lib/models-universe.d.ts +0 -40
  116. package/build/lib/models-universe.js +0 -145
  117. package/build/lib/observatory.d.ts +0 -20
  118. package/build/lib/observatory.js +0 -31
  119. package/build/lib/supercomputer.d.ts +0 -39
  120. package/build/lib/supercomputer.js +0 -116
  121. package/build/types/aggregator.js +0 -5
  122. package/build/types/impl.d.ts +0 -92
  123. package/build/types/impl.js +0 -19
  124. package/build/types/model-interface.d.ts +0 -13
  125. package/build/types/model-interface.js +0 -3
  126. package/build/types/models-universe.d.ts +0 -20
  127. package/build/types/models-universe.js +0 -3
  128. package/build/types/supercomputer.d.ts +0 -4
  129. package/build/types/supercomputer.js +0 -3
  130. package/build/util/param-selectors.d.ts +0 -5
  131. package/build/util/param-selectors.js +0 -14
  132. package/examples/impls/case-studies/accenture.yml +0 -155
  133. package/examples/impls/case-studies/aggregation.yml +0 -97
  134. package/examples/impls/case-studies/aveva.yaml +0 -48
  135. package/examples/impls/case-studies/azure-yassine.yaml +0 -67
  136. package/examples/impls/case-studies/boavizta.yml +0 -26
  137. package/examples/impls/case-studies/dow_msft.yml +0 -173
  138. package/examples/impls/case-studies/farm-insights.yaml +0 -35
  139. package/examples/impls/case-studies/gsf-website.yaml +0 -93
  140. package/examples/impls/case-studies/msft-eshoppen.yaml +0 -162
  141. package/examples/impls/case-studies/msft-green-ai.yaml +0 -58
  142. package/examples/impls/case-studies/ntt-data-on-premise.yaml +0 -201
  143. package/examples/impls/test/aggregation-test.yml +0 -109
  144. package/examples/impls/test/aggregation-test2.yml +0 -52
  145. package/examples/impls/test/cim.yml +0 -19
  146. package/examples/impls/test/e-mem.yml +0 -19
  147. package/examples/impls/test/if-demo.yml +0 -59
  148. package/examples/impls/test/large-impl.yml +0 -257303
  149. package/examples/impls/test/metadata.yml +0 -21
  150. package/examples/impls/test/nesting.yml +0 -113
  151. package/examples/impls/test/new-params-test.yml +0 -35
  152. package/examples/impls/test/sci-m.yml +0 -24
  153. package/examples/impls/test/shell.yml +0 -19
  154. package/examples/impls/test/teads-cpu.yml +0 -18
  155. package/examples/impls/test/time-sync-avoid-padding.yml +0 -50
  156. package/examples/impls/test/time-sync.yml +0 -76
  157. package/examples/ompls/aggregation-test.yml +0 -340
  158. package/examples/ompls/aggregation-test2.yml +0 -83
  159. package/examples/ompls/azure-importer.yml +0 -145
  160. package/examples/ompls/boavizta.yml +0 -32
  161. package/examples/ompls/ccf.yml +0 -29
  162. package/examples/ompls/cim.yml +0 -29
  163. package/examples/ompls/complex-pipeline.yml +0 -105
  164. package/examples/ompls/e-mem.yml +0 -26
  165. package/examples/ompls/full-sci.yml +0 -64
  166. package/examples/ompls/if-demo.yml +0 -517
  167. package/examples/ompls/metadata.yml +0 -29
  168. package/examples/ompls/nesting.yml +0 -113
  169. package/examples/ompls/sci-e.yml +0 -23
  170. package/examples/ompls/sci-m.yml +0 -33
  171. package/examples/ompls/sci-o.yml +0 -29
  172. package/examples/ompls/sci.yml +0 -37
  173. package/examples/ompls/shell.yml +0 -23
  174. package/examples/ompls/teads-cpu.yml +0 -24
  175. package/examples/ompls/time-sync.yml +0 -212
  176. /package/build/types/{aggregator.d.ts → aggregation.d.ts} +0 -0
@@ -1,155 +0,0 @@
1
- name: accenture
2
- description: https://github.com/Green-Software-Foundation/sci-guide/blob/dev/use-case-submissions/nttdatta-On-Premise-Web-system.md
3
- tags:
4
- kind: web
5
- complexity: moderate
6
- category: on-premise
7
- initialize:
8
- models:
9
- - name: sci-e # a model that sums e components
10
- kind: builtin
11
- verbose: false
12
- path: ''
13
- - name: sci-o # a model that given e, i and m calculates a carbon value (e * i) + m
14
- kind: builtin
15
- verbose: false
16
- path: ''
17
- - name: sci # a model that sums sci-o + sci-m
18
- kind: builtin
19
- verbose: false
20
- path: ''
21
- - name: sci-accenture # a model that sums sci-o + sci-m
22
- kind: builtin
23
- verbose: false
24
- path: ''
25
- graph:
26
- children:
27
- vms:
28
- pipeline:
29
- - sci-e
30
- - sci-o
31
- - sci
32
- - sci-accenture
33
- config:
34
- sci-o:
35
- grid-carbon-intensity: 350.861
36
- sci:
37
- functional-unit-duration: 1
38
- functional-duration-time: ''
39
- functional-unit: requests # factor to convert per time to per f.unit
40
- children:
41
- vm1:
42
- inputs:
43
- - timestamp: 2023-07-06T00:00
44
- grid-carbon-intensity: 350.861
45
- duration: 2419200 # seconds in a month (7 days * 4 weeks)
46
- cpu-util: 15
47
- ram-util: 75
48
- energy-cpu: 4.26 #kwh/month
49
- embodied-carbon: 763.33 #gCO2e
50
- requests: 89000
51
- vm2:
52
- inputs:
53
- - timestamp: 2023-07-06T00:00
54
- duration: 2419200 # seconds in a month (7 days * 4 weeks)
55
- cpu-util: 12
56
- ram-util: 72
57
- energy-cpu: 4.26 # kwh/month
58
- embodied-carbon: 763.33 #gCO2e
59
- requests: 89000
60
- vm3:
61
- inputs:
62
- - timestamp: 2023-07-06T00:00
63
- duration: 2419200 # seconds in a month (7 days * 4 weeks)
64
- cpu-util: 10
65
- ram-util: 65
66
- energy-cpu: 4.21 # kwh/month
67
- embodied-carbon: 763.33 #gCO2e
68
- requests: 89000
69
- vm4:
70
- inputs:
71
- - timestamp: 2023-07-06T00:00
72
- duration: 2419200 # seconds in a month (7 days * 4 weeks)
73
- cpu-util: 9
74
- ram-util: 70
75
- energy-cpu: 4.21 # kwh/month
76
- embodied-carbon: 763.33 #gCO2e
77
- requests: 89000
78
- vm5:
79
- inputs:
80
- - timestamp: 2023-07-06T00:00
81
- duration: 2419200 # seconds in a month (7 days * 4 weeks)
82
- cpu-util: 9
83
- ram-util: 70
84
- energy-cpu: 4.21 # kwh/month
85
- embodied-carbon: 763.33 #gCO2e
86
- requests: 89000
87
- vm6:
88
- inputs:
89
- - timestamp: 2023-07-06T00:00
90
- duration: 2419200 # seconds in a month (7 days * 4 weeks)
91
- cpu-util: 8
92
- ram-util: 65
93
- energy-cpu: 3.29 # kwh/month
94
- embodied-carbon: 763.33 #gCO2e
95
- requests: 89000
96
- vm7:
97
- inputs:
98
- - timestamp: 2023-07-06T00:00
99
- duration: 2419200 # seconds in a month (7 days * 4 weeks)
100
- cpu-util: 7
101
- ram-util: 72
102
- energy-cpu: 3.29 # kwh/month
103
- embodied-carbon: 763.33 #gCO2e
104
- requests: 89000
105
- vm8:
106
- inputs:
107
- - timestamp: 2023-07-06T00:00
108
- duration: 2419200 # seconds in a month (7 days * 4 weeks)
109
- cpu-util: 6
110
- ram-util: 70
111
- energy-cpu: 3.29 # kwh/month
112
- embodied-carbon: 763.33 #gCO2e
113
- requests: 89000
114
- db:
115
- pipeline:
116
- - sci-e # sums e components
117
- - sci-o # calculates carbon for this obervation (energy * grid-carbon-intensity) + embodied.
118
- - sci # calculates sci by dividing carbon by `r`
119
- - sci-accenture # multiplies sci value by 1.05 to account for the "app-gateway"
120
- config:
121
- sci-o:
122
- grid-carbon-intensity: 350.861
123
- sci:
124
- functional-unit-duration: 1
125
- functional-duration-time: ''
126
- functional-unit: requests # factor to convert per time to per f.unit
127
- inputs:
128
- - timestamp: 2023-07-06T00:00
129
- duration: 2419200 # seconds in a month (7 days * 4 weeks)
130
- cpu-util: 4
131
- ram-util: 40
132
- energy-cpu: 2.68 # kwh/month
133
- embodied-carbon: 763.33 #gCO2e
134
- requests: 89000
135
- monitoring:
136
- pipeline:
137
- - sci-e # sums e components
138
- - sci-o # calculates carbon for this obervation (energy * grid-carbon-intensity) + embodied.
139
- - sci # calculates sci by dividing carbon by `r`
140
- - sci-accenture # multiplies sci value by 1.05 to account for the "app-gateway"
141
- config:
142
- sci-o:
143
- grid-carbon-intensity: 350.861
144
- sci:
145
- functional-unit-duration: 1
146
- functional-duration-time: ''
147
- functional-unit: requests # factor to convert per time to per f.unit
148
- inputs:
149
- - timestamp: 2023-07-06T00:00
150
- duration: 2419200 # seconds in a month (7 days * 4 weeks)
151
- cpu-util: 4
152
- ram-util: 40
153
- energy-cpu: 4.62 # kwh/month
154
- embodied-carbon: 763.33 #gCO2e
155
- requests: 89000
@@ -1,97 +0,0 @@
1
- name: nesting-demo
2
- description:
3
- aggregation:
4
- aggregation-metrics: ['carbon', 'energy']
5
- aggregation-method: 'sum' # should default to sum if no value given
6
- tags:
7
- kind: web
8
- complexity: moderate
9
- category: on-premise
10
- initialize:
11
- models:
12
- - name: teads-curve
13
- model: TeadsCurveModel
14
- path: "@grnsft/if-unofficial-models"
15
- - name: sci-e
16
- model: SciEModel
17
- path: "@grnsft/if-models"
18
- - name: sci-m
19
- path: "@grnsft/if-models"
20
- model: SciMModel
21
- - name: sci-o
22
- model: SciOModel
23
- path: "@grnsft/if-models"
24
- - name: sci
25
- model: SciModel
26
- path: "@grnsft/if-models"
27
- graph:
28
- children:
29
- child: # an advanced grouping node
30
- pipeline:
31
- - teads-curve
32
- - sci-e
33
- - sci-m
34
- - sci-o
35
- - sci
36
- config:
37
- teads-curve:
38
- thermal-design-power: 65
39
- sci-m:
40
- total-embodied-emissions: 251000 # gCO2eq
41
- time-reserved: 3600 # 1 hour in s
42
- expected-lifespan: 126144000 # 4 years in seconds
43
- resources-reserved: 1
44
- total-resources: 1
45
- sci-o:
46
- grid-carbon-intensity: 457 # gCO2/kwh
47
- sci:
48
- functional-unit-duration: 1
49
- functional-duration-time: ''
50
- functional-unit: requests # factor to convert per time to per f.unit
51
- children:
52
- child-1:
53
- inputs:
54
- - timestamp: 2023-07-06T00:00
55
- duration: 10
56
- cpu-util: 50
57
- e-net: 0.000811 #kwh
58
- requests: 380
59
- carbon: 10
60
- energy: 20
61
- - timestamp: 2023-07-06T00:00
62
- duration: 10
63
- cpu-util: 50
64
- e-net: 0.000811 #kwh
65
- requests: 380
66
- carbon: 10
67
- energy: 20
68
- - timestamp: 2023-07-06T00:00
69
- duration: 10
70
- cpu-util: 50
71
- e-net: 0.000811 #kwh
72
- requests: 380
73
- carbon: 10
74
- energy: 20
75
- child-2:
76
- inputs:
77
- - timestamp: 2023-07-06T00:00
78
- duration: 10
79
- cpu-util: 50
80
- e-net: 0.000811 #kwh
81
- requests: 380
82
- carbon: 10
83
- energy: 20
84
- - timestamp: 2023-07-06T00:00
85
- duration: 10
86
- cpu-util: 50
87
- e-net: 0.000811 #kwh
88
- requests: 380
89
- carbon: 10
90
- energy: 20
91
- - timestamp: 2023-07-06T00:00
92
- duration: 10
93
- cpu-util: 50
94
- e-net: 0.000811 #kwh
95
- requests: 380
96
- carbon: 10
97
- energy: 20
@@ -1,48 +0,0 @@
1
- name: aveva
2
- description: https://github.com/Green-Software-Foundation/sci-guide/blob/dev/use-case-submissions/AVEVA_case_study.md
3
- tags:
4
- kind: web
5
- complexity: moderate
6
- category: on-premise
7
- initialize:
8
- models:
9
- - name: aveva # a model that takes in power inputs and returns e.
10
- kind: builtin
11
- - name: sci-o # a model that given e, i and m calculates a carbon value (e * i) + m
12
- kind: builtin
13
- - name: sci-e # a model that given e, i and m calculates a carbon value (e * i) + m
14
- kind: builtin
15
- - name: sci-m # a model that calculates m from te, tir, el, rr and rtor.
16
- kind: builtin
17
- - name: sci # sums SCI components and converts to f.unit
18
- kind: builtin
19
- graph:
20
- children:
21
- pc:
22
- pipeline:
23
- - aveva
24
- - sci-e
25
- - sci-m
26
- - sci-o
27
- config:
28
- aveva:
29
- sci-e:
30
- sci-m:
31
- total-embodied-emissions: 350000 # kgCO2eq
32
- time-reserved: 1 # 1 year in seconds
33
- expected-lifespan: 5 # 5 years in seconds
34
- resources-reserved: 1
35
- total-resources: 1
36
- sci-o:
37
- grid-carbon-intensity: 474.8 #gCo2/kWh
38
- sci:
39
- functional-unit-duration: 1
40
- functional-duration-time: ''
41
- functional-unit: requests # factor to convert per time to per f.unit
42
- inputs:
43
- - timestamp: 2023-07-06T00:00
44
- pl: 16.009 # average over timespan
45
- pb: 11.335 # average over timespan
46
- time: 8322 # (hours in year * average uptime e.g. 95%)
47
-
48
-
@@ -1,67 +0,0 @@
1
- name: azure-metrics
2
- description: "https://github.com/yelghali/imapct-engine-framework/blob/main/src/lib/components/azure-vm.py"
3
- tags:
4
- initialize:
5
- models:
6
- - name: metrics-exporter # model that grabs Azure metrics and uses them to enrich confg and obs in impl
7
- kind: plugin
8
- verbose: false
9
- path: /usr/local/bin
10
- - name: teads-curve # a model that returns an embodied value given the sci embodied attribution equation.
11
- kind: builtin
12
- verbose: false
13
- path: ''
14
- - name: energy-memory # a model that calculates e for memory utilization (0.38 * mem-util)
15
- kind: builtin
16
- path: ''
17
- - name: sci-e # sums e components (can be e-cpu, e-gpu, e-mem, e-network) - in this case energy-memory and e-cpu from teads
18
- kind: builtin
19
- path: ''
20
- - name: sci-m # a model that calculates m from te, tir, el, rr and rtor
21
- kind: builtin
22
- verbose: false
23
- path: ''
24
- - name: sci-o # takes in total e and outputs operational emissions
25
- kind: builtin
26
- verbose: false
27
- path: ''
28
- - name: sci # a model that sums sci-o + sci-m and applies functional unit
29
- kind: builtin
30
- verbose: false
31
- path: ''
32
- # Single input
33
- graph:
34
- backend: # an advanced grouping node
35
- pipeline:
36
- - metrics-exporter - # grabs obs from azure-sdk and enriches impl
37
- - teads-cpu # tdp & cpu -> energy
38
- - energy-memory # calculates energy used by memory as component of sci-m
39
- - sci-m # duration & config -> embodied
40
- - sci-e # sums e components (can be e-cpu, e-gpu, e-mem, e-network) - in this case energy-memory and e-cpu from teads
41
- - sci-o # takes in total e and outputs operational emissions
42
- - sci # sum sci-m and sci-o and apply functional unit
43
- config:
44
- vendor: azure
45
- region: east-us # lookup carbon intensity from region
46
- energy-memory:
47
- mem-allocation: 32 # GB
48
- mem-energy: 0.38 # kwh/GB
49
- sci-m:
50
- total-embodied-emissions: 1200 # kgCO2eq
51
- tr: 3600 # 1hr in s
52
- expected-lifespan: 126144000 # 4 years in seconds
53
- resources-reserved: 2
54
- total-resources: 16
55
- sci-e:
56
- i: 100 # gCO2e/kWh
57
- sci:
58
- time: hour # signal to convert /s -> /hr
59
- factotal-resources: 32000
60
- inputs:
61
- - timestamp: 2023-07-06T00:00
62
- duration: 86400 # 1 day
63
- subscription-id: c60d99da-0c45-4dfa-bc21-87e3c4cb4716
64
- resource-group: my-application
65
- name: batch-servers
66
- input-window: 3600 # 1 min buckets
67
-
@@ -1,26 +0,0 @@
1
- name: boavizta-demo
2
- description: calls boavizta api
3
- tags:
4
- initialize:
5
- models:
6
- - name: boavizta-cpu
7
- kind: builtin
8
- config:
9
- allocation: LINEAR
10
- verbose: true
11
- graph:
12
- children:
13
- front-end:
14
- pipeline:
15
- - boavizta-cpu
16
- config:
17
- boavizta-cpu:
18
- core-units: 24
19
- physical-processor: 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-util: 18.392
24
- - timestamp: 2023-08-06T00:00 # [KEYWORD] [NO-SUBFIELDS] time when measurement occurred
25
- duration: 3600 # Secs
26
- cpu-util: 16
@@ -1,173 +0,0 @@
1
- name: dow-msft
2
- description: "https://github.com/Green-Software-Foundation/sci-guide/blob/dev/use-case-submissions/dow-msft-Graph-DB.md"
3
- tags:
4
- kind: db-api
5
- complexity: simple
6
- category: cloud
7
- initialize:
8
- models:
9
- - name: teads-curve # a model that returns an embodied value given the sci embodied attribution equation.
10
- kind: builtin
11
- verbose: false
12
- path: ''
13
- - name: emem # a model that calculates e for memory utilization (0.38 * mem-util = e-mem in kwH)
14
- kind: builtin
15
- path: ''
16
- - name: sci-e # sums e components (can be e-cpu, e-gpu, e-mem, e-network) - in this case emem and e-cpu from teads
17
- kind: builtin
18
- path: ''
19
- - name: sci-m # a model that calculates m from te, tir, el, rr and rtor
20
- kind: builtin
21
- verbose: false
22
- path: ''
23
- - name: sci-o # takes in total e and outputs operational emissions
24
- kind: builtin
25
- verbose: false
26
- path: ''
27
- - name: sci # a model that sums sci-o + sci-m and applies functional unit
28
- kind: builtin
29
- verbose: false
30
- path: ''
31
- # Single input
32
- graph:
33
- children:
34
- backend:
35
- pipeline:
36
- - teads-curve # tdp & cpu -> energy
37
- - emem # calculates energy used by memory as component of sci-m
38
- - sci-m # duration & config -> embodied
39
- - sci-e # energy & grid-carbon-intensity & embodied -> carbon
40
- - sci-o # takes in total e and outputs operational emissions
41
- - sci # add cpu and memory components and convert to f.unit
42
- config:
43
- teads-curve: # use thermal-design-power to derive energy-cpu (kwh)
44
- physical-processor: Intel-xeon-platinum-8380
45
- thermal-design-power: 270
46
- emem: # mem-util * mem-alloc * mem-energy = emem (kwh)
47
- mem-alloc: 32 # GB
48
- mem-energy: 0.38 # wh/GB
49
- sci-m:
50
- total-embodied-emissions: 1533.120 # gCO2eq
51
- time-reserved: 1 # s per hour
52
- expected-lifespan: 3 # 3 years in seconds
53
- resources-reserved: 1
54
- total-resources: 8
55
- sci-o:
56
- grid-carbon-intensity: 554 # gCO2e/kWh
57
- sci:
58
- functional-unit-duration: 1
59
- functional-duration-time: ''
60
- functional-unit: requests # factor to convert per time to per f.unit
61
- children:
62
- tiger-databasenergy-cpu:
63
- config:
64
- sci-m:
65
- total-embodied-emissions: 1533.120 # gCO2eq
66
- time-reserved: 1 # s per hour
67
- expected-lifespan: 35040 # 3 years in seconds
68
- resources-reserved: 2
69
- total-resources: 64
70
- inputs:
71
- - timestamp: 2023-07-06T00:00
72
- duration: 3600
73
- cpu-util: 17
74
- mem-util: 19 # % of available
75
- requests: 32000
76
- tiger-databasenergy-memory:
77
- config:
78
- sci-m:
79
- total-embodied-emissions: 1216.620 # gCO2eq
80
- time-reserved: 1 # s per hour
81
- expected-lifespan: 35040 # 3 years in seconds
82
- resources-reserved: 1
83
- total-resources: 8
84
- inputs:
85
- - timestamp: 2023-07-06T00:00
86
- duration: 1
87
- cpu-util: 0
88
- mem-util: 0 # % of available
89
- requests: 32000
90
- tiger-api-cpu: # a leaf component
91
- config:
92
- teads-curve:
93
- physical-processor: Intel-xeon-platinum-8270
94
- thermal-design-power: 205
95
- emem:
96
- mem-alloc: 1.75
97
- sci-m:
98
- total-embodied-emissions: 1216.620
99
- inputs:
100
- - timestamp: 2023-08-06T00:00
101
- duration: 3600
102
- cpu-util: 25
103
- mem-util: 70 # % of total
104
- requests: 32000
105
- tiger-api-mem:
106
- config:
107
- sci-m:
108
- total-embodied-emissions: 1216.620
109
- inputs:
110
- - timestamp: 2023-08-06T00:00
111
- duration: 3600
112
- cpu-util: 0
113
- mem-util: 0 # % of total
114
- requests: 32000
115
- neo4j-databasenergy-cpu: # a leaf component
116
- config:
117
- sci-m:
118
- total-embodied-emissions: 1216.620 # gCO2eq
119
- time-reserved: 1 # s per hour
120
- expected-lifespan: 35040 # 3 years in seconds
121
- resources-reserved: 1
122
- total-resources: 8
123
- sci-o:
124
- grid-carbon-intensity: 554 # gCO2e/kWh
125
- inputs:
126
- - timestamp: 2023-07-06T00:00
127
- duration: 3600 # this data is using span, but the model expects duration
128
- cpu-util: 28.05
129
- mem-util: 19.375
130
- requests: 32000
131
- neo4j-databasenergy-memory: # a leaf component
132
- config:
133
- sci-m:
134
- total-embodied-emissions: 1216.62 # gCO2eq
135
- resources-reserved: 2
136
- total-resources: 64
137
- inputs:
138
- - timestamp: 2023-07-06T00:00
139
- duration: 1 # this data is using span, but the model expects duration
140
- cpu-util: 0
141
- mem-util: 0
142
- requests: 32000
143
- neo4j-api-cpu: # a leaf component
144
- config:
145
- teads-curve:
146
- physical-processor: Intel-xeon-platinum-8270
147
- thermal-design-power: 205
148
- emem:
149
- mem-alloc: 1.75 # GB
150
- sci-m:
151
- total-embodied-emissions: 1216.620 # gCO2eq
152
- time-reserved: 1 # s per hour
153
- expected-lifespan: 35040 # 3 years in seconds
154
- resources-reserved: 2
155
- total-resources: 64
156
- inputs:
157
- - timestamp: 2023-08-06T00:00
158
- duration: 3600
159
- cpu-util: 14
160
- mem-util: 65
161
- requests: 32000
162
- neo4j-api-mem: # a leaf component
163
- config:
164
- sci-m:
165
- total-embodied-emissions: 1216.620 # gCO2eq
166
- resources-reserved: 1
167
- total-resources: 8
168
- inputs:
169
- - timestamp: 2023-08-06T00:00
170
- duration: 3600
171
- cpu-util: 0
172
- mem-util: 0
173
- requests: 32000
@@ -1,35 +0,0 @@
1
- name: farm-insights
2
- description: https://github.com/Green-Software-Foundation/sci-guide/blob/dev/use-case-submissions/farm-insights-Raspberry-Pi.md
3
- tags:
4
- kind: iot
5
- complexity: simple
6
- category: device
7
- initialize:
8
- models:
9
- - name: sci-o # takes in total e and outputs operational emissions
10
- kind: plugin
11
- model: SciOModel
12
- path: if-models
13
- verbose: false
14
- - name: sci # a model that sums sci-o + sci-m and applies functional unit
15
- kind: plugin
16
- verbose: false
17
- model: SciModel
18
- path: if-models
19
- graph:
20
- children:
21
- rasp-pi:
22
- pipeline:
23
- - sci-o # take e and return e * i (carbon)
24
- - sci # take in carbon from sci-o and embodied carbon (m) and return sum in correct time unit (here /yr)
25
- config:
26
- sci:
27
- functional-unit-duration: 1
28
- functional-unit-time: 'minutes'
29
- functional-unit: requests # factor to convert per time to per f.unit
30
- inputs:
31
- - energy: 3.47222222222e-07 # 0.03 kwh/day in kwh/s
32
- timestamp: 2023-07-06T00:00
33
- grid-carbon-intensity: 713 # g/kwh
34
- embodied-carbon: 1.744038559107052e-03 # they give 55kg/year - here in g/second
35
- duration: 3600
@@ -1,93 +0,0 @@
1
- name: "Green Software Foundation Website"
2
- description: "https://github.com/Green-Software-Foundation/ief/issues/58"
3
- tags:
4
- kind: website
5
- complexity: moderate
6
- category: cloud
7
- initialize:
8
- models:
9
- - name: sci-coefficient # a model that receives a carbon value and normalizes to R.
10
- kind: builtin
11
- path: ''
12
- - name: sci-serve # a model that calculates carbon from server data.
13
- kind: builtin
14
- path: ''
15
- - name: sci # a model that receives a carbon value and normalizes to R.
16
- kind: builtin
17
- path: ''
18
- - name: co2js # a model that receives a carbon value and normalizes to R.
19
- kind: plugin
20
- path: '...'
21
- graph:
22
- build:
23
- netlify:
24
- pipeline:
25
- - sci-coefficient
26
- config:
27
- sci-coefficient:
28
- time: month
29
- factotal-resources: 67 # n builds per month
30
- inputs:
31
- - timestamp: 2023-07-06T00:00
32
- c: 9.92063492063492e-07 # 2.4 g/month in g/s
33
- gh-pages:
34
- pipeline:
35
- - sci-coefficient
36
- config:
37
- sci-coefficient:
38
- time: month
39
- factotal-resources: 67 # n builds per month
40
- inputs:
41
- - timestamp: 2023-07-06T00:00
42
- c: 9.92063492063492e-07 # 2.4 g/month in g/s
43
- serving:
44
- netlify:
45
- pipeline:
46
- - sci-serve
47
- config:
48
- sci-serve:
49
- time: month
50
- inputs:
51
- - timestamp: 2023-07-06T00:00
52
- c: 9.92063492063492e-07 # 2.4 g/month in g/s
53
- views-per-user: 2.1
54
- users: 2000 # unique users in most recent month
55
- gh-pages:
56
- pipeline:
57
- - sci-serve
58
- config:
59
- sci-serve:
60
- time: month
61
- inputs:
62
- - timestamp: 2023-07-06T00:00
63
- c: 9.92063492063492e-07 # 2.4 g/month in g/s
64
- views-per-user: 2.1
65
- users: 0.0008267195767195768 # 2000 unique users in most recent month, converted to users/s
66
- traffic:
67
- pipeline:
68
- - co2js
69
- - sci
70
- config:
71
- co2js:
72
- kind: 1byte # https://developers.thegreenwebfoundation.org/co2js/models/
73
- green-hosting: true
74
- sci:
75
- time: month
76
- inputs:
77
- - timestamp: 2023-07-06T00:00
78
- data: 8.267195767195768e-06 # 20 GB data transferred in most recent month, converted to GB/s
79
- users: 0.0008267195767195768 # 2000 unique users in most recent month, converted to users/s
80
- browser:
81
- pipeline:
82
- - co2js
83
- - sci
84
- config:
85
- co2js:
86
- kind: 1byte # https://developers.thegreenwebfoundation.org/co2js/models/
87
- green-hosting: true
88
- sci:
89
- time: month
90
- inputs:
91
- - timestamp: 2023-07-06T00:00
92
- data: 8.267195767195768e-06 # 20 GB data transferred in most recent month, converted to GB/s
93
- users: 2000 0.0008267195767195768 # 2000 unique users in most recent month, converted to users/s