mirror of
https://github.com/grafana/grafana.git
synced 2025-07-30 12:42:17 +08:00

* parse via sse I need to figure out how to handle the pipeline.execute with our own client. I think this is important for MT reasons, just like using our own cache (via legacy) is important. parsing is done though! * WIP nonsense * horrible code but i think it works * Add support for sql expressions config settings * Cleanup: - remove spew from nodes.go - uncomment out plugin context and use in single tenant flow - make code more readable and add comments * Cleanup: - create separate file for mt ds client builder - ensure error handling is the same for both expressions and regular queries - other cleanup * not working but good thoughts * WIP, vector not working for non sse * super hacky but i think vectors work now * delete delete delete * Comments for future ref * break out query handling and start test * add prom debugger * clean up: remove comments and commented out bits * fix query_test * add prom debugger * create table-driven tests with testsdata files * Fix test * Add test * go mod?? * idk * Remove comment * go enterprise issue maybe * Fix codeowners * Delete * Remove test data * Clean up * logger * Remove go changes hopefully * idk go man * sad * idk i ran go mod tidy and this is what it wants * Fix readme, with much help from adam * some linting and testing errors * lint * fix lint * fix lint register.go * another lint * address lint in test * fix dead code and linters for query_test * Go mod? * Struggling with go mod * Fix test * Fix another test * Revert headers change * Its difficult to test this in OSS as it depends on functionality defined in enterprise, let's bring these tests back in some form in enterprise * Fix codeowners --------- Co-authored-by: Adam Simpson <adam@adamsimpson.net>
62 lines
1.1 KiB
Go
62 lines
1.1 KiB
Go
package query
|
|
|
|
import (
|
|
"errors"
|
|
|
|
"github.com/grafana/grafana/pkg/apimachinery/errutil"
|
|
)
|
|
|
|
var QueryError = errutil.BadRequest("query.error").MustTemplate(
|
|
"failed to execute query [{{ .Public.refId }}]: {{ .Error }}",
|
|
errutil.WithPublic(
|
|
"failed to execute query [{{ .Public.refId }}]: {{ .Public.error }}",
|
|
))
|
|
|
|
func MakeQueryError(refID, err error) error {
|
|
var pErr error
|
|
var utilErr errutil.Error
|
|
// See if this is grafana error, if so, grab public message
|
|
if errors.As(err, &utilErr) {
|
|
pErr = utilErr.Public()
|
|
} else {
|
|
pErr = err
|
|
}
|
|
|
|
data := errutil.TemplateData{
|
|
Public: map[string]any{
|
|
"refId": refID,
|
|
"error": pErr.Error(),
|
|
},
|
|
Error: err,
|
|
}
|
|
|
|
return QueryError.Build(data)
|
|
}
|
|
|
|
func MakePublicQueryError(refID, err string) error {
|
|
data := errutil.TemplateData{
|
|
Public: map[string]any{
|
|
"refId": refID,
|
|
"error": err,
|
|
},
|
|
}
|
|
return QueryError.Build(data)
|
|
}
|
|
|
|
type ErrorWithRefID struct {
|
|
err error
|
|
refId string
|
|
}
|
|
|
|
func (ewr ErrorWithRefID) Error() string {
|
|
return ewr.err.Error()
|
|
}
|
|
|
|
func NewErrorWithRefID(refId string, err error) error {
|
|
ewr := ErrorWithRefID{
|
|
err: err,
|
|
refId: refId,
|
|
}
|
|
return ewr
|
|
}
|