db

package
v0.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 17, 2025 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

View Source
const (
	QueryTypeRange   QueryType        = "range"
	QueryTypeInstant QueryType        = "instant"
	ClickHouse       DatabaseProvider = "clickhouse"
	PostGreSQL       DatabaseProvider = "postgresql"
	SQLite           DatabaseProvider = "sqlite"
)

Variables

This section is empty.

Functions

func RegisterClickHouseFlags

func RegisterClickHouseFlags(flagSet *flag.FlagSet)

func RegisterPostGreSQLFlags

func RegisterPostGreSQLFlags(flagSet *flag.FlagSet)

func RegisterSqliteFlags added in v0.2.0

func RegisterSqliteFlags(flagSet *flag.FlagSet)

func ValidateSQLQuery added in v0.2.0

func ValidateSQLQuery(query string) error

Types

type ClickHouseProvider

type ClickHouseProvider struct {
	// contains filtered or unexported fields
}

func (*ClickHouseProvider) Close

func (c *ClickHouseProvider) Close() error

func (*ClickHouseProvider) GetDashboardUsage added in v0.3.0

func (p *ClickHouseProvider) GetDashboardUsage(ctx context.Context, serie string, page, pageSize int) (*PagedResult, error)

func (*ClickHouseProvider) GetQueriesBySerieName added in v0.3.0

func (p *ClickHouseProvider) GetQueriesBySerieName(
	ctx context.Context,
	serieName string,
	page int,
	pageSize int) (*PagedResult, error)

func (*ClickHouseProvider) GetRulesUsage added in v0.3.0

func (p *ClickHouseProvider) GetRulesUsage(ctx context.Context, serie string, kind string, page int, pageSize int) (*PagedResult, error)

func (*ClickHouseProvider) Insert

func (c *ClickHouseProvider) Insert(ctx context.Context, queries []Query) error

func (*ClickHouseProvider) InsertDashboardUsage added in v0.3.0

func (p *ClickHouseProvider) InsertDashboardUsage(ctx context.Context, dashboardUsage []DashboardUsage) error

func (*ClickHouseProvider) InsertRulesUsage added in v0.3.0

func (p *ClickHouseProvider) InsertRulesUsage(ctx context.Context, rulesUsage []RulesUsage) error

func (*ClickHouseProvider) Query

func (c *ClickHouseProvider) Query(ctx context.Context, query string) (*QueryResult, error)

func (*ClickHouseProvider) QueryShortCuts added in v0.2.0

func (p *ClickHouseProvider) QueryShortCuts() []QueryShortCut

func (*ClickHouseProvider) WithDB

func (c *ClickHouseProvider) WithDB(f func(db *sql.DB))

type DashboardUsage added in v0.3.0

type DashboardUsage struct {
	Id        string    `json:"id"`
	Serie     string    `json:"serie"`
	Name      string    `json:"title"`
	URL       string    `json:"url"`
	CreatedAt time.Time `json:"created_at"`
}

type DatabaseProvider

type DatabaseProvider string

type LabelMatchers

type LabelMatchers []map[string]string

type PagedResult added in v0.3.0

type PagedResult struct {
	TotalPages int         `json:"totalPages"`
	Total      int         `json:"total"`
	Data       interface{} `json:"data"`
}

type PostGreSQLProvider

type PostGreSQLProvider struct {
	// contains filtered or unexported fields
}

func (*PostGreSQLProvider) Close

func (p *PostGreSQLProvider) Close() error

func (*PostGreSQLProvider) GetDashboardUsage added in v0.3.0

func (p *PostGreSQLProvider) GetDashboardUsage(ctx context.Context, serie string, page, pageSize int) (*PagedResult, error)

func (*PostGreSQLProvider) GetQueriesBySerieName added in v0.3.0

func (p *PostGreSQLProvider) GetQueriesBySerieName(
	ctx context.Context,
	serieName string,
	page int,
	pageSize int) (*PagedResult, error)

func (*PostGreSQLProvider) GetRulesUsage added in v0.3.0

func (p *PostGreSQLProvider) GetRulesUsage(ctx context.Context, serie string, kind string, page int, pageSize int) (*PagedResult, error)

func (*PostGreSQLProvider) Insert

func (p *PostGreSQLProvider) Insert(ctx context.Context, queries []Query) error

func (*PostGreSQLProvider) InsertDashboardUsage added in v0.3.0

func (p *PostGreSQLProvider) InsertDashboardUsage(ctx context.Context, dashboardUsage []DashboardUsage) error

func (*PostGreSQLProvider) InsertRulesUsage added in v0.3.0

func (p *PostGreSQLProvider) InsertRulesUsage(ctx context.Context, rulesUsage []RulesUsage) error

func (*PostGreSQLProvider) Query

func (p *PostGreSQLProvider) Query(ctx context.Context, query string) (*QueryResult, error)

