telemetry

package
v0.22.0 Latest Latest
Warning

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

Go to latest
Published: Nov 12, 2024 License: MIT Imports: 19 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Start   EventState = "started"
	Failed             = "failed"
	Success            = "succeeded"
)
View Source
const (
	Credentials EventType = "credentials"
	Deployments           = "deployments"
	Install               = "install"
	Migrate               = "migrate"
	Status                = "status"
	Uninstall             = "uninstall"
)
View Source
const (
	// Welcome is displayed the first time the telemetry config is created.
	Welcome = `` /* 141-byte string literal not displayed */

)

Variables

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

Functions

func DNT added in v0.8.0

func DNT() bool

DNT returns the status of the DO_NOT_TRACK flag If this flag is enabled, no telemetry data will be collected

Types

type Client

type Client interface {
	// Start should be called as quickly as possible.
	Start(context.Context, EventType) error
	// Success should be called only if the activity succeeded.
	Success(context.Context, EventType) error
	// Failure should be called only if the activity failed.
	Failure(context.Context, EventType, error) error
	// Attr should be called to add additional attributes to this activity.
	Attr(key, val string)
	// User returns the user identifier being used by this client
	User() string
	// Wrap wraps the func() error with the EventType,
	// calling the Start, Failure or Success methods correctly based on
	// the behavior of the func() error
	Wrap(context.Context, EventType, func() error) error
}

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,omitempty"`
	AnalyticsID UUID                   `yaml:"analytics_id,omitempty"`
	Other       map[string]interface{} `yaml:",inline"`
}

Config represents the analytics.yaml file.

type Doer added in v0.3.0

type Doer interface {
	Do(req *http.Request) (*http.Response, error)
}

Doer interface for testing purposes

type EventState

type EventState string

type EventType

type EventType string

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.8.0

func WithDNT() GetOption

WithDNT tells the Get call to enable the do-not-track configuration. If the DNT method returns true, there method is implicitly called. This method exists to explicitly ensuring the client is running in dnt mode

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 MockClient added in v0.19.0

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

func (*MockClient) Attr added in v0.19.0

func (m *MockClient) Attr(key, val string)

func (*MockClient) Failure added in v0.19.0

func (m *MockClient) Failure(ctx context.Context, eventType EventType, err error) error

func (*MockClient) Start added in v0.19.0

func (m *MockClient) Start(ctx context.Context, eventType EventType) error

func (*MockClient) Success added in v0.19.0

func (m *MockClient) Success(ctx context.Context, eventType EventType) error

func (*MockClient) User added in v0.19.0

func (m *MockClient) User() string

func (*MockClient) Wrap added in v0.19.0

func (m *MockClient) Wrap(ctx context.Context, et EventType, f func() error) error

type NoopClient

type NoopClient struct {
}

NoopClient client, all methods are no-ops.

func (NoopClient) Attr

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

func (NoopClient) Failure

func (NoopClient) Start

func (NoopClient) Success

func (NoopClient) User added in v0.5.0

func (n NoopClient) User() string

func (NoopClient) Wrap added in v0.8.0

func (n NoopClient) Wrap(ctx context.Context, et EventType, f func() error) error

type Option added in v0.3.0

type Option func(*SegmentClient)

Option is a configuration option for segment

func WithHTTPClient added in v0.3.0

func WithHTTPClient(d Doer) Option

WithHTTPClient overrides the default http.Client, primarily for testing purposes.

func WithSessionID added in v0.3.0

func WithSessionID(sessionID uuid.UUID) Option

WithSessionID overrides the default uuid session, primarily for testing purposes.

type SegmentClient

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

SegmentClient client, all methods communicate with segment.

func NewSegmentClient

func NewSegmentClient(cfg Config, opts ...Option) *SegmentClient

func (*SegmentClient) Attr

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

func (*SegmentClient) Failure

func (s *SegmentClient) Failure(ctx context.Context, et EventType, err error) error

func (*SegmentClient) Start

func (s *SegmentClient) Start(ctx context.Context, et EventType) error

func (*SegmentClient) Success

func (s *SegmentClient) Success(ctx context.Context, et EventType) error

func (*SegmentClient) User added in v0.5.0

func (s *SegmentClient) User() string

func (*SegmentClient) Wrap added in v0.8.0

func (s *SegmentClient) Wrap(ctx context.Context, et EventType, f func() error) (res error)

type ULID

type ULID ulid.ULID

ULID is a wrapper around ulid.ULID so that we can implement the yaml interfaces. Deprecated: use UUID instead

func NewULID

func NewULID() ULID

NewULID returns a new randomized ULID.

func (ULID) IsZero added in v0.5.0

func (u ULID) IsZero() bool

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.

type UUID added in v0.5.0

type UUID uuid.UUID

UUID is a wrapper around uuid.UUID so that we can implement the yaml interfaces.

func NewUUID added in v0.5.0

func NewUUID() UUID

NewUUID returns a new randomized UUID.

func (UUID) IsZero added in v0.5.0

func (u UUID) IsZero() bool

IsZero implements the yaml interface, used to treat a uuid.Nil as empty for yaml purposes

func (UUID) MarshalYAML added in v0.5.0

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

func (UUID) String added in v0.5.0

func (u UUID) String() string

String returns a string representation of this UUID.

func (*UUID) UnmarshalYAML added in v0.5.0

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

Jump to

Keyboard shortcuts

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