mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-12-15 08:23:34 +01:00
vmalert: check if remoteRead object was initied before calling Restore (#473)
The check for non-nil remoteRead was mistakenly dropped during refactoring which caused panics when `vmalert` wasn't configured with `remoteRead` flag.
This commit is contained in:
parent
1523890742
commit
e208e76222
@ -57,7 +57,7 @@ func (m *manager) close() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (m *manager) startGroup(ctx context.Context, group Group, restore bool) {
|
func (m *manager) startGroup(ctx context.Context, group Group, restore bool) {
|
||||||
if restore {
|
if restore && m.rr != nil {
|
||||||
err := group.Restore(ctx, m.rr, *remoteReadLookBack)
|
err := group.Restore(ctx, m.rr, *remoteReadLookBack)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Errorf("error while restoring state for group %q: %s", group.Name, err)
|
logger.Errorf("error while restoring state for group %q: %s", group.Name, err)
|
||||||
|
@ -295,6 +295,10 @@ func newTimeSeries(value float64, labels map[string]string, timestamp time.Time)
|
|||||||
// Restore restores only Start field. Field State will be always Pending and supposed
|
// Restore restores only Start field. Field State will be always Pending and supposed
|
||||||
// to be updated on next Eval, as well as Value field.
|
// to be updated on next Eval, as well as Value field.
|
||||||
func (r *Rule) Restore(ctx context.Context, q datasource.Querier, lookback time.Duration) error {
|
func (r *Rule) Restore(ctx context.Context, q datasource.Querier, lookback time.Duration) error {
|
||||||
|
if q == nil {
|
||||||
|
return fmt.Errorf("querier is nil")
|
||||||
|
}
|
||||||
|
|
||||||
// Get the last datapoint in range via MetricsQL `last_over_time`.
|
// Get the last datapoint in range via MetricsQL `last_over_time`.
|
||||||
// We don't use plain PromQL since Prometheus doesn't support
|
// We don't use plain PromQL since Prometheus doesn't support
|
||||||
// remote write protocol which is used for state persistence in vmalert.
|
// remote write protocol which is used for state persistence in vmalert.
|
||||||
|
Loading…
Reference in New Issue
Block a user