analyticscfg

package
v2.0.2 Latest Latest
Warning

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

Go to latest
Published: Mar 23, 2026 License: AGPL-3.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// ProviderSegment represents Segment.
	ProviderSegment = "segment"
	// ProviderRudderstack represents Rudderstack.
	ProviderRudderstack = "rudderstack"
	// ProviderPostHog represents PostHog.
	ProviderPostHog = "posthog"
)

Variables

View Source
var (
	// Providers are what we provide to dependency injection.
	Providers = wire.NewSet(
		ProvideEventReporter,
	)
)

Functions

func ProvideEventReporter

func ProvideEventReporter(ctx context.Context, cfg *Config, logger logging.Logger, tracerProvider tracing.TracerProvider, metricsProvider metrics.Provider) (analytics.EventReporter, error)

ProvideEventReporter provides an analytics.EventReporter from a config.

func RegisterEventReporter

func RegisterEventReporter(i do.Injector)

RegisterEventReporter registers an analytics.EventReporter with the injector.

Types

type Config

type Config struct {
	ProxySources ProxySourcesConfig `envPrefix:"PROXY_SOURCES_" json:"proxySources"`
	SourceConfig
}

Config is the configuration structure.

func (*Config) EnsureDefaults

func (cfg *Config) EnsureDefaults()

EnsureDefaults sets sensible defaults for zero-valued fields.

func (*Config) ValidateWithContext

func (cfg *Config) ValidateWithContext(ctx context.Context) error

ValidateWithContext validates a Config struct.

type ProxySourcesConfig

type ProxySourcesConfig struct {
	IOS *SourceConfig `env:",init" envPrefix:"IOS_" json:"ios"`
	Web *SourceConfig `env:",init" envPrefix:"WEB_" json:"web"`
}

ProxySourcesConfig holds per-source analytics config for the analytics proxy gRPC service. Sources are codified: ios and web.

func (ProxySourcesConfig) ToMap

func (p ProxySourcesConfig) ToMap() map[string]*SourceConfig

ToMap returns a map of source name to config for use by the multisource reporter. Skips nil entries.

type SourceConfig

type SourceConfig struct {
	Segment        *segment.Config        `env:",init"                  envPrefix:"SEGMENT_"     json:"segment"`
	Posthog        *posthog.Config        `env:",init"                  envPrefix:"POSTHOG_"     json:"posthog"`
	Rudderstack    *rudderstack.Config    `env:",init"                  envPrefix:"RUDDERSTACK_" json:"rudderstack"`
	Provider       string                 `env:"PROVIDER"               json:"provider"`
	CircuitBreaker circuitbreaking.Config `envPrefix:"CIRCUIT_BREAKER_" json:"circuitBreaker"`
}

SourceConfig is the per-source analytics config (provider + credentials). Used for proxy sources; no ProxySources to avoid recursion.

func (*SourceConfig) EnsureDefaults

func (cfg *SourceConfig) EnsureDefaults()

EnsureDefaults sets sensible defaults for zero-valued fields.

func (*SourceConfig) ProvideCollector

func (cfg *SourceConfig) ProvideCollector(
	ctx context.Context,
	logger logging.Logger,
	tracerProvider tracing.TracerProvider,
	metricsProvider metrics.Provider,
) (analytics.EventReporter, error)

ProvideCollector provides a collector.

Jump to

Keyboard shortcuts

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