m3

package
v0.4.6 Latest Latest
Warning

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

Go to latest
Published: Oct 5, 2018 License: Apache-2.0 Imports: 20 Imported by: 11

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AggregatedClusterNamespaceDefinition

type AggregatedClusterNamespaceDefinition struct {
	NamespaceID ident.ID
	Session     client.Session
	Retention   time.Duration
	Resolution  time.Duration
	Downsample  *ClusterNamespaceDownsampleOptions
}

AggregatedClusterNamespaceDefinition is a definition for a cluster namespace that holds aggregated metrics data at a specific retention and resolution.

func (AggregatedClusterNamespaceDefinition) Validate

Validate validates the cluster namespace definition.

type Cleanup

type Cleanup func() error

Cleanup is a cleanup function to be called after resources are freed

type ClusterNamespace

type ClusterNamespace interface {
	NamespaceID() ident.ID
	Options() ClusterNamespaceOptions
	Session() client.Session
}

ClusterNamespace is a local storage cluster namespace.

type ClusterNamespaceDownsampleOptions

type ClusterNamespaceDownsampleOptions struct {
	All bool
}

ClusterNamespaceDownsampleOptions is the downsample options for a cluster namespace.

type ClusterNamespaceOptions

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

ClusterNamespaceOptions is a set of options

func (ClusterNamespaceOptions) Attributes

Attributes returns the storage attributes of the cluster namespace.

func (ClusterNamespaceOptions) DownsampleOptions

DownsampleOptions returns the downsample options for a cluster namespace, which is only valid if the namespace is an aggregated cluster namespace.

type ClusterNamespaces

type ClusterNamespaces []ClusterNamespace

ClusterNamespaces is a slice of ClusterNamespace instances.

func (ClusterNamespaces) NumAggregatedClusterNamespaces

func (n ClusterNamespaces) NumAggregatedClusterNamespaces() int

NumAggregatedClusterNamespaces returns the number of aggregated cluster namespaces.

type ClusterNamespacesByResolutionAsc added in v0.4.6

type ClusterNamespacesByResolutionAsc []ClusterNamespace

ClusterNamespacesByResolutionAsc is a slice of ClusterNamespace instances is sortable by resolution.

func (ClusterNamespacesByResolutionAsc) Len added in v0.4.6

func (ClusterNamespacesByResolutionAsc) Less added in v0.4.6

func (ClusterNamespacesByResolutionAsc) Swap added in v0.4.6

type ClusterNamespacesByRetentionAsc added in v0.4.6

type ClusterNamespacesByRetentionAsc []ClusterNamespace

ClusterNamespacesByRetentionAsc is a slice of ClusterNamespace instances is sortable by retention.

func (ClusterNamespacesByRetentionAsc) Len added in v0.4.6

func (ClusterNamespacesByRetentionAsc) Less added in v0.4.6

func (ClusterNamespacesByRetentionAsc) Swap added in v0.4.6

func (a ClusterNamespacesByRetentionAsc) Swap(i, j int)

type ClusterStaticConfiguration

type ClusterStaticConfiguration struct {
	NewClientFromConfig NewClientFromConfig
	Namespaces          []ClusterStaticNamespaceConfiguration `yaml:"namespaces"`
	Client              client.Configuration                  `yaml:"client"`
}

ClusterStaticConfiguration is a static cluster configuration.

type ClusterStaticNamespaceConfiguration

type ClusterStaticNamespaceConfiguration struct {
	// Namespace is namespace in the cluster that is specified.
	Namespace string `yaml:"namespace"`

	// Type is the type of values stored by the namespace, current
	// supported values are "unaggregated" or "aggregated".
	Type storage.MetricsType `yaml:"type"`

	// Retention is the length of which values are stored by the namespace.
	Retention time.Duration `yaml:"retention" validate:"nonzero"`

	// Resolution is the frequency of which values are stored by the namespace.
	Resolution time.Duration `yaml:"resolution" validate:"min=0"`

	// Downsample is the configuration for downsampling options to use with
	// the namespace.
	Downsample *DownsampleClusterStaticNamespaceConfiguration `yaml:"downsample"`

	// StorageMetricsType is the namespace type.
	//
	// Deprecated: Use "Type" field when specifying config instead, it is
	// invalid to use both.
	StorageMetricsType storage.MetricsType `yaml:"storageMetricsType"`
}

