Documentation
¶
Index ¶
- func GetIntervalFrom(dsInfo *models.DataSource, queryModel *simplejson.Json, ...) (time.Duration, error)
- func NewIntervalCalculator(opt *IntervalOptions) *intervalCalculator
- func RegisterTsdbQueryEndpoint(pluginId string, fn GetTsdbQueryEndpointFn)
- type DefaultSqlEngine
- type GetTsdbQueryEndpointFn
- type HandleRequestFunc
- type Interval
- type IntervalCalculator
- type IntervalOptions
- type Query
- type QueryResult
- type Response
- type RowValues
- type SqlEngine
- type SqlMacroEngine
- type Table
- type TableColumn
- type TimePoint
- type TimeRange
- type TimeSeries
- type TimeSeriesPoints
- type TimeSeriesSlice
- type TsdbQuery
- type TsdbQueryEndpoint
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetIntervalFrom ¶
func GetIntervalFrom(dsInfo *models.DataSource, queryModel *simplejson.Json, defaultInterval time.Duration) (time.Duration, error)
func NewIntervalCalculator ¶
func NewIntervalCalculator(opt *IntervalOptions) *intervalCalculator
func RegisterTsdbQueryEndpoint ¶
func RegisterTsdbQueryEndpoint(pluginId string, fn GetTsdbQueryEndpointFn)
Types ¶
type DefaultSqlEngine ¶
type DefaultSqlEngine struct {
MacroEngine SqlMacroEngine
XormEngine *xorm.Engine
}
func (*DefaultSqlEngine) InitEngine ¶
func (e *DefaultSqlEngine) InitEngine(driverName string, dsInfo *models.DataSource, cnnstr string) error
InitEngine creates the db connection and inits the xorm engine or loads it from the engine cache
func (*DefaultSqlEngine) Query ¶
func (e *DefaultSqlEngine) Query( ctx context.Context, dsInfo *models.DataSource, tsdbQuery *TsdbQuery, transformToTimeSeries func(query *Query, rows *core.Rows, result *QueryResult) error, transformToTable func(query *Query, rows *core.Rows, result *QueryResult) error, ) (*Response, error)
Query is a default implementation of the Query method for an SQL data source. The caller of this function must implement transformToTimeSeries and transformToTable and pass them in as parameters.
type GetTsdbQueryEndpointFn ¶
type GetTsdbQueryEndpointFn func(dsInfo *models.DataSource) (TsdbQueryEndpoint, error)
type HandleRequestFunc ¶
type IntervalCalculator ¶
type Query ¶
type Query struct {
RefId string
Model *simplejson.Json
DataSource *models.DataSource
MaxDataPoints int64
IntervalMs int64
}
type QueryResult ¶
type QueryResult struct {
Error error `json:"-"`
ErrorString string `json:"error,omitempty"`
RefId string `json:"refId"`
Meta *simplejson.Json `json:"meta,omitempty"`
Series TimeSeriesSlice `json:"series"`
Tables []*Table `json:"tables"`
}
func NewQueryResult ¶
func NewQueryResult() *QueryResult
type Response ¶
type Response struct {
Results map[string]*QueryResult `json:"results"`
Message string `json:"message,omitempty"`
}
type RowValues ¶
type RowValues []interface{}
type SqlEngine ¶
type SqlEngine interface {
InitEngine(driverName string, dsInfo *models.DataSource, cnnstr string) error
Query(
ctx context.Context,
ds *models.DataSource,
query *TsdbQuery,
transformToTimeSeries func(query *Query, rows *core.Rows, result *QueryResult) error,
transformToTable func(query *Query, rows *core.Rows, result *QueryResult) error,
) (*Response, error)
}
SqlEngine is a wrapper class around xorm for relational database data sources.
type SqlMacroEngine ¶
SqlMacroEngine interpolates macros into sql. It takes in the timeRange to be able to generate queries that use from and to.
type Table ¶
type Table struct {
Columns []TableColumn `json:"columns"`
Rows []RowValues `json:"rows"`
}
type TimePoint ¶
type TimeRange ¶
type TimeSeries ¶
type TimeSeries struct {
Name string `json:"name"`
Points TimeSeriesPoints `json:"points"`
Tags map[string]string `json:"tags,omitempty"`
}
func NewTimeSeries ¶
func NewTimeSeries(name string, points TimeSeriesPoints) *TimeSeries
type TimeSeriesPoints ¶
type TimeSeriesPoints []TimePoint
func NewTimeSeriesPointsFromArgs ¶
func NewTimeSeriesPointsFromArgs(values ...float64) TimeSeriesPoints
type TimeSeriesSlice ¶
type TimeSeriesSlice []*TimeSeries
Source Files
¶
- interval.go
- models.go
- query_endpoint.go
- request.go
- sql_engine.go
- time_range.go
Click to show internal directories.
Click to hide internal directories.