Documentation
¶
Index ¶
- func TagOptionsFromConfig(cfg TagOptionsConfiguration) (models.TagOptions, error)
- type BackendStorageType
- type CacheConfiguration
- type CarbonConfiguration
- type CarbonIngesterAggregationConfiguration
- type CarbonIngesterConfiguration
- type CarbonIngesterRuleConfiguration
- type CarbonIngesterStoragePolicyConfiguration
- type ClusterManagementConfiguration
- type Configuration
- type DeprecatedQueryConversionCacheConfiguration
- type Filter
- type FilterConfiguration
- type GlobalLimitsConfiguration
- type IngestConfiguration
- type LimitsConfiguration
- type LocalConfiguration
- type PerQueryLimitsConfiguration
- type RPCConfiguration
- type Remote
- type RemoteConfiguration
- type RemoteConfigurations
- type RemoteOptions
- type ResultOptions
- type TagOptionsConfiguration
- type WriteForwardingConfiguration
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func TagOptionsFromConfig ¶ added in v0.4.8
func TagOptionsFromConfig(cfg TagOptionsConfiguration) (models.TagOptions, error)
TagOptionsFromConfig translates tag option configuration into tag options.
Types ¶
type BackendStorageType ¶ added in v0.4.4
type BackendStorageType string
BackendStorageType is an enum for different backends.
const ( // GRPCStorageType is for backends which only support grpc endpoints. GRPCStorageType BackendStorageType = "grpc" // M3DBStorageType is for m3db backend. M3DBStorageType BackendStorageType = "m3db" )
type CacheConfiguration ¶ added in v0.7.0
type CacheConfiguration struct {
// Deprecated: remove from config.
DeprecatedQueryConversion *DeprecatedQueryConversionCacheConfiguration `yaml:"queryConversion"`
}
CacheConfiguration contains the cache configurations.
type CarbonConfiguration ¶ added in v0.5.0
type CarbonConfiguration struct {
Ingester *CarbonIngesterConfiguration `yaml:"ingester"`
}
CarbonConfiguration is the configuration for the carbon server.
type CarbonIngesterAggregationConfiguration ¶ added in v0.5.0
type CarbonIngesterAggregationConfiguration struct {
Enabled *bool `yaml:"enabled"`
Type *aggregation.Type `yaml:"type"`
}
CarbonIngesterAggregationConfiguration is the configuration struct for the aggregation for a carbon ingest rule's storage policy.
func (*CarbonIngesterAggregationConfiguration) EnabledOrDefault ¶ added in v0.5.0
func (c *CarbonIngesterAggregationConfiguration) EnabledOrDefault() bool
EnabledOrDefault returns whether aggregation should be enabled based on the provided configuration, or a default value otherwise.
func (*CarbonIngesterAggregationConfiguration) TypeOrDefault ¶ added in v0.5.0
func (c *CarbonIngesterAggregationConfiguration) TypeOrDefault() aggregation.Type
TypeOrDefault returns the aggregation type that should be used based on the provided configuration, or a default value otherwise.
type CarbonIngesterConfiguration ¶ added in v0.5.0
type CarbonIngesterConfiguration struct {
Debug bool `yaml:"debug"`
ListenAddress string `yaml:"listenAddress"`
MaxConcurrency int `yaml:"maxConcurrency"`
Rules []CarbonIngesterRuleConfiguration `yaml:"rules"`
}
CarbonIngesterConfiguration is the configuration struct for carbon ingestion.
func (*CarbonIngesterConfiguration) ListenAddressOrDefault ¶ added in v0.6.0
func (c *CarbonIngesterConfiguration) ListenAddressOrDefault() string
ListenAddressOrDefault returns the specified carbon ingester listen address if provided, or the default value if not.
func (*CarbonIngesterConfiguration) RulesOrDefault ¶ added in v0.5.0
func (c *CarbonIngesterConfiguration) RulesOrDefault(namespaces m3.ClusterNamespaces) []CarbonIngesterRuleConfiguration
RulesOrDefault returns the specified carbon ingester rules if provided, or generates reasonable defaults using the provided aggregated namespaces if not.
type CarbonIngesterRuleConfiguration ¶ added in v0.5.0
type CarbonIngesterRuleConfiguration struct {
Pattern string `yaml:"pattern"`
Aggregation CarbonIngesterAggregationConfiguration `yaml:"aggregation"`
Policies []CarbonIngesterStoragePolicyConfiguration `yaml:"policies"`
}
CarbonIngesterRuleConfiguration is the configuration struct for a carbon ingestion rule.
type CarbonIngesterStoragePolicyConfiguration ¶ added in v0.5.0
type CarbonIngesterStoragePolicyConfiguration struct {
Resolution time.Duration `yaml:"resolution" validate:"nonzero"`
Retention time.Duration `yaml:"retention" validate:"nonzero"`
}
CarbonIngesterStoragePolicyConfiguration is the configuration struct for a carbon rule's storage policies.
type ClusterManagementConfiguration ¶
type ClusterManagementConfiguration struct {
// Etcd is the client configuration for etcd.
Etcd etcdclient.Configuration `yaml:"etcd"`
}
ClusterManagementConfiguration is configuration for the placemement, namespaces and database management endpoints (optional).
type Configuration ¶
type Configuration struct {
// Metrics configuration.
Metrics instrument.MetricsConfiguration `yaml:"metrics"`
// Logging configuration.
Logging xlog.Configuration `yaml:"logging"`
// Tracing configures opentracing. If not provided, tracing is disabled.
Tracing opentracing.TracingConfiguration `yaml:"tracing"`
// Clusters is the DB cluster configurations for read, write and
// query endpoints.
Clusters m3.ClustersStaticConfiguration `yaml:"clusters"`
// LocalConfiguration is the local embedded configuration if running
// coordinator embedded in the DB.
Local *LocalConfiguration `yaml:"local"`
// ClusterManagement for placemement, namespaces and database management
// endpoints (optional).
ClusterManagement *ClusterManagementConfiguration `yaml:"clusterManagement"`
// ListenAddress is the server listen address.
ListenAddress *listenaddress.Configuration `yaml:"listenAddress" validate:"nonzero"`
// Filter is the read/write/complete tags filter configuration.
Filter FilterConfiguration `yaml:"filter"`
// RPC is the RPC configuration.
RPC *RPCConfiguration `yaml:"rpc"`
// Backend is the backend store for query service. We currently support grpc and m3db (default).
Backend BackendStorageType `yaml:"backend"`
// TagOptions is the tag configuration options.
TagOptions TagOptionsConfiguration `yaml:"tagOptions"`
// ReadWorkerPool is the worker pool policy for read requests.
ReadWorkerPool xconfig.WorkerPoolPolicy `yaml:"readWorkerPoolPolicy"`
// WriteWorkerPool is the worker pool policy for write requests.
WriteWorkerPool xconfig.WorkerPoolPolicy `yaml:"writeWorkerPoolPolicy"`
// WriteForwarding is the write forwarding options.
WriteForwarding WriteForwardingConfiguration `yaml:"writeForwarding"`
// Downsample configurates how the metrics should be downsampled.
Downsample downsample.Configuration `yaml:"downsample"`
// Ingest is the ingest server.
Ingest *IngestConfiguration `yaml:"ingest"`
// Carbon is the carbon configuration.
Carbon *CarbonConfiguration `yaml:"carbon"`
// Limits specifies limits on per-query resource usage.
Limits LimitsConfiguration `yaml:"limits"`
// LookbackDuration determines the lookback duration for queries
LookbackDuration *time.Duration `yaml:"lookbackDuration"`
// ResultOptions are the results options for query.
ResultOptions ResultOptions `yaml:"resultOptions"`
// Cache configurations.
//
// Deprecated: cache configurations are no longer supported. Remove from file
// when we can make breaking changes.
// (If/when removed it will make existing configurations with the cache
// stanza not able to startup the binary since we parse YAML in strict mode
// by default).
DeprecatedCache CacheConfiguration `yaml:"cache"`
}
Configuration is the configuration for the query service.
func (Configuration) LookbackDurationOrDefault ¶ added in v0.5.0
func (c Configuration) LookbackDurationOrDefault() (time.Duration, error)
LookbackDurationOrDefault validates the LookbackDuration
type DeprecatedQueryConversionCacheConfiguration ¶ added in v0.8.2
type DeprecatedQueryConversionCacheConfiguration struct {
Size *int `yaml:"size"`
}
DeprecatedQueryConversionCacheConfiguration is deprecated: remove from config.
type Filter ¶ added in v0.5.0
type Filter string
Filter is a query filter type.
const ( // FilterLocalOnly is a filter that specifies local only storage should be used. FilterLocalOnly Filter = "local_only" // FilterRemoteOnly is a filter that specifies remote only storage should be used. FilterRemoteOnly Filter = "remote_only" // FilterAllowAll is a filter that specifies all storages should be used. FilterAllowAll Filter = "allow_all" // FilterAllowNone is a filter that specifies no storages should be used. FilterAllowNone Filter = "allow_none" )
type FilterConfiguration ¶ added in v0.5.0
type FilterConfiguration struct {
Read Filter `yaml:"read"`
Write Filter `yaml:"write"`
CompleteTags Filter `yaml:"completeTags"`
}
FilterConfiguration is the filters for write/read/complete tags storage filters.
type GlobalLimitsConfiguration ¶ added in v0.7.1
type GlobalLimitsConfiguration struct {
// MaxFetchedDatapoints limits the total number of datapoints actually
// fetched by all queries at any given time.
MaxFetchedDatapoints int64 `yaml:"maxFetchedDatapoints"`
}
GlobalLimitsConfiguration represents limits on resource usage across a query instance. Zero or negative values imply no limit.
func (*GlobalLimitsConfiguration) AsLimitManagerOptions ¶ added in v0.7.1
func (l *GlobalLimitsConfiguration) AsLimitManagerOptions() cost.LimitManagerOptions
AsLimitManagerOptions converts this configuration to cost.LimitManagerOptions for MaxFetchedDatapoints.
type IngestConfiguration ¶ added in v0.4.7
type IngestConfiguration struct {
// Ingester is the configuration for storage based ingester.
Ingester ingestm3msg.Configuration `yaml:"ingester"`
// M3Msg is the configuration for m3msg server.
M3Msg m3msg.Configuration `yaml:"m3msg"`
}
IngestConfiguration is the configuration for ingestion server.
type LimitsConfiguration ¶ added in v0.4.8
type LimitsConfiguration struct {
// deprecated: use PerQuery.MaxComputedDatapoints instead.
DeprecatedMaxComputedDatapoints int64 `yaml:"maxComputedDatapoints"`
// Global configures limits which apply across all queries running on this
// instance.
Global GlobalLimitsConfiguration `yaml:"global"`
// PerQuery configures limits which apply to each query individually.
PerQuery PerQueryLimitsConfiguration `yaml:"perQuery"`
}
LimitsConfiguration represents limitations on resource usage in the query instance. Limits are split between per-query and global limits.
func (*LimitsConfiguration) MaxComputedDatapoints ¶ added in v0.4.8
func (lc *LimitsConfiguration) MaxComputedDatapoints() int64
MaxComputedDatapoints is a getter providing backwards compatibility between LimitsConfiguration.DeprecatedMaxComputedDatapoints and LimitsConfiguration.PerQuery.PrivateMaxComputedDatapoints. See LimitsConfiguration.PerQuery.PrivateMaxComputedDatapoints for a comment on the semantics.
type LocalConfiguration ¶
type LocalConfiguration struct {
// Namespaces is the list of namespaces that the local embedded DB has.
Namespaces []m3.ClusterStaticNamespaceConfiguration `yaml:"namespaces"`
}
LocalConfiguration is the local embedded configuration if running coordinator embedded in the DB.
type PerQueryLimitsConfiguration ¶ added in v0.7.1
type PerQueryLimitsConfiguration struct {
// PrivateMaxComputedDatapoints limits the number of datapoints that can be
// returned by a query. It's determined purely
// from the size of the time range and the step size (end - start / step).
//
// N.B.: the hacky "Private" prefix is to indicate that callers should use
// LimitsConfiguration.MaxComputedDatapoints() instead of accessing
// this field directly.
PrivateMaxComputedDatapoints int64 `yaml:"maxComputedDatapoints"`
// MaxFetchedDatapoints limits the number of datapoints actually used by a
// given query.
MaxFetchedDatapoints int64 `yaml:"maxFetchedDatapoints"`
// MaxFetchedSeries limits the number of time series returned by a storage node.
MaxFetchedSeries int64 `yaml:"maxFetchedSeries"`
}
PerQueryLimitsConfiguration represents limits on resource usage within a single query. Zero or negative values imply no limit.
func (*PerQueryLimitsConfiguration) AsFetchOptionsBuilderOptions ¶ added in v0.9.2
func (l *PerQueryLimitsConfiguration) AsFetchOptionsBuilderOptions() handler.FetchOptionsBuilderOptions
AsFetchOptionsBuilderOptions converts this configuration to handler.FetchOptionsBuilderOptions.
func (*PerQueryLimitsConfiguration) AsLimitManagerOptions ¶ added in v0.7.1
func (l *PerQueryLimitsConfiguration) AsLimitManagerOptions() cost.LimitManagerOptions
AsLimitManagerOptions converts this configuration to cost.LimitManagerOptions for MaxFetchedDatapoints.
type RPCConfiguration ¶
type RPCConfiguration struct {
// Enabled determines if coordinator RPC is enabled for remote calls.
//
// NB: this is no longer necessary to set to true if RPC is desired; enabled
// status is inferred based on which other options are provided;
// this remains for back-compat, and for disabling any existing RPC options.
Enabled *bool `yaml:"enabled"`
// ListenAddress is the RPC server listen address.
ListenAddress string `yaml:"listenAddress"`
// Remotes are the configuration settings for remote coordinator zones.
Remotes RemoteConfigurations `yaml:"remotes"`
// RemoteListenAddresses is the remote listen addresses to call for
// remote coordinator calls.
//
// NB: this is deprecated in favor of using RemoteZones, as setting
// RemoteListenAddresses will only allow for a single remote zone to be used.
RemoteListenAddresses []string `yaml:"remoteListenAddresses"`
// ErrorBehavior overrides the default error behavior for all rpc hosts.
//
// NB: defaults to warning on error.
ErrorBehavior *storage.ErrorBehavior `yaml:"errorBehavior"`
// ReflectionEnabled will enable reflection on the GRPC server, useful
// for testing connectivity with grpcurl, etc.
ReflectionEnabled bool `yaml:"reflectionEnabled"`
}
RPCConfiguration is the RPC configuration for the coordinator for the GRPC server used for remote coordinator to coordinator calls.
type Remote ¶ added in v0.10.0
type Remote struct {
// ErrorBehavior describes what this remote client should do on error.
ErrorBehavior storage.ErrorBehavior
// Name is the name for this remote client.
Name string
// Addresses are the remote addresses for this client.
Addresses []string
}
Remote is an option for remote storage.
type RemoteConfiguration ¶ added in v0.13.0
type RemoteConfiguration struct {
// Name is the name for the remote zone.
Name string `yaml:"name"`
// RemoteListenAddresses is the remote listen addresses to call for remote
// coordinator calls in the remote zone.
RemoteListenAddresses []string `yaml:"remoteListenAddresses"`
// ErrorBehavior overrides the default error behavior for this host.
//
// NB: defaults to warning on error.
ErrorBehavior *storage.ErrorBehavior `yaml:"errorBehavior"`
}
RemoteConfiguration is the configuration for a single remote host.
type RemoteConfigurations ¶ added in v0.13.0
type RemoteConfigurations []RemoteConfiguration
RemoteConfigurations is a set of remote host configurations.
type RemoteOptions ¶ added in v0.13.0
type RemoteOptions interface {
// ServeEnabled describes if this RPC should serve rpc requests.
ServeEnabled() bool
// ServeAddress describes the address this RPC server will listening on.
ServeAddress() string
// ListenEnabled describes if this RPC should connect to remote clients.
ListenEnabled() bool
// ReflectionEnabled describes if this RPC server should have reflection
// enabled.
ReflectionEnabled() bool
// Remotes is a list of remote clients.
Remotes() []Remote
}
RemoteOptions are the options for RPC configurations.
func RemoteOptionsFromConfig ¶ added in v0.13.0
func RemoteOptionsFromConfig(cfg *RPCConfiguration) RemoteOptions
RemoteOptionsFromConfig builds remote options given a set of configs.
type ResultOptions ¶ added in v0.7.1
type ResultOptions struct {
// KeepNans keeps NaNs before returning query results.
// The default is false, which matches Prometheus
KeepNans bool `yaml:"keepNans"`
}
ResultOptions are the result options for query.
type TagOptionsConfiguration ¶ added in v0.4.8
type TagOptionsConfiguration struct {
// MetricName specifies the tag name that corresponds to the metric's name tag
// If not provided, defaults to `__name__`.
MetricName string `yaml:"metricName"`
// BucketName specifies the tag name that corresponds to the metric's bucket.
// If not provided, defaults to `le`.
BucketName string `yaml:"bucketName"`
// Scheme determines the default ID generation scheme. Defaults to TypeLegacy.
Scheme models.IDSchemeType `yaml:"idScheme"`
}
TagOptionsConfiguration is the configuration for shared tag options Currently only name, but can expand to cover deduplication settings, or other relevant options.
type WriteForwardingConfiguration ¶ added in v0.13.0
type WriteForwardingConfiguration struct {
PromRemoteWrite remote.PromWriteHandlerForwardingOptions `yaml:"promRemoteWrite"`
}
WriteForwardingConfiguration is the write forwarding configuration.