Alerting: Fix notification channel migration and handle case when Alertmanager default configuration is absent (#35086) (#35246)

* Fix dashboard alert and nootifier migration for MySQL

* Fix POSTing Alertmanager configuration if no current configuration exists

in case the default configuration has not be stored yet
or has failed to get stored

* Change CreatedAt field type

(cherry picked from commit 15c55b0115)

Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
This commit is contained in:
Grot (@grafanabot)
2021-06-04 16:41:28 +03:00
committed by GitHub
co-authored by Sofia Papagiannaki
parent da8d9e6854
commit 7eda7945d3
4 changed files with 12 additions and 11 deletions
@@ -2,6 +2,7 @@ package ualert
import (
"encoding/json"
"fmt"
"time"
)
@@ -30,7 +31,7 @@ SELECT id,
name,
message,
frequency,
for,
%s,
state,
settings
FROM
@@ -43,7 +44,7 @@ FROM
// ParsedSettings property of the dash alert.
func (m *migration) slurpDashAlerts() ([]dashAlert, error) {
dashAlerts := []dashAlert{}
err := m.sess.SQL(slurpDashSQL).Find(&dashAlerts)
err := m.sess.SQL(fmt.Sprintf(slurpDashSQL, m.mg.Dialect.Quote("for"))).Find(&dashAlerts)
if err != nil {
return nil, err
@@ -4,7 +4,6 @@ import (
"encoding/json"
"fmt"
"os"
"time"
pb "github.com/prometheus/alertmanager/silence/silencepb"
"xorm.io/xorm"
@@ -288,7 +287,7 @@ type AlertConfiguration struct {
AlertmanagerConfiguration string
ConfigurationVersion string
CreatedAt time.Time `xorm:"created"`
CreatedAt int64 `xorm:"created"`
}
type rmMigration struct {