launcher

package
v2.0.4 Latest Latest
Warning

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

Go to latest
Published: Feb 8, 2021 License: MIT Imports: 100 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// BoltStore stores all REST resources in boltdb.
	BoltStore = "bolt"
	// MemoryStore stores all REST resources in memory (useful for testing).
	MemoryStore = "memory"

	// LogTracing enables tracing via zap logs
	LogTracing = "log"
	// JaegerTracing enables tracing via the Jaeger client library
	JaegerTracing = "jaeger"
)
View Source
const (
	// Max Integer
	MaxInt = 1<<uint(strconv.IntSize-1) - 1
)

Variables

This section is empty.

Functions

func NewInfluxdCommand

func NewInfluxdCommand(ctx context.Context, v *viper.Viper) *cobra.Command

NewInfluxdCommand constructs the root of the influxd CLI, along with a `run` subcommand. The `run` subcommand is set as the default to execute.

func NewInfluxdPrintConfigCommand added in v2.0.4

func NewInfluxdPrintConfigCommand(v *viper.Viper, influxdOpts []cli.Opt) *cobra.Command

Types

type Engine

type Engine interface {
	influxdb.DeleteService
	storage.PointsWriter
	storage.EngineSchema
	prom.PrometheusCollector
	influxdb.BackupService
	influxdb.RestoreService

	SeriesCardinality(orgID, bucketID influxdb.ID) int64

	TSDBStore() storage.TSDBStore
	MetaClient() storage.MetaClient

	WithLogger(log *zap.Logger)
	Open(context.Context) error
	Close() error
}

Engine defines the time-series storage engine. Wraps *storage.Engine to facilitate testing.

type InfluxdOpts added in v2.0.4

type InfluxdOpts struct {
	Testing                 bool
	TestingAlwaysAllowSetup bool

	LogLevel          zapcore.Level
	TracingType       string
	ReportingDisabled bool

	AssetsPath string
	BoltPath   string
	EnginePath string

	StoreType   string
	SecretStore string
	VaultConfig vault.Config

	HttpBindAddress      string
	HttpTLSCert          string
	HttpTLSKey           string
	HttpTLSMinVersion    string
	HttpTLSStrictCiphers bool
	SessionLength        int // in minutes
	SessionRenewDisabled bool

	NatsPort            int
	NatsMaxPayloadBytes int

	NoTasks      bool
	FeatureFlags map[string]string

	// Query options.
	ConcurrencyQuota                int32
	InitialMemoryBytesQuotaPerQuery int64
	MemoryBytesQuotaPerQuery        int64
	MaxMemoryBytes                  int64
	QueueSize                       int32
	CoordinatorConfig               coordinator.Config

	// Storage options.
	StorageConfig storage.Config

	Viper *viper.Viper
}

InfluxdOpts captures all arguments for running the InfluxDB server.

type Launcher

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

Launcher represents the main program execution.

func NewLauncher

func NewLauncher() *Launcher

NewLauncher returns a new instance of Launcher with a no-op logger.

func (*Launcher) AuthorizationService

func (m *Launcher) AuthorizationService() platform.AuthorizationService

AuthorizationService returns the internal authorization service.

func (*Launcher) BucketService

func (m *Launcher) BucketService() platform.BucketService

BucketService returns the internal bucket service.

func (*Launcher) Cancel

func (m *Launcher) Cancel()

Cancel executes the context cancel on the program. Used for testing.

func (*Launcher) CheckService

func (m *Launcher) CheckService() platform.CheckService

CheckService returns the internal check service.

func (*Launcher) DBRPMappingServiceV2 added in v2.0.2

func (m *Launcher) DBRPMappingServiceV2() platform.DBRPMappingServiceV2

func (*Launcher) Engine

func (m *Launcher) Engine() Engine

Engine returns a reference to the storage engine. It should only be called for end-to-end testing purposes.

func (*Launcher) KeyValueService

func (m *Launcher) KeyValueService() *kv.Service

KeyValueService returns the internal key-value service.

func (*Launcher) NatsURL

func (m *Launcher) NatsURL() string

NatsURL returns the URL to connection to the NATS server.

func (*Launcher) OrganizationService

func (m *Launcher) OrganizationService() platform.OrganizationService

OrganizationService returns the internal organization service.

func (*Launcher) QueryController

func (m *Launcher) QueryController() *control.Controller

QueryController returns the internal query service.

func (*Launcher) Registry

func (m *Launcher) Registry() *prom.Registry

Registry returns the prometheus metrics registry.

func (*Launcher) SecretService

func (m *Launcher) SecretService() platform.SecretService

SecretService returns the internal secret service.

func (*Launcher) SessionService added in v2.0.2

func (m *Launcher) SessionService() platform.SessionService

