gocrane / crane

Crane is a FinOps Platform for Cloud Resource Analytics and Economics in Kubernetes clusters. The goal is not only to help users to manage cloud cost easier but also ensure the quality of applications.
https://gocrane.io
Apache License 2.0
1.87k stars 380 forks source link

extend predictive algorithms/models for EHPA #397

Open ghost opened 2 years ago

ghost commented 2 years ago

Describe the feature

Currently, EHPA has only supported the DSP kind of algorithms, it would be better if we could support much broader types of predictive models.

Motivation

As feature request #374 suggested, EHPA might would support prediction based on external metrics in addition to the current CPU; along with more metrics being integrated in the future, naturally; more predictive models are needed since more time-series patterns are coming, which could not be captured in the best way by only one algorithm family (e.g., DSP);

On the other way, we can compare the performance of different models, to find the best offer no the same time series data;

As the first suggestion, I propose to add the Time2Graph model into EHPA; Time2Graph has been demonstrated on considerable datasets in time-series prediction and shown a significant advantage. For details: https://arxiv.org/abs/1911.04143

ghost commented 2 years ago

I can take it home if passed

xieydd commented 2 years ago

Time series prediction algorithm has long history. Up to now, there have been many research results in this field, including the current use of deep learning algorithms such as transformer for time series prediction. Our proposed dsp mainly considers interpretability in production environment. But we are also actively exploring some of the latest research on time series forecasting. If you are interested, we can discuss it together. If possible, can you send an email to me? : ) @ClouderPing

ghost commented 2 years ago

Yes, time-series prediction does have long history; the question is, what kind of predictive algorithms are suitable or effective for cloud native workload pattern learning? there are considerable interpretable algorithms and DSP is one of them; EHPA should support at least several types of models; but more, it needs a light-weight mechanism for comparing the performance of multiple models when users are targeting on the same workload data; we can keep the part of the predictive algorithms as light as possible but meanwhile support for model selection to some extent.

Actually, making those algorithms as a plug-in might be the best choice. Crane can provide only the well-defined interfaces and let users implement the specific models in interest themselves;

xieydd commented 2 years ago

@ClouderPing Agree with you on the following points:

  1. Provides a lightweight way to experiment with new algorithms.
  2. Possibility to provide optional algorithm.

We are currently working on two jobs to make the above possible. First as you can see we are doing recommendation framework, it will be easily implement your own algorithm in recommed part.The second is that we will open source the crane algorithm module, which is implemented in python, and comes with algorithm evaluation process and algorithm evaluation data. I hope we can continue to iterate the algorithm together.

If it is convenient, you can give me your contact information by sending an email to xieydd@gmail.com. We can discuss the algorithm in detail.

ghost commented 2 years ago

Have sent email to you. THANKS