Documentation ¶
Index ¶
- Constants
- Variables
- type Factory
- func (f *Factory) AddFlags(flagSet *flag.FlagSet)
- func (f *Factory) Close() error
- func (f *Factory) CreateArchiveSpanReader() (spanstore.Reader, error)
- func (f *Factory) CreateArchiveSpanWriter() (spanstore.Writer, error)
- func (f *Factory) CreateDependencyReader() (dependencystore.Reader, error)
- func (f *Factory) CreateSpanReader() (spanstore.Reader, error)
- func (f *Factory) CreateSpanWriter() (spanstore.Writer, error)
- func (f *Factory) InitFromViper(v *viper.Viper)
- func (f *Factory) Initialize(metricsFactory metrics.Factory, logger *zap.Logger) error
- type FactoryConfig
Constants ¶
const ( // SpanStorageTypeEnvVar is the name of the env var that defines the type of backend used for span storage. SpanStorageTypeEnvVar = "SPAN_STORAGE_TYPE" // DependencyStorageTypeEnvVar is the name of the env var that defines the type of backend used for dependencies storage. DependencyStorageTypeEnvVar = "DEPENDENCY_STORAGE_TYPE" )
Variables ¶
var AllStorageTypes = []string{cassandraStorageType, elasticsearchStorageType, memoryStorageType, kafkaStorageType, badgerStorageType, grpcPluginStorageType}
AllStorageTypes defines all available storage backends
Functions ¶
This section is empty.
Types ¶
type Factory ¶
type Factory struct { FactoryConfig // contains filtered or unexported fields }
Factory implements storage.Factory interface as a meta-factory for storage components.
func NewFactory ¶
func NewFactory(config FactoryConfig) (*Factory, error)
NewFactory creates the meta-factory.
func (*Factory) CreateArchiveSpanReader ¶
CreateArchiveSpanReader implements storage.ArchiveFactory
func (*Factory) CreateArchiveSpanWriter ¶
CreateArchiveSpanWriter implements storage.ArchiveFactory
func (*Factory) CreateDependencyReader ¶
func (f *Factory) CreateDependencyReader() (dependencystore.Reader, error)
CreateDependencyReader implements storage.Factory
func (*Factory) CreateSpanReader ¶
CreateSpanReader implements storage.Factory.
func (*Factory) CreateSpanWriter ¶
CreateSpanWriter implements storage.Factory.
func (*Factory) InitFromViper ¶
InitFromViper implements plugin.Configurable
type FactoryConfig ¶
type FactoryConfig struct { SpanWriterTypes []string SpanReaderType string DependenciesStorageType string DownsamplingRatio float64 DownsamplingHashSalt string }
FactoryConfig tells the Factory which types of backends it needs to create for different storage types.
func FactoryConfigFromEnvAndCLI ¶
func FactoryConfigFromEnvAndCLI(args []string, log io.Writer) FactoryConfig
FactoryConfigFromEnvAndCLI reads the desired types of storage backends from SPAN_STORAGE_TYPE and DEPENDENCY_STORAGE_TYPE environment variables. Allowed values:
- `cassandra` - built-in
- `elasticsearch` - built-in
- `memory` - built-in
- `kafka` - built-in
- `plugin` - loads a dynamic plugin that implements storage.Factory interface (not supported at the moment)
For backwards compatibility it also parses the args looking for deprecated --span-storage.type flag. If found, it writes a deprecation warning to the log.