Versions in this module Expand all Collapse all v5 v5.0.1 Oct 8, 2025 v5.0.0 Oct 6, 2025 Changes in this version + const EndpointHealth + const EndpointQuery + const FormatOptionLogs + const FormatOptionMulti + const FormatOptionTable + const FormatOptionTimeSeries + const FormatOptionTrace + const MockDataFolder + const SourceDownstream + const SourcePlugin + const StatusError + const StatusOK + var DefaultMacros = sqlutil.DefaultMacros + var ErrorBadDatasource = errors.New("type assertion to datasource failed") + var ErrorConnectionClosed = errors.New("database connection closed") + var ErrorJSON = errors.New("error unmarshaling query JSON the Query Model") + var ErrorMissingDBConnection = backend.PluginError(errors.New("unable to get default db connection")) + var ErrorMissingMultipleConnectionsConfig = backend.PluginError(errors.New("received connection arguments but the feature is not enabled")) + var ErrorNoResults = errors.New("no results returned from query") + var ErrorNotImplemented = errors.New("not implemented") + var ErrorParsingMacroBrackets = errors.New("failed to parse macro arguments (missing close bracket?)") + var ErrorQuery = errors.New("error querying the database") + var ErrorRowValidation = errors.New("SQL rows validation failed") + var ErrorTimeout = errors.New("query timeout exceeded") + var ErrorWrongOptions = errors.New("error reading query options") + var HeaderKey = "grafana-http-headers" + var MissingDBConnection = ErrorMissingDBConnection + var MissingMultipleConnectionsConfig = ErrorMissingMultipleConnectionsConfig + func CreateMockData(table string, folder string, csvData string) error + func CreateMockTable(table string, folder string) error + func ErrorSource(err error) backend.ErrorSource + func Interpolate(driver Driver, query *Query) (string, error) + type CheckHealthMutator interface + MutateCheckHealth func(ctx context.Context, req *backend.CheckHealthRequest) (context.Context, *backend.CheckHealthRequest) + type Completable interface + Columns func(ctx context.Context, options Options) ([]string, error) + Schemas func(ctx context.Context, options Options) ([]string, error) + Tables func(ctx context.Context, options Options) ([]string, error) + type Connection interface + Close func() error + Ping func() error + PingContext func(ctx context.Context) error + QueryContext func(ctx context.Context, query string, args ...interface{}) (*sql.Rows, error) + type Connector struct + UID string + func NewConnector(ctx context.Context, driver Driver, ...) (*Connector, error) + func (c *Connector) Connect(ctx context.Context, headers http.Header) (*dbConnection, error) + func (c *Connector) Dispose() + func (c *Connector) GetConnectionFromQuery(ctx context.Context, q *Query) (string, dbConnection, error) + func (c *Connector) Reconnect(ctx context.Context, dbConn dbConnection, q *Query, cacheKey string) (*sql.DB, error) + type DBQuery struct + DB Connection + DSName string + Settings backend.DataSourceInstanceSettings + func NewQuery(db Connection, settings backend.DataSourceInstanceSettings, ...) *DBQuery + func (q *DBQuery) Run(ctx context.Context, query *Query, queryErrorMutator QueryErrorMutator, ...) (data.Frames, error) + type Driver interface + Connect func(context.Context, backend.DataSourceInstanceSettings, json.RawMessage) (*sql.DB, error) + Converters func() []sqlutil.Converter + Macros func() Macros + Settings func(context.Context, backend.DataSourceInstanceSettings) DriverSettings + type DriverSettings struct + Errors bool + FillMode *data.FillMissing + ForwardHeaders bool + Pause int + Retries int + RetryOn []string + RowLimit int64 + Timeout time.Duration + type Endpoint string + type FormatQueryOption = sqlutil.FormatQueryOption + type HealthChecker struct + Connector *Connector + Metrics Metrics + PostCheckHealth func(ctx context.Context, req *backend.CheckHealthRequest) *backend.CheckHealthResult + PreCheckHealth func(ctx context.Context, req *backend.CheckHealthRequest) *backend.CheckHealthResult + func (hc *HealthChecker) Check(ctx context.Context, req *backend.CheckHealthRequest) (*backend.CheckHealthResult, error) + type MacroFunc = sqlutil.MacroFunc + type Macros = sqlutil.Macros + type Metrics struct + DSName string + DSType string + Endpoint Endpoint + func NewMetrics(dsName, dsType string, endpoint Endpoint) Metrics + func (m *Metrics) CollectDuration(source Source, status Status, duration float64) + func (m *Metrics) WithEndpoint(endpoint Endpoint) Metrics + type Options map[string]string + func ParseOptions(rawOptions json.RawMessage) (Options, error) + type Query = sqlutil.Query + func GetQuery(query backend.DataQuery, headers http.Header, setHeaders bool) (*Query, error) + type QueryArgSetter interface + SetQueryArgs func(ctx context.Context, headers http.Header) []interface{} + type QueryDataMutator interface + MutateQueryData func(ctx context.Context, req *backend.QueryDataRequest) (context.Context, *backend.QueryDataRequest) + type QueryErrorMutator interface + MutateQueryError func(err error) backend.ErrorWithSource + type QueryMutator interface + MutateQuery func(ctx context.Context, req backend.DataQuery) (context.Context, backend.DataQuery) + type Response struct + func NewResponse(res *backend.QueryDataResponse) *Response + func (r *Response) Response() *backend.QueryDataResponse + func (r *Response) Set(refID string, res backend.DataResponse) + type ResponseMutator interface + MutateResponse func(ctx context.Context, res data.Frames) (data.Frames, error) + type SQLDatasource struct + CustomRoutes map[string]func(http.ResponseWriter, *http.Request) + EnableMultipleConnections bool + EnableRowLimit bool + PostCheckHealth func(ctx context.Context, req *backend.CheckHealthRequest) *backend.CheckHealthResult + PreCheckHealth func(ctx context.Context, req *backend.CheckHealthRequest) *backend.CheckHealthResult + func NewDatasource(c Driver) *SQLDatasource + func (ds *SQLDatasource) CheckHealth(ctx context.Context, req *backend.CheckHealthRequest) (*backend.CheckHealthResult, error) + func (ds *SQLDatasource) Dispose() + func (ds *SQLDatasource) DriverSettings() DriverSettings + func (ds *SQLDatasource) GetDBFromQuery(ctx context.Context, q *Query) (*sql.DB, error) + func (ds *SQLDatasource) GetRowLimit() int64 + func (ds *SQLDatasource) NewDatasource(ctx context.Context, settings backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) + func (ds *SQLDatasource) QueryData(ctx context.Context, req *backend.QueryDataRequest) (*backend.QueryDataResponse, error) + func (ds *SQLDatasource) SetDefaultRowLimit(limit int64) + type SQLMock struct + ShouldFailToConnect bool + func (h *SQLMock) Connect(_ context.Context, _ backend.DataSourceInstanceSettings, msg json.RawMessage) (*sql.DB, error) + func (h *SQLMock) Converters() []sqlutil.Converter + func (h *SQLMock) Macros() Macros + func (h *SQLMock) Settings(_ context.Context, _ backend.DataSourceInstanceSettings) DriverSettings + type Source string + type Status string Other modules containing this package github.com/grafana/sqlds github.com/grafana/sqlds/v2 github.com/grafana/sqlds/v3 github.com/grafana/sqlds/v4