 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
  
    Index ¶
- func RegisterTsdbQueryEndpoint(pluginId string, fn GetTsdbQueryEndpointFn)
- type DefaultSqlEngine
- type GetTsdbQueryEndpointFn
- type HandleRequestFunc
- type Interval
- 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 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 Interval ¶
func CalculateInterval ¶
type Query ¶
type Query struct {
	RefId         string
	Model         *simplejson.Json
	Depends       []string
	DataSource    *models.DataSource
	Results       []*TimeSeries
	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"`
}
    func HandleRequest ¶
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 TableColumn ¶
type TableColumn struct {
	Text string `json:"text"`
}
    type TimeRange ¶
func NewTimeRange ¶
func (*TimeRange) GetFromAsMsEpoch ¶
func (*TimeRange) GetToAsMsEpoch ¶
func (*TimeRange) MustGetFrom ¶
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
type TsdbQueryEndpoint ¶
       Source Files
      ¶
      Source Files
      ¶
    
   Click to show internal directories. 
   Click to hide internal directories.