func (*PostGreSQLProvider) QueryShortCuts added in v0.2.0

func (p *PostGreSQLProvider) QueryShortCuts() []QueryShortCut

func (*PostGreSQLProvider) WithDB

func (p *PostGreSQLProvider) WithDB(f func(db *sql.DB))

type Provider

type Provider interface {
	WithDB(func(db *sql.DB))
	Insert(ctx context.Context, queries []Query) error
	Query(ctx context.Context, query string) (*QueryResult, error)
	QueryShortCuts() []QueryShortCut
	GetQueriesBySerieName(ctx context.Context, serieName string, page int, pageSize int) (*PagedResult, error)
	InsertRulesUsage(ctx context.Context, rulesUsage []RulesUsage) error
	GetRulesUsage(ctx context.Context, serie string, kind string, page int, pageSize int) (*PagedResult, error)
	InsertDashboardUsage(ctx context.Context, dashboardUsage []DashboardUsage) error
	GetDashboardUsage(ctx context.Context, serieName string, page int, pageSize int) (*PagedResult, error)
	Close() error
}

func GetDbProvider

func GetDbProvider(ctx context.Context, dbProvider DatabaseProvider) (Provider, error)

type QueriesBySerieNameResult added in v0.3.0

type QueriesBySerieNameResult struct {
	QueryParam      string    `json:"queryParam"`
	AvgDuration     float64   `json:"avgDuration"`
	AvgPeakySamples float64   `json:"avgPeakySamples"`
	MaxPeakSamples  int       `json:"maxPeakSamples"`
	TS              time.Time `json:"ts"`
}

type Query

type Query struct {
	TS                    time.Time
	QueryParam            string
	TimeParam             time.Time
	Duration              time.Duration
	StatusCode            int
	BodySize              int
	LabelMatchers         LabelMatchers
	Fingerprint           string
	Type                  QueryType
	Step                  float64
	Start                 time.Time
	End                   time.Time
	TotalQueryableSamples int
	PeakSamples           int
}

type QueryResult

type QueryResult struct {
	Columns []string                 `json:"columns"`
	Data    []map[string]interface{} `json:"data"`
}

type QueryShortCut added in v0.2.0

type QueryShortCut struct {
	Title string `json:"title"`
	Query string `json:"query"`
}

type QueryType

type QueryType string

type RuleUsageKind added in v0.3.0

type RuleUsageKind string
const (
	RuleUsageKindAlert  RuleUsageKind = "alert"
	RuleUsageKindRecord RuleUsageKind = "record"
)

type RulesUsage added in v0.3.0

type RulesUsage struct {
	Serie      string    `json:"serie"`
	GroupName  string    `json:"group_name"`
	Name       string    `json:"name"`
	Expression string    `json:"expression"`
	Kind       string    `json:"kind"`
	Labels     []string  `json:"labels"`
	CreatedAt  time.Time `json:"created_at"`
}

type SQLiteProvider added in v0.2.0

type SQLiteProvider struct {
	// contains filtered or unexported fields
}

func (*SQLiteProvider) Close added in v0.2.0

func (p *SQLiteProvider) Close() error

func (*SQLiteProvider) GetDashboardUsage added in v0.3.0

func (p *SQLiteProvider) GetDashboardUsage(ctx context.Context, serie string, page, pageSize int) (*PagedResult, error)

func (*SQLiteProvider) GetQueriesBySerieName added in v0.3.0

func (p *SQLiteProvider) GetQueriesBySerieName(
	ctx context.Context,
	serieName string,
	page int,
	pageSize int) (*PagedResult, error)

func (*SQLiteProvider) GetRulesUsage added in v0.3.0

func (p *SQLiteProvider) GetRulesUsage(ctx context.Context, serie string, kind string, page, pageSize int) (*PagedResult, error)

func (*SQLiteProvider) Insert added in v0.2.0

func (p *SQLiteProvider) Insert(ctx context.Context, queries []Query) error

func (*SQLiteProvider) InsertDashboardUsage added in v0.3.0

func (p *SQLiteProvider) InsertDashboardUsage(ctx context.Context, dashboardUsage []DashboardUsage) error

func (*SQLiteProvider) InsertRulesUsage added in v0.3.0

func (p *SQLiteProvider) InsertRulesUsage(ctx context.Context, rulesUsage []RulesUsage) error

func (*SQLiteProvider) Query added in v0.2.0

func (p *SQLiteProvider) Query(ctx context.Context, query string) (*QueryResult, error)

func (*SQLiteProvider) QueryShortCuts added in v0.2.0

func (p *SQLiteProvider) QueryShortCuts() []QueryShortCut

func (*SQLiteProvider) WithDB added in v0.2.0

func (p *SQLiteProvider) WithDB(f func(db *sql.DB))

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL