mirror of
https://github.com/grafana/grafana.git
synced 2026-08-13 14:45:02 -05:00
Alerting: Improve Prometheus Alert Rule error message (#29390)
* provide better ctx for prom err * rework * Update pkg/tsdb/prometheus/prometheus.go Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com> * Update pkg/tsdb/prometheus/prometheus.go Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com> * call func Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
This commit is contained in:
co-authored by
Arve Knudsen
parent
06e48cb869
commit
d10a8b2761
@@ -2,6 +2,7 @@ package prometheus
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"regexp"
|
||||
"strings"
|
||||
@@ -15,7 +16,7 @@ import (
|
||||
"github.com/grafana/grafana/pkg/infra/log"
|
||||
"github.com/grafana/grafana/pkg/models"
|
||||
"github.com/grafana/grafana/pkg/tsdb"
|
||||
api "github.com/prometheus/client_golang/api"
|
||||
"github.com/prometheus/client_golang/api"
|
||||
apiv1 "github.com/prometheus/client_golang/api/prometheus/v1"
|
||||
"github.com/prometheus/common/model"
|
||||
)
|
||||
@@ -216,3 +217,18 @@ func parseResponse(value model.Value, query *PrometheusQuery) (*tsdb.QueryResult
|
||||
|
||||
return queryRes, nil
|
||||
}
|
||||
|
||||
func IsAPIError(err error) bool {
|
||||
// Have to use errors.As to compare Prometheus errors, since errors.Is won't work due to Prometheus
|
||||
// errors being pointers and errors.Is ends up comparing them by pointer address
|
||||
var e *apiv1.Error
|
||||
return errors.As(err, &e)
|
||||
}
|
||||
|
||||
func ConvertAPIError(err error) error {
|
||||
var e *apiv1.Error
|
||||
if errors.As(err, &e) {
|
||||
return fmt.Errorf("%s: %s", e.Msg, e.Detail)
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user