Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Phased execution without builtin time-sync #930

Merged
merged 100 commits into from
Aug 2, 2024
Merged
Show file tree
Hide file tree
Changes from 65 commits
Commits
Show all changes
100 commits
Select commit Hold shift + click to select a range
64e686d
feat(util): add observe, regroup and compute flags
narekhovhannisyan Jul 17, 2024
43bbe2c
feat(types): add observe, regroup and compute flags to process args
narekhovhannisyan Jul 17, 2024
609d212
feat(types): add observe, regroup and compute flags to compute
narekhovhannisyan Jul 17, 2024
48746cb
feat(lib): init regroup
narekhovhannisyan Jul 17, 2024
f3af54f
feat(lib): tune compute to suport phased execution
narekhovhannisyan Jul 17, 2024
bfd58ea
feat(config): add regroup error
narekhovhannisyan Jul 17, 2024
5cbc710
feat(config): add phased flags to if-run
narekhovhannisyan Jul 17, 2024
f0df9f2
revert(builtins): remove groupby
narekhovhannisyan Jul 17, 2024
7137fc6
revert(builtins): drop groop-by plugin
narekhovhannisyan Jul 17, 2024
7a08226
feat(src): in if-run introduce phased execution flags
narekhovhannisyan Jul 17, 2024
0fcd991
fix(util): in if-env args use args and help directly
narekhovhannisyan Jul 17, 2024
27cc830
refactor(config): remove if-env from config to make access to args ea…
narekhovhannisyan Jul 17, 2024
5a91cde
test(lib): init regroup instead of group-by
narekhovhannisyan Jul 17, 2024
d00e842
test(lib): fix test after introducing phased execution
narekhovhannisyan Jul 17, 2024
3a00c90
feat(manifests): remove newline in cloud metadata devide
narekhovhannisyan Jul 17, 2024
7bb370b
feat(manifests): init scenarios for phased execution
narekhovhannisyan Jul 17, 2024
a8fcb3e
chore(src): fetch changes from main branch
narekhovhannisyan Jul 17, 2024
8ef9edd
fix(manifests): newline at the end of scenario 1
narekhovhannisyan Jul 17, 2024
d2d2c21
chore(manifests): updated some manifests for phased execution
MariamKhalatova Jul 17, 2024
85ae2f5
feat(lib): update compute documentation
narekhovhannisyan Jul 19, 2024
d379036
fix(lib): tune regroup docs, types
narekhovhannisyan Jul 19, 2024
55bbc58
fix(manifests): tune mock observation settings to match time sync
MariamKhalatova Jul 20, 2024
9644583
Merge pull request #915 from Green-Software-Foundation/update-manifes…
narekhovhannisyan Jul 20, 2024
3024381
feat(types): add time sync to compute
narekhovhannisyan Jul 26, 2024
77cc1f2
feat(lib): add time sync
narekhovhannisyan Jul 26, 2024
5c7ef1d
feat(lib): add time sync logic yo initialize
narekhovhannisyan Jul 26, 2024
0cbb144
feat(lib): add time sync logic to compute
narekhovhannisyan Jul 26, 2024
20f7441
feat(util): add time sync message
narekhovhannisyan Jul 26, 2024
d44a184
revert(builtins): drop time sync
narekhovhannisyan Jul 26, 2024
fcdaae0
feat(src): pass time sync config to compute
narekhovhannisyan Jul 26, 2024
efa9983
feat(util): add time sync yo validations
narekhovhannisyan Jul 26, 2024
1a221fa
test(lib): move time sync to lib
narekhovhannisyan Jul 26, 2024
f1f090a
test(lib): update and add cases to initialize
narekhovhannisyan Jul 26, 2024
1ac5038
test(lib): update and add cases to compute
narekhovhannisyan Jul 26, 2024
679e8b2
chore(src): fetch changes from main
narekhovhannisyan Jul 26, 2024
49a42d5
feat(.github): init dispatch workflow
narekhovhannisyan Jul 26, 2024
e08c326
chore(src): fetch updates from main
narekhovhannisyan Jul 29, 2024
d7a8853
chore(src): fetch updates from origin
narekhovhannisyan Jul 29, 2024
e53e9fe
chore(src): fetch changes from distinct execution
narekhovhannisyan Jul 30, 2024
de4866d
feat(src): drop time sync from plugins after exec
narekhovhannisyan Jul 31, 2024
fbeff34
revert(types): drop isGroupBy interface
narekhovhannisyan Jul 31, 2024
b44e95f
fix(types): use plugin options in explain
narekhovhannisyan Jul 31, 2024
45ce81f
fix(lib): tune types in initialize
narekhovhannisyan Jul 31, 2024
2ab3e15
fix(util): make plugins optional
narekhovhannisyan Jul 31, 2024
7fc1882
fix(lib): tune types in explain
narekhovhannisyan Jul 31, 2024
8450286
fix(lib): fallback pipeline to empty object if missing, fix regroup p…
narekhovhannisyan Jul 31, 2024
593c7af
feat(builtins): update time sync success manifest
narekhovhannisyan Jul 31, 2024
485ca1a
Merge pull request #921 from Green-Software-Foundation/time-sync
narekhovhannisyan Aug 1, 2024
62e20ba
feat(manifests): convert to coefficient samples to phased exec
MariamKhalatova Aug 1, 2024
cf920fa
feat(manifests): convert to cloud metadata samples to phased exec
MariamKhalatova Aug 1, 2024
0b39b2e
feat(manifests): convert to region metadata samples to phased exec
MariamKhalatova Aug 1, 2024
623a09b
feat(manifests): convert tdp finder samples to phased exec
MariamKhalatova Aug 1, 2024
bbfb0a9
feat(manifests): convert divide samples to phased exec
MariamKhalatova Aug 1, 2024
f76459c
feat(manifests): drop node config from divide sample
MariamKhalatova Aug 1, 2024
2a4cab3
feat(manifests): convert exponent samples to phased exec
MariamKhalatova Aug 1, 2024
c7d2b8b
feat(manifests): convert groupby samples to phased exec
MariamKhalatova Aug 1, 2024
3af0dcf
feat(manifests): move regroup to features
MariamKhalatova Aug 1, 2024
91b11d2
feat(manifests): convert interpolation samples to phased exec
MariamKhalatova Aug 1, 2024
dbe94cb
feat(manifests): convert mock observation samples to phased exec
MariamKhalatova Aug 1, 2024
d72228c
feat(manifests): convert multiply samples to phased exec
MariamKhalatova Aug 1, 2024
8585f55
feat(manifests): convert regex samples to phased exec
MariamKhalatova Aug 1, 2024
5581dd1
feat(manifests): convert sci samples to phased exec
MariamKhalatova Aug 1, 2024
fc7fe2f
feat(manifests): convert sci embodied samples to phased exec
MariamKhalatova Aug 1, 2024
1ee49b7
feat(manifests): convert shell embodied samples to phased exec
MariamKhalatova Aug 1, 2024
779c0dd
feat(manifests): convert sum samples to phased exec
MariamKhalatova Aug 1, 2024
4d73983
feat(manifests): convert subtract samples to phased exec
MariamKhalatova Aug 1, 2024
a2efb70
fix(util): make time sync non nullable
narekhovhannisyan Aug 1, 2024
e9bb9ab
feat(manifests): convert time sync samples to phased exec
MariamKhalatova Aug 1, 2024
30b6241
chore(src): fetch latest changes from main
MariamKhalatova Aug 1, 2024
81355e7
feat(manifests): convert pipeline samples to phased exec
MariamKhalatova Aug 1, 2024
962ef45
chore(src): fetch changes from distinct execution
MariamKhalatova Aug 1, 2024
6e6bb63
feat(util): add parameter metadata to time sync
narekhovhannisyan Aug 1, 2024
08ed518
feat(lib): add parameter metadata initialize/time sync
narekhovhannisyan Aug 1, 2024
fa07847
chore(src): fetch changes from distinc execution
MariamKhalatova Aug 1, 2024
f6f1e2f
feat(src): move store aggregation before initializing plugin
manushak Aug 2, 2024
c2dc2e1
feat(lib): store aggregation from plugins
manushak Aug 2, 2024
cf115ed
fix(builtins): add missing `aggregation-method` into sci-embodied
manushak Aug 2, 2024
067c267
feat(types): removed `GroupByPlugin` type
manushak Aug 2, 2024
8717017
revert(builtins): bring time sync back
narekhovhannisyan Aug 2, 2024
201237e
revert(lib): changes on initialize for time sync
narekhovhannisyan Aug 2, 2024
990ea8c
revert(lib): changes on compute for time sync
narekhovhannisyan Aug 2, 2024
43f3a16
revert(config): drop time sync init string
narekhovhannisyan Aug 2, 2024
66206de
revert(builtins): re-export time sync
narekhovhannisyan Aug 2, 2024
414b701
test(lib): revert time sync changes
narekhovhannisyan Aug 2, 2024
c20c6dc
chore(src): fetch changes from 'move-time-sync-back'
MariamKhalatova Aug 2, 2024
0647800
feat(manifests): convert pipelines to phased exec
MariamKhalatova Aug 2, 2024
5fcfe93
feat(manifests): convert features to phased exec
MariamKhalatova Aug 2, 2024
0b4574a
feat(manifests): move time sync back to builtins
MariamKhalatova Aug 2, 2024
faf2ecf
feat(manifests): init if diff outputs as a sample
MariamKhalatova Aug 2, 2024
753a361
feat(manifests): convert bugs to phased exec
MariamKhalatova Aug 2, 2024
d9c4c94
feat(manifests): convert builtins to phased exec
MariamKhalatova Aug 2, 2024
7cbcf86
feat(manifests): convert mockobs success to phased exec
MariamKhalatova Aug 2, 2024
bec7f95
Update manifests/examples/builtins/time-sync/success.yml
narekhovhannisyan Aug 2, 2024
78b6bab
revert(types): drop type sync types from compute
narekhovhannisyan Aug 2, 2024
ed0eb9c
revert(util): drop type sync from manifest validation
narekhovhannisyan Aug 2, 2024
ca7ccc6
revert(src): drop time sync check from if-run index
narekhovhannisyan Aug 2, 2024
99b5dc4
chore(src): fetch changes from main
narekhovhannisyan Aug 2, 2024
c1214b2
chore(src): fetch changes from move time sync back
narekhovhannisyan Aug 2, 2024
a48a395
chore(src): fetch latest changes from remote
narekhovhannisyan Aug 2, 2024
0fa4aa7
Merge pull request #929 from Green-Software-Foundation/distinct-manif…
narekhovhannisyan Aug 2, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions .github/workflows/dispatch-integration-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: Run if-check on requested branch

