mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Alerting: Add QueryError to expr package (#41737)
This commit is contained in:
parent
15d6da8e8c
commit
543b1a7e39
@ -19,6 +19,15 @@ var (
|
|||||||
logger = log.New("expr")
|
logger = log.New("expr")
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type QueryError struct {
|
||||||
|
RefID string
|
||||||
|
Err error
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e QueryError) Error() string {
|
||||||
|
return fmt.Sprintf("failed to execute query %s: %s", e.RefID, e.Err)
|
||||||
|
}
|
||||||
|
|
||||||
// baseNode includes common properties used across DPNodes.
|
// baseNode includes common properties used across DPNodes.
|
||||||
type baseNode struct {
|
type baseNode struct {
|
||||||
id int64
|
id int64
|
||||||
@ -240,7 +249,7 @@ func (dn *DSNode) Execute(ctx context.Context, vars mathexp.Vars, s *Service) (m
|
|||||||
vals := make([]mathexp.Value, 0)
|
vals := make([]mathexp.Value, 0)
|
||||||
for refID, qr := range resp.Responses {
|
for refID, qr := range resp.Responses {
|
||||||
if qr.Error != nil {
|
if qr.Error != nil {
|
||||||
return mathexp.Results{}, fmt.Errorf("failed to execute query %v: %w", refID, qr.Error)
|
return mathexp.Results{}, QueryError{RefID: refID, Err: qr.Error}
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(qr.Frames) == 1 {
|
if len(qr.Frames) == 1 {
|
||||||
|
16
pkg/expr/nodes_test.go
Normal file
16
pkg/expr/nodes_test.go
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package expr
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestQueryError(t *testing.T) {
|
||||||
|
e := QueryError{
|
||||||
|
RefID: "A",
|
||||||
|
Err: errors.New("this is an error message"),
|
||||||
|
}
|
||||||
|
assert.EqualError(t, e, "failed to execute query A: this is an error message")
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user