1
$\begingroup$

I am new to ML and am trying to build a model to predict timeouts for a website.

The website is being monitored once a minute and the data consists of a timestamp and the response time in seconds. E.g.: 1650539220000 6.234041.In this particular case I do not have metrics from the server itself, just everything externally available.

When collecting the metric a timeout for the http request is set to 15 seconds. Meaning that every time the server does not respond in time I have no data and I want to predict when the next time out will happen. Currently, I have about two weeks' worth of data and want to predict the next likely timeouts/anomalies within some hours.

Since missing values are a huge issue with ML models I tried to handle the timeouts by setting the value to

  • 20 to have large "peaks" which does not work too well with some models
  • integer-encode the data in 0 (no timeout) and 1 (timeout)

To have more features to work with I also tried splitting the timestamp into month, day, hour, minute.

So far I have tried multiple algorithms which did not perform too great

  • Prophet
  • LGBMRegressor (best so far)
  • AutoReg
  • ARIMA

I did not tune the algorithms, as I am quite new to ML.

What method, model, or approach could I try to make more accurate predictions?

$\endgroup$
6
  • 1
    $\begingroup$ What rationale do you have to expect the timestamp to be a predictor of timeouts? Typically timeouts are a function of the request type and overall server load. You don't appear to be using either of those as predictors, so your best result might be to roughly follow the server load on a daily/weekly basis, due to constructing the day and hour features. $\endgroup$ Apr 29, 2022 at 23:03
  • $\begingroup$ While that is true there are patterns in the timeouts. LGBM has found one with the timeout (no data) being set to 20 and the timestamp split into multiple features. At least it predicts a response time of gt 10s. Could I improve my approch or try something else to make more accurate predictions? $\endgroup$
    – gwolter
    Apr 30, 2022 at 18:39
  • $\begingroup$ Can you define what you mean by "timeout"? Do you mean how long it takes for the server to return a response after a request? Also, do you just have "timestamps" as inputs or do you have something else? $\endgroup$
    – nbro
    May 2, 2022 at 14:37
  • $\begingroup$ By time out I mean the cases where the server did not respond within 15 seconds to the request. I currently collect the timestamp and the response time. In this particular case I do not have metrics from the server itself, just everything externally available. Is there more I could collect or a better way to handle the time outs in the dataset? $\endgroup$
    – gwolter
    May 2, 2022 at 21:30
  • 1
    $\begingroup$ @nbro I edited the post to define timeout more clearly $\endgroup$
    – gwolter
    May 3, 2022 at 13:47

1 Answer 1

0
$\begingroup$

For the time series i am using mostly deep learning(like LSTM).If you decide to try this be carefull ,because this type of ML have issues with overfitting. example of LSTM https://machinelearningmastery.com/how-to-develop-lstm-models-for-time-series-forecasting/ This approach also sound promissing: https://www.analyticsvidhya.com/blog/2021/12/time-series-forecasting-with-extreme-learning-machines/

$\endgroup$
1
  • $\begingroup$ Thank you very much for the answer! I will have a look at LSTM. Are there other deep learning models you are using? Some names would be great so I can dive down a bit deeper. $\endgroup$
    – gwolter
    May 2, 2022 at 10:57

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .