Expressions: use datasource model from the query (#41376)
* refactor datasource loading * refactor datasource loading * pass uid * use dscache in alerting to get DS * remove expr/translate pacakge * remove dup injection entry * fix DS type on metrics endpoint, remove SQL DS lookup inside SSE * update test and adapter * comment fix * Make eval run as admin when getting datasource info Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com> * fmt and comment * remove unncessary/redundant code Co-authored-by: Kyle Brandt <kyle@grafana.com> Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com> Co-authored-by: Santiago <santiagohernandez.1997@gmail.com>
This commit is contained in:
+10
-24
@@ -126,6 +126,10 @@ func (s *Service) buildGraph(req *Request) (*simple.DirectedGraph, error) {
|
||||
dp := simple.NewDirectedGraph()
|
||||
|
||||
for _, query := range req.Queries {
|
||||
if query.DataSource == nil || query.DataSource.Uid == "" {
|
||||
return nil, fmt.Errorf("missing datasource uid in query with refId %v", query.RefID)
|
||||
}
|
||||
|
||||
rawQueryProp := make(map[string]interface{})
|
||||
queryBytes, err := query.JSON.MarshalJSON()
|
||||
|
||||
@@ -139,34 +143,16 @@ func (s *Service) buildGraph(req *Request) (*simple.DirectedGraph, error) {
|
||||
}
|
||||
|
||||
rn := &rawNode{
|
||||
Query: rawQueryProp,
|
||||
RefID: query.RefID,
|
||||
TimeRange: query.TimeRange,
|
||||
QueryType: query.QueryType,
|
||||
DatasourceUID: query.GetDatasourceUID(),
|
||||
}
|
||||
|
||||
numericDSID := float64(0) // legacy
|
||||
if rn.DatasourceUID == "" {
|
||||
if rv, ok := rn.Query["datasourceId"]; ok {
|
||||
if sv, ok := rv.(float64); ok {
|
||||
if sv == DatasourceID {
|
||||
rn.DatasourceUID = DatasourceUID
|
||||
}
|
||||
if sv > 0 {
|
||||
numericDSID = sv
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if rn.DatasourceUID == "" && numericDSID == 0 {
|
||||
return nil, fmt.Errorf("missing datasource uid in query with refId %v", query.RefID)
|
||||
Query: rawQueryProp,
|
||||
RefID: query.RefID,
|
||||
TimeRange: query.TimeRange,
|
||||
QueryType: query.QueryType,
|
||||
DataSource: query.DataSource,
|
||||
}
|
||||
|
||||
var node Node
|
||||
|
||||
if rn.IsExpressionQuery() {
|
||||
if IsDataSource(rn.DataSource.Uid) {
|
||||
node, err = buildCMDNode(dp, rn)
|
||||
} else {
|
||||
node, err = s.buildDSNode(dp, rn, req)
|
||||
|
||||
Reference in New Issue
Block a user