Alerting: Add QueryError to expr package (#41737)

This commit is contained in:
George Robinson 2021-11-16 13:42:22 +00:00 committed by GitHub
parent 15d6da8e8c
commit 543b1a7e39
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 1 deletions

View File

@ -19,6 +19,15 @@ var (
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.
type baseNode struct {
id int64
@ -240,7 +249,7 @@ func (dn *DSNode) Execute(ctx context.Context, vars mathexp.Vars, s *Service) (m
vals := make([]mathexp.Value, 0)
for refID, qr := range resp.Responses {
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 {

16
pkg/expr/nodes_test.go Normal file
View 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")
}