ClusterStaticNamespaceConfiguration describes the namespaces in a static cluster.

type Clusters

type Clusters interface {
	io.Closer

	// ClusterNamespaces returns all known cluster namespaces.
	ClusterNamespaces() ClusterNamespaces

	// UnaggregatedClusterNamespace returns the valid unaggregated
	// cluster namespace.
	UnaggregatedClusterNamespace() ClusterNamespace

	// AggregatedClusterNamespace returns an aggregated cluster namespace
	// at a specific retention and resolution.
	AggregatedClusterNamespace(attrs RetentionResolution) (ClusterNamespace, bool)
}

Clusters is a flattened collection of local storage clusters and namespaces.

func NewClusters

func NewClusters(
	unaggregatedClusterNamespace UnaggregatedClusterNamespaceDefinition,
	aggregatedClusterNamespaces ...AggregatedClusterNamespaceDefinition,
) (Clusters, error)

NewClusters instantiates a new Clusters instance.

type ClustersStaticConfiguration

type ClustersStaticConfiguration []ClusterStaticConfiguration

ClustersStaticConfiguration is a set of static cluster configurations.

func (ClustersStaticConfiguration) NewClusters

NewClusters instantiates a new Clusters instance.

type ClustersStaticConfigurationOptions

type ClustersStaticConfigurationOptions struct {
	AsyncSessions bool
}

ClustersStaticConfigurationOptions are options to use when constructing clusters from config.

type DownsampleClusterStaticNamespaceConfiguration

type DownsampleClusterStaticNamespaceConfiguration struct {
	All bool `yaml:"all"`
}

DownsampleClusterStaticNamespaceConfiguration is configuration specified for downsampling options on an aggregated cluster namespace.

type NewClientFromConfig

type NewClientFromConfig func(
	cfg client.Configuration,
	params client.ConfigurationParameters,
	custom ...client.CustomOption,
) (client.Client, error)

NewClientFromConfig is a method that can be set on ClusterStaticConfiguration to allow overriding the client initialization.

type Querier

type Querier interface {
	// FetchRaw fetches timeseries data based on a query
	FetchRaw(
		ctx context.Context,
		query *genericstorage.FetchQuery,
		options *genericstorage.FetchOptions,
	) (encoding.SeriesIterators, Cleanup, error)
}

Querier handles queries against an M3 instance.

type RetentionResolution

type RetentionResolution struct {
	Retention  time.Duration
	Resolution time.Duration
}

RetentionResolution is a tuple of retention and resolution that describes an aggregated metrics policy.

type Storage

type Storage interface {
	genericstorage.Storage
	Querier
}

Storage provides an interface for reading and writing to the tsdb

func NewStorage

func NewStorage(
	clusters Clusters,
	readWorkerPool pool.ObjectPool,
	writeWorkerPool xsync.PooledWorkerPool,
) Storage

NewStorage creates a new local m3storage instance. TODO: Consider combining readWorkerPool and writeWorkerPool

type UnaggregatedClusterNamespaceDefinition

type UnaggregatedClusterNamespaceDefinition struct {
	NamespaceID ident.ID
	Session     client.Session
	Retention   time.Duration
}

UnaggregatedClusterNamespaceDefinition is the definition for the cluster namespace that holds unaggregated metrics data.

func (UnaggregatedClusterNamespaceDefinition) Validate

Validate will validate the cluster namespace definition.

Jump to

Keyboard shortcuts

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