func (*Launcher) Shutdown

func (m *Launcher) Shutdown(ctx context.Context) error

Shutdown shuts down the HTTP server and waits for all services to clean up.

func (*Launcher) TaskControlService

func (m *Launcher) TaskControlService() taskbackend.TaskControlService

TaskControlService returns the internal store service.

func (*Launcher) TaskService

func (m *Launcher) TaskService() platform.TaskService

TaskService returns the internal task service.

func (*Launcher) URL

func (m *Launcher) URL() string

URL returns the URL to connect to the HTTP server.

func (*Launcher) UserResourceMappingService

func (m *Launcher) UserResourceMappingService() platform.UserResourceMappingService

UserResourceMappingService returns the internal user resource mapping service.

func (*Launcher) UserService

func (m *Launcher) UserService() platform.UserService

UserService returns the internal user service.

type OptSetter added in v2.0.4

type OptSetter = func(o *InfluxdOpts)

type QueryResult

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

QueryResult wraps a single flux.Result with some helper methods.

func (*QueryResult) HasTablesWithCols

func (r *QueryResult) HasTablesWithCols(want []int)

HasTableWithCols checks if the desired number of tables and columns exist, ignoring any system columns.

If the result is not as expected then the testing.T fails.

func (*QueryResult) TablesN

func (r *QueryResult) TablesN() int

TablesN returns the number of tables for the result.

type QueryResults

type QueryResults struct {
	Results []flux.Result
	Query   flux.Query
}

QueryResults wraps a set of query results with some helper methods.

func (*QueryResults) Done

func (r *QueryResults) Done()

func (*QueryResults) First

func (r *QueryResults) First(t *testing.T) *QueryResult

First returns the first QueryResult. When there are not exactly 1 table First will fail.

func (*QueryResults) HasTableCount

func (r *QueryResults) HasTableCount(t *testing.T, n int)

HasTableCount asserts that there are n tables in the result.

func (*QueryResults) Names

func (r *QueryResults) Names() []string

Names returns the sorted set of result names for the query results.

func (*QueryResults) SortedNames

func (r *QueryResults) SortedNames() []string

SortedNames returns the sorted set of table names for the query results.

type TemporaryEngine

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

TemporaryEngine creates a time-series storage engine backed by a temporary directory that is removed on Close.

func NewTemporaryEngine

func NewTemporaryEngine(c storage.Config, options ...storage.Option) *TemporaryEngine

NewTemporaryEngine creates a new engine that places the storage engine files into a temporary directory; used for testing.

func (*TemporaryEngine) BackupKVStore

func (t *TemporaryEngine) BackupKVStore(ctx context.Context, w io.Writer) error

func (*TemporaryEngine) BackupShard

func (t *TemporaryEngine) BackupShard(ctx context.Context, w io.Writer, shardID uint64, since time.Time) error

func (*TemporaryEngine) Close

func (t *TemporaryEngine) Close() error

Close will remove the directory containing the time-series files.

func (*TemporaryEngine) CreateBucket

func (t *TemporaryEngine) CreateBucket(ctx context.Context, b *influxdb.Bucket) error

func (*TemporaryEngine) DeleteBucket

func (t *TemporaryEngine) DeleteBucket(ctx context.Context, orgID, bucketID influxdb.ID) error

DeleteBucket deletes a bucket from the time-series data.

func (*TemporaryEngine) DeleteBucketRangePredicate

func (t *TemporaryEngine) DeleteBucketRangePredicate(ctx context.Context, orgID, bucketID influxdb.ID, min, max int64, pred influxdb.Predicate) error

DeleteBucketRangePredicate will delete a bucket from the range and predicate.

func (*TemporaryEngine) Flush

func (t *TemporaryEngine) Flush(ctx context.Context)

Flush will remove the time-series files and re-open the engine.

func (*TemporaryEngine) MetaClient

func (t *TemporaryEngine) MetaClient() storage.MetaClient

func (*TemporaryEngine) Open

func (t *TemporaryEngine) Open(ctx context.Context) error

Open creates a temporary directory and opens the engine.

func (*TemporaryEngine) PrometheusCollectors

func (t *TemporaryEngine) PrometheusCollectors() []prometheus.Collector

PrometheusCollectors returns all the prometheus collectors associated with the engine and its components.

func (*TemporaryEngine) RestoreBucket

func (t *TemporaryEngine) RestoreBucket(ctx context.Context, id influxdb.ID, dbi []byte) (map[uint64]uint64, error)

func (*TemporaryEngine) RestoreKVStore

func (t *TemporaryEngine) RestoreKVStore(ctx context.Context, r io.Reader) error

func (*TemporaryEngine) RestoreShard

