config

package
v1.0.0-beta.7 Latest Latest
Warning

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

Go to latest
Published: Sep 12, 2023 License: Apache-2.0 Imports: 27 Imported by: 0

Documentation

Overview

Package config loads application configuration.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Configure

func Configure(v *viper.Viper, flags *pflag.FlagSet)

Configure configures some defaults in the Viper instance.

func ConfigureAggregation

func ConfigureAggregation(v *viper.Viper)

ConfigureAggregation configures some defaults in the Viper instance.

func ConfigureDedupe

func ConfigureDedupe(v *viper.Viper)

ConfigureDedupe configures some defaults in the Viper instance.

func ConfigureIngest

func ConfigureIngest(v *viper.Viper)

Configure configures some defaults in the Viper instance.

func ConfigureNamespace

func ConfigureNamespace(v *viper.Viper)

ConfigureNamespace configures some defaults in the Viper instance.

func DecodeHook

func DecodeHook() mapstructure.DecodeHookFunc

Types

type AggregationConfiguration

type AggregationConfiguration struct {
	ClickHouse ClickHouseAggregationConfiguration
}

func (AggregationConfiguration) Validate

func (c AggregationConfiguration) Validate() error

Validate validates the configuration.

type ClickHouseAggregationConfiguration

type ClickHouseAggregationConfiguration struct {
	Address  string
	TLS      bool
	Username string
	Password string
	Database string
}

func (ClickHouseAggregationConfiguration) Validate

type ClickHouseConnectorTypeKafkaConnectSinkConfiguration

type ClickHouseConnectorTypeKafkaConnectSinkConfiguration struct {
	Hostname string
	Port     int
	SSL      bool
	Username string
	Password string
	Database string

	DeadLetterQueue DeadLetterQueueKafkaConnectSinkConfiguration
}

This may feel repetative but clikhouse sink and aggregation configs can be different, for example Kafka Connect ClickHouse plugin uses 8123 HTTP port while client uses native protocol's 9000 port. Hostname can be also different, as Kafka Connect and ClickHouse communicates inside the docker compose network.

func (ClickHouseConnectorTypeKafkaConnectSinkConfiguration) ConnectorConfig

func (ClickHouseConnectorTypeKafkaConnectSinkConfiguration) Validate

type Configuration

type Configuration struct {
	Address     string
	Environment string

	Telemetry TelemetryConfig

	Namespace   NamespaceConfiguration
	Ingest      IngestConfiguration
	Aggregation AggregationConfiguration
	Sink        SinkConfiguration
	Dedupe      DedupeConfiguration

	Meters []*models.Meter
}

Configuration holds any kind of Configuration that comes from the outside world and is necessary for running the application.

func (Configuration) Validate

func (c Configuration) Validate() error

Validate validates the configuration.

type ConnectorKafkaConnectSinkConfiguration

type ConnectorKafkaConnectSinkConfiguration struct {
	Name string

	ConnectorTypeKafkaConnectSinkConfiguration
}

func (ConnectorKafkaConnectSinkConfiguration) ConnectorConfig

func (c ConnectorKafkaConnectSinkConfiguration) ConnectorConfig() (map[string]string, error)

func (*ConnectorKafkaConnectSinkConfiguration) DecodeMap

func (ConnectorKafkaConnectSinkConfiguration) Validate

type ConnectorTypeKafkaConnectSinkConfiguration

type ConnectorTypeKafkaConnectSinkConfiguration interface {
	ConnectorConfig() (map[string]string, error)
	Validate() error
}

type DeadLetterQueueKafkaConnectSinkConfiguration

type DeadLetterQueueKafkaConnectSinkConfiguration struct {
	TopicName         string
	ReplicationFactor int
	ContextHeaders    bool
}

Clickhouse configuration See: https://docs.confluent.io/platform/current/installation/configuration/connect/sink-connect-configs.html

func (DeadLetterQueueKafkaConnectSinkConfiguration) Validate

type DedupeConfiguration

type DedupeConfiguration struct {
	Enabled bool

	DedupeDriverConfiguration
}

Requires mapstructurex.MapDecoderHookFunc to be high up in the decode hook chain.

func (*DedupeConfiguration) DecodeMap

func (c *DedupeConfiguration) DecodeMap(v map[string]any) error

func (DedupeConfiguration) NewDeduplicator

func (c DedupeConfiguration) NewDeduplicator() (ingest.Deduplicator, error)

