telemetry

package
v0.2.1 Latest Latest
Warning

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

Go to latest
Published: Apr 29, 2024 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// Welcome is displayed the first time the telemetry config is created.
	Welcome = `` /* 145-byte string literal not displayed */

)

Variables

View Source
var ConfigFile = filepath.Join(".airbyte", "analytics.yml")

Functions

This section is empty.

Types

type Client

type Client interface {
	// Start should be called as soon quickly as possible.
	Start(EventType) error
	// Success should be called only if the activity succeeded.
	Success(EventType) error
	// Failure should be called only if the activity failed.
	Failure(EventType, error) error
	// Attr should be called to add additional attributes to this activity.
	Attr(key, val string)
}

Client interface for telemetry data.

func Get added in v0.2.0

func Get(opts ...GetOption) Client

Get returns the already configured telemetry Client or configures a new one returning it. If a previously configured Client exists, that one will be returned.

type Config

type Config struct {
	UserID ULID `yaml:"anonymous_user_id"`
}

Config represents the analytics.yaml file.

type EventState

type EventState string
const (
	Start   EventState = "started"
	Failed  EventState = "failed"
	Success EventState = "succeeded"
)

type EventType

type EventType string
const (
	Install   EventType = "install"
	Uninstall EventType = "uninstall"
)

type GetOption added in v0.2.0

type GetOption func(*getConfig)

GetOption is for optional configuration of the Get call.

func WithDnt added in v0.2.0

func WithDnt() GetOption

WithDnt tells the Get call to enable the do-not-track configuration.

func WithUserHome added in v0.2.0

func WithUserHome(userHome string) GetOption

WithUserHome tells the Get call which directory should be considered the user's home. Primary for testing purposes.

type NoopClient

type NoopClient struct {
}

NoopClient client, all methods are no-ops.

func (NoopClient) Attr

func (n NoopClient) Attr(_, _ string)

func (NoopClient) Failure

func (n NoopClient) Failure(_ EventType, _ error) error

func (NoopClient) Start

func (n NoopClient) Start(EventType) error

func (NoopClient) Success

func (n NoopClient) Success(EventType) error

type SegmentClient

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

SegmentClient client, all methods communicate with segment.

func NewSegmentClient

func NewSegmentClient(cfg Config) *SegmentClient

func (*SegmentClient) Attr

func (s *SegmentClient) Attr(key, val string)

func (*SegmentClient) Failure

func (s *SegmentClient) Failure(et EventType, err error) error

func (*SegmentClient) Start

func (s *SegmentClient) Start(et EventType) error

func (*SegmentClient) Success

func (s *SegmentClient) Success(et EventType) error

type ULID

type ULID ulid.ULID

ULID is a wrapper around ulid.ULID so that we can implement the yaml interfaces.

func NewULID

func NewULID() ULID

NewULID returns a new randomized ULID.

func (ULID) MarshalYAML

func (u ULID) MarshalYAML() (any, error)

MarshalYAML allows for converting a ULID into a yaml field.

func (ULID) String

func (u ULID) String() string

String returns a string representation of this ULID.

func (*ULID) UnmarshalYAML

func (u *ULID) UnmarshalYAML(node *yaml.Node) error

UnmarshalYAML allows for converting a yaml field into a ULID.

Jump to

Keyboard shortcuts

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