func (t *TemporaryEngine) RestoreShard(ctx context.Context, shardID uint64, r io.Reader) error

func (*TemporaryEngine) SeriesCardinality

func (t *TemporaryEngine) SeriesCardinality(orgID, bucketID influxdb.ID) int64

SeriesCardinality returns the number of series in the engine.

func (*TemporaryEngine) TSDBStore

func (t *TemporaryEngine) TSDBStore() storage.TSDBStore

func (*TemporaryEngine) UpdateBucketRetentionPeriod

func (t *TemporaryEngine) UpdateBucketRetentionPeriod(ctx context.Context, bucketID influxdb.ID, d time.Duration) error

func (*TemporaryEngine) WithLogger

func (t *TemporaryEngine) WithLogger(log *zap.Logger)

WithLogger sets the logger on the engine. It must be called before Open.

func (*TemporaryEngine) WritePoints

func (t *TemporaryEngine) WritePoints(ctx context.Context, orgID influxdb.ID, bucketID influxdb.ID, points []models.Point) error

WritePoints stores points into the storage engine.

type TestLauncher

type TestLauncher struct {
	*Launcher

	// Root temporary directory for all data.
	Path string

	// Initialized after calling the Setup() helper.
	User   *influxdb.User
	Org    *influxdb.Organization
	Bucket *influxdb.Bucket
	Auth   *influxdb.Authorization
	// contains filtered or unexported fields
}

TestLauncher is a test wrapper for launcher.Launcher.

func NewTestLauncher

func NewTestLauncher() *TestLauncher

NewTestLauncher returns a new instance of TestLauncher.

func NewTestLauncherServer

func NewTestLauncherServer() *TestLauncher

NewTestLauncherServer returns a new instance of TestLauncher configured as real server (disk store, no e2e flag).

func RunAndSetupNewLauncherOrFail added in v2.0.4

func RunAndSetupNewLauncherOrFail(ctx context.Context, tb testing.TB, setters ...OptSetter) *TestLauncher

RunAndSetupNewLauncherOrFail shorcuts the most common pattern used in testing, building a new TestLauncher, running it, and setting it up with an initial user.

func (*TestLauncher) AuthorizationService

func (tl *TestLauncher) AuthorizationService(tb testing.TB) *http.AuthorizationService

func (*TestLauncher) BucketService

func (tl *TestLauncher) BucketService(tb testing.TB) *tenant.BucketClientService

func (*TestLauncher) DashboardService

func (tl *TestLauncher) DashboardService(tb testing.TB) influxdb.DashboardService

func (*TestLauncher) ExecuteQuery

func (tl *TestLauncher) ExecuteQuery(q string) (*QueryResults, error)

ExecuteQuery executes the provided query against the ith query node. Callers of ExecuteQuery must call Done on the returned QueryResults.

func (*TestLauncher) FluxQueryOrFail

func (tl *TestLauncher) FluxQueryOrFail(tb testing.TB, org *influxdb.Organization, token string, query string) string

FluxQueryOrFail performs a query to the specified organization and returns the results or fails if there is an error.

func (*TestLauncher) FluxQueryService

func (tl *TestLauncher) FluxQueryService() *http.FluxQueryService

func (*TestLauncher) FluxService

func (tl *TestLauncher) FluxService() *http.FluxService

func (*TestLauncher) HTTPClient

func (tl *TestLauncher) HTTPClient(tb testing.TB) *httpc.Client

func (*TestLauncher) LabelService

func (tl *TestLauncher) LabelService(tb testing.TB) influxdb.LabelService

func (*TestLauncher) Metrics

func (tl *TestLauncher) Metrics(tb testing.TB) (metrics map[string]*dto.MetricFamily)

func (*TestLauncher) MustExecuteQuery

func (tl *TestLauncher) MustExecuteQuery(query string) *QueryResults

MustExecuteQuery executes the provided query panicking if an error is encountered. Callers of MustExecuteQuery must call Done on the returned QueryResults.

func (*TestLauncher) MustNewHTTPRequest

func (tl *TestLauncher) MustNewHTTPRequest(method, rawurl, body string) *nethttp.Request

MustNewHTTPRequest returns a new nethttp.Request with base URL and auth attached. Fail on error.

func (*TestLauncher) NewHTTPRequest

func (tl *TestLauncher) NewHTTPRequest(method, rawurl, token string, body string) (*nethttp.Request, error)

NewHTTPRequest returns a new nethttp.Request with base URL and auth attached.

func (*TestLauncher) NewHTTPRequestOrFail

func (tl *TestLauncher) NewHTTPRequestOrFail(tb testing.TB, method, rawurl, token string, body string) *nethttp.Request

NewHTTPRequestOrFail returns a new nethttp.Request with base URL and auth attached. Fail on error.

