There are several issues that have been identified in the implementations of the holtWinters* functions. These include:
The 'seasonality' parameter is not properly used in the holtWinters* functions. Currently, this optional parameter is not parsed from the query. Instead, the default value of 1 day is used in calculations that involve seasonality.
The current implementation of the holtWintersAberration function is not correct. In pkg/parser/parser.go in the Metrics() function, holtWintersAberration's start time is adjusted to factor in the bootstrapInterval, so that the fetched data is consistent with the adjusted start time needed when holtWintersAberration calls holtWintersConfidenceBands. However, holtWintersAberration also needs access to the series fetched with the original from/until values, as well as the data fetched with the adjusted start time. This is because this function compares values in the series corresponding to the original from/until values with those produced by the call to holtWintersConfidenceBands, which requires the series corresponding to the adjusted start time. Therefore, requests generated for fetching data should include a request with the original expression and from times, as well as requests with the adjusted from times.(See the holtWintersAberration function documentation and the implementation in Graphite-web for details.)
holtWinters* functions are lacking tests.
Fixing these issues will help with improved feature parity with Graphite-web.
There are several issues that have been identified in the implementations of the holtWinters* functions. These include:
Fixing these issues will help with improved feature parity with Graphite-web.