mirror of
https://github.com/grafana/grafana.git
synced 2025-08-01 01:11:49 +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>
39 lines
1.3 KiB
Go
39 lines
1.3 KiB
Go
package clientapi
|
|
|
|
import (
|
|
"context"
|
|
"net/http"
|
|
"time"
|
|
|
|
"github.com/grafana/grafana-plugin-sdk-go/backend"
|
|
data "github.com/grafana/grafana-plugin-sdk-go/experimental/apis/data/v0alpha1"
|
|
"github.com/grafana/grafana/pkg/services/featuremgmt"
|
|
)
|
|
|
|
type Response struct {
|
|
QDR *backend.QueryDataResponse
|
|
Headers http.Header
|
|
}
|
|
|
|
type QueryDataClient interface {
|
|
QueryData(ctx context.Context, req data.QueryDataRequest) (*backend.QueryDataResponse, error)
|
|
}
|
|
|
|
type InstanceConfigurationSettings struct {
|
|
StackID uint32
|
|
FeatureToggles featuremgmt.FeatureToggles
|
|
FullConfig map[string]map[string]string // configuration file settings
|
|
Options map[string]string // additional settings related to an instance as set by grafana
|
|
SQLExpressionCellLimit int64
|
|
SQLExpressionOutputCellLimit int64
|
|
SQLExpressionTimeout time.Duration
|
|
ExpressionsEnabled bool
|
|
}
|
|
|
|
type DataSourceClientSupplier interface {
|
|
// Get a client for a given datasource
|
|
GetDataSourceClient(ctx context.Context, ref data.DataSourceRef, headers map[string]string, instanceConfig InstanceConfigurationSettings) (QueryDataClient, error)
|
|
// fetch information on the grafana instance (e.g. feature toggles)
|
|
GetInstanceConfigurationSettings(ctx context.Context) (InstanceConfigurationSettings, error)
|
|
}
|