Kepler Model Server API
Getting Powers from Estimator
module: estimator (src/estimate/estimator.py)
/tmp/estimator.socket
Parameters of PowerRequest
key | value | description |
---|---|---|
metrics | list of string | list of available input features (measured metrics) |
output_type | either of the following values: AbsPower (for node-level power model), DynPower (for container-level power model) | the requested model type |
trainer_name (optional) | string | filter model with trainer name |
filter (optional) | string | expression in the form attribute1:threshold1; attribute2:threshold2 |
Getting Power Models from Model Server
module: server (src/server/model_server.py)
:8100/model
POST
Parameters of ModelRequest
key | value | description |
---|---|---|
metrics | list of string | list of available input features (measured metrics) |
output_type | either of the following values: AbsPower (for node-level power model), DynPower (for container-level power model) | the requested model type |
weight | boolean | return model weights in json format if true. Otherwise, return model in zip file format. |
trainer_name (optional) | string | filter model with trainer name. |
node_type (optional) | string | filter model with node type. |
filter (optional) | string | expression in the form attribute1:threshold1; attribute2:threshold2. |
Offline Trainer
module: offline trainer (src/train/offline_trainer.py)
:8102/train
POST
Parameters of TrainRequest
key | value | description |
---|---|---|
name | string | pipeline/model name |
energy_source | valid key in PowerSourceMap | target energy source to train for |
trainer | TrainAttribute | attributes for training |
prome_response | json | prom response with workload for power model training |
TrainAttribute
key | value | description |
---|---|---|
abs_trainers | list of available trainer class names | trainer classes in the pipeline to train for absolute power |
dyn_trainers | list of available trainer class names | trainer classes in the pipeline to train for dynamic power |
isolator | valid isolator class name | isolator class of the pipeline to isolate the target data to train for dynamic power |
isolator_args | dict | mapping between isolator-specific argument name and value |
Posting Model Weights [WIP]
module: server (src/server/model_server.py)
/metrics
GET
Online Trainer [WIP]
module: online trainer (src/train/online_trainer.py) running as a sidecar to server
periodically query prometheus metric server on SAMPLING INTERVAL
Profiler [WIP]
module: profiler (src/profile/profiler.py)