func (*TestLauncher) NotificationEndpointService

func (tl *TestLauncher) NotificationEndpointService(tb testing.TB) *http.NotificationEndpointService

func (*TestLauncher) NotificationRuleService

func (tl *TestLauncher) NotificationRuleService(tb testing.TB) influxdb.NotificationRuleStore

func (*TestLauncher) NumReads

func (tl *TestLauncher) NumReads(tb testing.TB, op string) uint64

func (*TestLauncher) OnBoard

func (tl *TestLauncher) OnBoard(req *influxdb.OnboardingRequest) (*influxdb.OnboardingResults, error)

OnBoard attempts an on-boarding request. The on-boarding status is also reset to allow multiple user/org/buckets to be created.

func (*TestLauncher) OnBoardOrFail

func (tl *TestLauncher) OnBoardOrFail(tb testing.TB, req *influxdb.OnboardingRequest) *influxdb.OnboardingResults

OnBoardOrFail attempts an on-boarding request or fails on error. The on-boarding status is also reset to allow multiple user/org/buckets to be created.

func (*TestLauncher) OrgService

func (tl *TestLauncher) OrgService(tb testing.TB) influxdb.OrganizationService

func (*TestLauncher) PkgerService

func (tl *TestLauncher) PkgerService(tb testing.TB) pkger.SVC

func (*TestLauncher) QueryAndConsume

func (tl *TestLauncher) QueryAndConsume(ctx context.Context, req *query.Request, fn func(r flux.Result) error) error

QueryAndConsume queries InfluxDB using the request provided. It uses a function to consume the results obtained. It returns the first error encountered when requesting the query, consuming the results, or executing the query.

func (*TestLauncher) QueryAndNopConsume

func (tl *TestLauncher) QueryAndNopConsume(ctx context.Context, req *query.Request) error

QueryAndNopConsume does the same as QueryAndConsume but consumes results with a nop function.

func (*TestLauncher) QueryFlux

func (tl *TestLauncher) QueryFlux(tb testing.TB, org *influxdb.Organization, token, query string) string

QueryFlux returns the csv response from a flux query. It also removes all the \r to make it easier to write tests.

func (*TestLauncher) Run

func (tl *TestLauncher) Run(tb zaptest.TestingT, ctx context.Context, setters ...OptSetter) error

Run executes the program with additional arguments to set paths and ports. Passed arguments will overwrite/add to the default ones.

func (*TestLauncher) RunOrFail added in v2.0.4

func (tl *TestLauncher) RunOrFail(tb testing.TB, ctx context.Context, setters ...OptSetter)

Run executes the program, failing the test if the launcher fails to start.

func (*TestLauncher) SetFlagger added in v2.0.4

func (tl *TestLauncher) SetFlagger(flagger feature.Flagger)

func (*TestLauncher) Setup

func (tl *TestLauncher) Setup() error

Setup creates a new user, bucket, org, and auth token.

func (*TestLauncher) SetupOrFail

func (tl *TestLauncher) SetupOrFail(tb testing.TB)

SetupOrFail creates a new user, bucket, org, and auth token. Fail on error.

func (*TestLauncher) Shutdown

func (tl *TestLauncher) Shutdown(ctx context.Context) error

Shutdown stops the program and cleans up temporary paths.

func (*TestLauncher) ShutdownOrFail

func (tl *TestLauncher) ShutdownOrFail(tb testing.TB, ctx context.Context)

ShutdownOrFail stops the program and cleans up temporary paths. Fail on error.

func (*TestLauncher) TaskService

func (tl *TestLauncher) TaskService(tb testing.TB) influxdb.TaskService

func (*TestLauncher) TaskServiceKV

func (tl *TestLauncher) TaskServiceKV(tb testing.TB) influxdb.TaskService

func (*TestLauncher) TelegrafService

func (tl *TestLauncher) TelegrafService(tb testing.TB) *http.TelegrafService

func (*TestLauncher) VariableService

func (tl *TestLauncher) VariableService(tb testing.TB) *http.VariableService

func (*TestLauncher) WriteOrFail

func (tl *TestLauncher) WriteOrFail(tb testing.TB, to *influxdb.OnboardingResults, data string)

WriteOrFail attempts a write to the organization and bucket identified by to or fails if there is an error.

func (*TestLauncher) WritePoints

func (tl *TestLauncher) WritePoints(data string) error

WritePoints attempts a write to the organization and bucket used during setup.

func (*TestLauncher) WritePointsOrFail

func (tl *TestLauncher) WritePointsOrFail(tb testing.TB, data string)

WritePointsOrFail attempts a write to the organization and bucket used during setup or fails if there is an error.

Jump to

Keyboard shortcuts

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