func (DedupeConfiguration) Validate

func (c DedupeConfiguration) Validate() error

type DedupeDriverConfiguration

type DedupeDriverConfiguration interface {
	DriverName() string
	NewDeduplicator() (ingest.Deduplicator, error)
	Validate() error
}

type DedupeDriverMemoryConfiguration

type DedupeDriverMemoryConfiguration struct {
	Enabled bool
	Size    int
}

Dedupe memory driver configuration

func (DedupeDriverMemoryConfiguration) DriverName

func (DedupeDriverMemoryConfiguration) NewDeduplicator

func (DedupeDriverMemoryConfiguration) Validate

type DedupeDriverRedisConfiguration

type DedupeDriverRedisConfiguration struct {
	Address    string
	Database   int
	Username   string
	Password   string
	Expiration time.Duration
	Sentinel   struct {
		Enabled    bool
		MasterName string
	}
	TLS struct {
		Enabled            bool
		InsecureSkipVerify bool
	}
}

Dedupe redis driver configuration

func (DedupeDriverRedisConfiguration) DriverName

func (DedupeDriverRedisConfiguration) NewDeduplicator

func (DedupeDriverRedisConfiguration) Validate

type ExporterTraceTelemetryConfig

type ExporterTraceTelemetryConfig struct {
	Enabled bool
	Address string
}

func (ExporterTraceTelemetryConfig) GetExporter

func (ExporterTraceTelemetryConfig) Validate

func (c ExporterTraceTelemetryConfig) Validate() error

Validate validates the configuration.

type IngestConfiguration

type IngestConfiguration struct {
	Kafka KafkaIngestConfiguration
}

func (IngestConfiguration) Validate

func (c IngestConfiguration) Validate() error

Validate validates the configuration.

type KafkaConnectSinkConfiguration

type KafkaConnectSinkConfiguration struct {
	Enabled bool
	URL     string

	Connectors []ConnectorKafkaConnectSinkConfiguration
}

func (KafkaConnectSinkConfiguration) Validate

func (c KafkaConnectSinkConfiguration) Validate() error

type KafkaIngestConfiguration

type KafkaIngestConfiguration struct {
	Broker              string
	SecurityProtocol    string
	SaslMechanisms      string
	SaslUsername        string
	SaslPassword        string
	Partitions          int
	EventsTopicTemplate string
}

func (KafkaIngestConfiguration) CreateKafkaConfig

func (c KafkaIngestConfiguration) CreateKafkaConfig() kafka.ConfigMap

CreateKafkaConfig creates a Kafka config map.

func (KafkaIngestConfiguration) Validate

func (c KafkaIngestConfiguration) Validate() error

Validate validates the configuration.

type LogTelemetryConfiguration

type LogTelemetryConfiguration struct {
	// Format specifies the output log format.
	// Accepted values are: json, text
	Format string

	// Level is the minimum log level that should appear on the output.
	//
	// Requires [mapstructure.TextUnmarshallerHookFunc] to be high up in the decode hook chain.
	Level slog.Level
}

func (LogTelemetryConfiguration) NewHandler

NewHandler creates a new slog.Handler.

func (LogTelemetryConfiguration) Validate

func (c LogTelemetryConfiguration) Validate() error

Validate validates the configuration.

type NamespaceConfiguration

type NamespaceConfiguration struct {
	Default           string
	DisableManagement bool
}

Namespace configuration

func (NamespaceConfiguration) Validate

func (c NamespaceConfiguration) Validate() error

type SinkConfiguration

type SinkConfiguration struct {
	KafkaConnect KafkaConnectSinkConfiguration
}

func (SinkConfiguration) Validate

func (c SinkConfiguration) Validate() error

type TelemetryConfig

type TelemetryConfig struct {
	// Telemetry HTTP server address
	Address string

	Trace TraceTelemetryConfig

	Log LogTelemetryConfiguration
}

func (TelemetryConfig) Validate

func (c TelemetryConfig) Validate() error

Validate validates the configuration.

type TraceTelemetryConfig

type TraceTelemetryConfig struct {
	Exporter ExporterTraceTelemetryConfig
	Sampler  string
}

func (TraceTelemetryConfig) GetSampler

func (c TraceTelemetryConfig) GetSampler() sdktrace.Sampler

func (TraceTelemetryConfig) Validate

func (c TraceTelemetryConfig) Validate() error

Validate validates the configuration.

Jump to

Keyboard shortcuts

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