Documentation
¶
Index ¶
Constants ¶
const ( // ProviderSegment represents Segment. ProviderSegment = "segment" // ProviderRudderstack represents Rudderstack. ProviderRudderstack = "rudderstack" // ProviderPostHog represents PostHog. ProviderPostHog = "posthog" )
Variables ¶
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 ¶
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.
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.