2021-03-30 11:37:56 -05:00
|
|
|
package schedule
|
|
|
|
|
|
|
|
import (
|
2021-04-02 10:11:33 -05:00
|
|
|
"github.com/go-openapi/strfmt"
|
2021-04-19 01:58:44 -05:00
|
|
|
apimodels "github.com/grafana/alerting-api/pkg/api"
|
|
|
|
"github.com/prometheus/alertmanager/api/v2/models"
|
|
|
|
|
2021-04-02 10:11:33 -05:00
|
|
|
"github.com/grafana/grafana/pkg/services/ngalert/eval"
|
2021-03-30 11:37:56 -05:00
|
|
|
"github.com/grafana/grafana/pkg/services/ngalert/state"
|
|
|
|
)
|
|
|
|
|
2021-04-19 01:58:44 -05:00
|
|
|
func FromAlertStateToPostableAlerts(firingStates []state.AlertState) apimodels.PostableAlerts {
|
|
|
|
alerts := apimodels.PostableAlerts{PostableAlerts: make([]models.PostableAlert, 0, len(firingStates))}
|
|
|
|
|
2021-04-02 10:11:33 -05:00
|
|
|
for _, alertState := range firingStates {
|
|
|
|
if alertState.State == eval.Alerting {
|
2021-04-19 01:58:44 -05:00
|
|
|
alerts.PostableAlerts = append(alerts.PostableAlerts, models.PostableAlert{
|
|
|
|
Annotations: alertState.Annotations,
|
|
|
|
StartsAt: strfmt.DateTime(alertState.StartsAt),
|
|
|
|
EndsAt: strfmt.DateTime(alertState.EndsAt),
|
|
|
|
Alert: models.Alert{
|
|
|
|
Labels: models.LabelSet(alertState.Labels),
|
2021-03-30 11:37:56 -05:00
|
|
|
},
|
2021-04-02 10:11:33 -05:00
|
|
|
})
|
|
|
|
}
|
2021-03-30 11:37:56 -05:00
|
|
|
}
|
|
|
|
return alerts
|
|
|
|
}
|