on:
workflow_dispatch:

jobs:
run:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 18
cache: 'npm'

- name: Install dependencies
run: npm install

- name: Run integration tests
run: npm run if-check -- -d manifests/outputs
19 changes: 6 additions & 13 deletions manifests/examples/builtins/time-sync/success.yml
Original file line number Diff line number Diff line change
@@ -1,23 +1,16 @@
name: time-sync
description: successful path
tags:
'time-sync':
start-time: '2023-12-12T00:00:00.000Z'
end-time: '2023-12-12T00:01:00.000Z'
interval: 5
allow-padding: true
initialize:
output:
- yaml
plugins:
'time-sync':
method: TimeSync
path: "builtin"
global-config:
start-time: '2023-12-12T00:00:00.000Z'
end-time: '2023-12-12T00:01:00.000Z'
interval: 5
allow-padding: true
plugins: {}
tree:
children:
child:
pipeline:
- time-sync
config:
inputs:
- timestamp: '2023-12-12T00:00:00.000Z'
Expand Down
92 changes: 48 additions & 44 deletions manifests/examples/pipelines/nesting.yml
Original file line number Diff line number Diff line change
Expand Up @@ -185,17 +185,18 @@ tree:
vcpus-allocated: 1
vcpus-total: 8
pipeline:
- interpolate
- cpu-factor-to-wattage
- wattage-times-duration
- wattage-to-energy-kwh
- calculate-vcpu-ratio
- correct-cpu-energy-for-vcpu-ratio
- sci-embodied
- operational-carbon
- sum-carbon
- time-sync
- sci
compute:
- interpolate
- cpu-factor-to-wattage
- wattage-times-duration
- wattage-to-energy-kwh
- calculate-vcpu-ratio
- correct-cpu-energy-for-vcpu-ratio
- sci-embodied
- operational-carbon
- sum-carbon
- time-sync
- sci
inputs:
- timestamp: "2023-12-12T00:00:00.000Z"
cloud/instance-type: A1
Expand Down Expand Up @@ -235,17 +236,18 @@ tree:
vcpus-allocated: 1
vcpus-total: 8
pipeline:
- interpolate
- cpu-factor-to-wattage
- wattage-times-duration
- wattage-to-energy-kwh
- calculate-vcpu-ratio
- correct-cpu-energy-for-vcpu-ratio
- sci-embodied
- operational-carbon
- sum-carbon
- time-sync
- sci
compute:
- interpolate
- cpu-factor-to-wattage
- wattage-times-duration
- wattage-to-energy-kwh
- calculate-vcpu-ratio
- correct-cpu-energy-for-vcpu-ratio
- sci-embodied
- operational-carbon
- sum-carbon
- time-sync
- sci
inputs:
- timestamp: "2023-12-12T00:00:00.000Z"
cloud/instance-type: A1
Expand Down Expand Up @@ -287,17 +289,18 @@ tree:
vcpus-allocated: 1
vcpus-total: 8
pipeline:
- interpolate
- cpu-factor-to-wattage
- wattage-times-duration
- wattage-to-energy-kwh
- calculate-vcpu-ratio
- correct-cpu-energy-for-vcpu-ratio
- sci-embodied
- operational-carbon
- sum-carbon
- time-sync
- sci
compute:
- interpolate
- cpu-factor-to-wattage
- wattage-times-duration
- wattage-to-energy-kwh
- calculate-vcpu-ratio
- correct-cpu-energy-for-vcpu-ratio
- sci-embodied
- operational-carbon
- sum-carbon
- time-sync
- sci
inputs:
- timestamp: "2023-12-12T00:00:00.000Z"
cloud/instance-type: A1
Expand Down Expand Up @@ -337,17 +340,18 @@ tree:
vcpus-allocated: 1
vcpus-total: 8
pipeline:
- interpolate
- cpu-factor-to-wattage
- wattage-times-duration
- wattage-to-energy-kwh
- calculate-vcpu-ratio
- correct-cpu-energy-for-vcpu-ratio
- sci-embodied
- operational-carbon
- sum-carbon
- time-sync
- sci
compute:
- interpolate
- cpu-factor-to-wattage
- wattage-times-duration
- wattage-to-energy-kwh
- calculate-vcpu-ratio
- correct-cpu-energy-for-vcpu-ratio
- sci-embodied
- operational-carbon
- sum-carbon
- time-sync
- sci
inputs:
- timestamp: "2023-12-12T00:00:00.000Z"
cloud/instance-type: A1
Expand Down
147 changes: 37 additions & 110 deletions manifests/examples/pipelines/pipeline-with-mocks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ initialize:
method: MockObservations
path: "builtin"
global-config:
timestamp-from: 2023-12-12T00:00
timestamp-to: 2023-12-12T00:10
duration: 60
timestamp-from: "2023-12-12T00:00:00.000Z"
timestamp-to: "2023-12-12T00:00:13.000Z"
duration: 30
components:
- cloud/instance-type: A1
generators:
Expand Down Expand Up @@ -238,52 +238,27 @@ initialize:
end-time: "2023-12-12T00:01:00.000Z"
interval: 5
allow-padding: true
parameter-metadata:
inputs:
time-reserved:
description: time reserved for a component
unit: seconds
aggregation-method: avg
outputs:
synced-time:
description: Synced time
unit: none
aggregation-method: none
group-by:
path: builtin
method: GroupBy
parameter-metadata:
inputs:
group:
description: Group by fields
unit: none
aggregation-method: none
outputs:
grouped-data:
description: Grouped data
unit: none
aggregation-method: none
tree:
children:
child-1:
pipeline:
- mock-observations
- interpolate
- cpu-factor-to-wattage
- wattage-times-duration
- wattage-to-energy-kwh
- calculate-vcpu-ratio
- correct-cpu-energy-for-vcpu-ratio
- sci-embodied
- operational-carbon
- sum-carbon
- time-sync
- sci
config:
group-by:
group:
- cloud/region
- instance-type
observe:
- mock-observations
regroup:
- cloud/region
- cloud/instance-type
compute:
- interpolate
- cpu-factor-to-wattage
- wattage-times-duration
- wattage-to-energy-kwh
- calculate-vcpu-ratio
- correct-cpu-energy-for-vcpu-ratio
- sci-embodied
- operational-carbon
- sum-carbon
- time-sync
- sci
defaults:
cpu/thermal-design-power: 100
grid/carbon-intensity: 800
Expand All @@ -293,49 +268,25 @@ tree:
vcpus-total: 8
vcpus-allocated: 1
inputs:
- timestamp: "2023-12-12T00:00:00.000Z"
cloud/instance-type: A1
cloud/region: uk-west
duration: 1
cpu/utilization: 10
requests: 30
- timestamp: "2023-12-12T00:00:01.000Z"
duration: 5
cpu/utilization: 20
cloud/instance-type: A1
cloud/region: uk-west
requests: 40
- timestamp: "2023-12-12T00:00:06.000Z"
duration: 7
cpu/utilization: 15
cloud/instance-type: A1
cloud/region: uk-west
requests: 30
- timestamp: "2023-12-12T00:00:13.000Z"
duration: 30
cloud/instance-type: A1
cloud/region: uk-west
cpu/utilization: 15
requests: 50
child-2:
pipeline:
- mock-observations
- interpolate
- cpu-factor-to-wattage
- wattage-times-duration
- wattage-to-energy-kwh
- calculate-vcpu-ratio
- correct-cpu-energy-for-vcpu-ratio
- sci-embodied
- operational-carbon
- sum-carbon
- time-sync
- sci
config:
group-by:
group:
- cloud/region
- cloud/instance-type
observe:
- mock-observations
regroup:
- cloud/region
- cloud/instance-type
compute:
- interpolate
- cpu-factor-to-wattage
- wattage-times-duration
- wattage-to-energy-kwh
- calculate-vcpu-ratio
- correct-cpu-energy-for-vcpu-ratio
- sci-embodied
- operational-carbon
- sum-carbon
- time-sync
- sci
defaults:
cpu/thermal-design-power: 100
grid/carbon-intensity: 800
Expand All @@ -345,27 +296,3 @@ tree:
vcpus-total: 8
vcpus-allocated: 1
inputs:
- timestamp: "2023-12-12T00:00:00.000Z"
duration: 1
cpu/utilization: 30
cloud/instance-type: A1
cloud/region: uk-west
requests: 30
- timestamp: "2023-12-12T00:00:01.000Z"
duration: 5
cpu/utilization: 28
cloud/instance-type: A1
cloud/region: uk-west
requests: 40
- timestamp: "2023-12-12T00:00:06.000Z"
duration: 7
cpu/utilization: 40
cloud/instance-type: A1
cloud/region: uk-west
requests: 50
- timestamp: "2023-12-12T00:00:13.000Z"
duration: 30
cpu/utilization: 33
cloud/instance-type: A1
cloud/region: uk-west
requests: 60
34 changes: 34 additions & 0 deletions manifests/examples/pipelines/scenario-1.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: demo
description: demo for observe feat
tags:
initialize:
plugins:
mock-observations:
kind: plugin
method: MockObservations
path: "builtin"
global-config:
timestamp-from: 2023-07-06T00:00
timestamp-to: 2023-07-06T00:01
duration: 60
components:
- cloud/instance-type: A1
- cloud/instance-type: B1
generators:
common:
region: uk-west
common-key: common-val
randint:
cpu/utilization:
min: 1
max: 99
memory/utilization:
min: 1
max: 99
tree:
children:
child:
pipeline:
observe:
- mock-observations
inputs: null
Loading