func()

in pkg/plugin/plugin.go [221:251]


func (d *CloudTraceDatasource) query(ctx context.Context, pCtx backend.PluginContext, query backend.DataQuery) backend.DataResponse {
	response := backend.DataResponse{}

	var q queryModel
	response.Error = json.Unmarshal(query.JSON, &q)
	if response.Error != nil {
		return response
	}

	if q.QueryType == "traceID" && strings.TrimSpace(q.TraceID) != "" {
		f, err := d.getTraceSpanFrame(ctx, q)
		if err != nil {
			response.Error = fmt.Errorf("trace query: %w", err)
			return response
		}

		response.Frames = append(response.Frames, f)
	}

	if q.QueryType == "" {
		f, err := d.getTracesTableFrame(ctx, q, query)
		if err != nil {
			response.Error = fmt.Errorf("filter query: %w", err)
			return response
		}

		response.Frames = append(response.Frames, f)
	}

	return response
}