analytics

package
v1.87.1 Latest Latest
Warning

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

Go to latest
Published: Sep 5, 2023 License: AGPL-3.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// Error is the default error class the analytics package.
	Error = errs.Class("analytics service")
)

Functions

This section is empty.

Types

type Config

type Config struct {
	SegmentWriteKey string `help:"segment write key" default:""`
	Enabled         bool   `help:"enable analytics reporting" default:"false"`
	HubSpot         HubSpotConfig
}

Config is a configuration struct for analytics Service.

type FreezeTracker added in v1.78.1

type FreezeTracker interface {
	// TrackAccountFrozen sends an account frozen event to Segment.
	TrackAccountFrozen(userID uuid.UUID, email string)

	// TrackAccountUnfrozen sends an account unfrozen event to Segment.
	TrackAccountUnfrozen(userID uuid.UUID, email string)

	// TrackAccountUnwarned sends an account unwarned event to Segment.
	TrackAccountUnwarned(userID uuid.UUID, email string)

	// TrackAccountFreezeWarning sends an account freeze warning event to Segment.
	TrackAccountFreezeWarning(userID uuid.UUID, email string)

	// TrackLargeUnpaidInvoice sends an event to Segment indicating that a user has not paid a large invoice.
	TrackLargeUnpaidInvoice(invID string, userID uuid.UUID, email string)

	// TrackStorjscanUnpaidInvoice sends an event to Segment indicating that a user has not paid an invoice, but has storjscan transaction history.
	TrackStorjscanUnpaidInvoice(invID string, userID uuid.UUID, email string)
}

FreezeTracker is an interface for account freeze event tracking methods.

type HubSpotConfig added in v1.45.2

type HubSpotConfig struct {
	RefreshToken    string        `help:"hubspot refresh token" default:""`
	TokenAPI        string        `help:"hubspot token refresh API" default:"https://api.hubapi.com/oauth/v1/token"`
	ClientID        string        `help:"hubspot client ID" default:""`
	ClientSecret    string        `help:"hubspot client secret" default:""`
	ChannelSize     int           `help:"the number of events that can be in the queue before dropping" default:"1000"`
	ConcurrentSends int           `help:"the number of concurrent api requests that can be made" default:"4"`
	DefaultTimeout  time.Duration `help:"the default timeout for the hubspot http client" default:"10s"`
}

HubSpotConfig is a configuration struct for Concurrent Sending of Events.

type HubSpotEvent added in v1.45.2

type HubSpotEvent struct {
	Data     map[string]interface{}
	Endpoint string
}

HubSpotEvent is a configuration struct for sending API request to HubSpot.

type HubSpotEvents added in v1.45.2

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

HubSpotEvents is a configuration struct for sending Events data to HubSpot.

func NewHubSpotEvents added in v1.45.2

func NewHubSpotEvents(log *zap.Logger, config HubSpotConfig, satelliteName string) *HubSpotEvents

NewHubSpotEvents for sending user events to HubSpot.

func (*HubSpotEvents) EnqueueCreateUser added in v1.45.2

func (q *HubSpotEvents) EnqueueCreateUser(fields TrackCreateUserFields)

EnqueueCreateUser for creating user in HubSpot.

func (*HubSpotEvents) EnqueueEvent added in v1.45.2

func (q *HubSpotEvents) EnqueueEvent(email, eventName string, properties map[string]interface{})

EnqueueEvent for sending user behavioral event to HubSpot.

func (*HubSpotEvents) Handle added in v1.45.2

func (q *HubSpotEvents) Handle(ctx context.Context, events []HubSpotEvent) (err error)

Handle for handle the HubSpot API requests.

func (*HubSpotEvents) Run added in v1.45.2

func (q *HubSpotEvents) Run(ctx context.Context) error

Run for concurrent API requests.

type Service

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

Service for sending analytics.

architecture: Service

func NewService

func NewService(log *zap.Logger, config Config, satelliteName string) *Service

NewService creates new service for creating sending analytics.

func (*Service) Close

func (service *Service) Close() error

Close closes the Segment client.

func (*Service) PageVisitEvent added in v1.58.1

func (service *Service) PageVisitEvent(pageName string, userID uuid.UUID, email string)

PageVisitEvent sends a page visit event associated with user ID to Segment. It is used for tracking occurrences of client-side events.

func (*Service) Run added in v1.45.2

func (service *Service) Run(ctx context.Context) error

Run runs the service and use the context in new requests.

func (*Service) TrackAccessGrantCreated added in v1.27.0

func (service *Service) TrackAccessGrantCreated(userID uuid.UUID, email string)

TrackAccessGrantCreated sends an "Access Grant Created" event to Segment.

func (*Service) TrackAccountFreezeWarning added in v1.74.1

func (service *Service) TrackAccountFreezeWarning(userID uuid.UUID, email string)

TrackAccountFreezeWarning sends an account freeze warning event to Segment.

func (*Service) TrackAccountFrozen added in v1.74.1

func (service *Service) TrackAccountFrozen(userID uuid.UUID, email string)

TrackAccountFrozen sends an account frozen event to Segment.

func (*Service) TrackAccountUnfrozen added in v1.75.2

func (service *Service) TrackAccountUnfrozen(userID uuid.UUID, email string)

TrackAccountUnfrozen sends an account unfrozen event to Segment.

func (*Service) TrackAccountUnwarned added in v1.76.1

func (service *Service) TrackAccountUnwarned(userID uuid.UUID, email string)

TrackAccountUnwarned sends an account unwarned event to Segment.

func (*Service) TrackAccountVerified added in v1.27.2

func (service *Service) TrackAccountVerified(userID uuid.UUID, email string)

TrackAccountVerified sends an "Account Verified" event to Segment.

func (*Service) TrackCreateUser

func (service *Service) TrackCreateUser(fields TrackCreateUserFields)

TrackCreateUser sends an "Account Created" event to Segment.

func (*Service) TrackCreditCardAdded added in v1.55.1

func (service *Service) TrackCreditCardAdded(userID uuid.UUID, email string)

TrackCreditCardAdded sends an "Credit Card Added" event to Segment.

func (*Service) TrackErrorEvent added in v1.70.1

func (service *Service) TrackErrorEvent(userID uuid.UUID, email string, source string)

TrackErrorEvent sends an arbitrary error event associated with user ID to Segment. It is used for tracking occurrences of client-side errors.

func (*Service) TrackEvent added in v1.27.0

func (service *Service) TrackEvent(eventName string, userID uuid.UUID, email string, customProps map[string]string)

TrackEvent sends an arbitrary event associated with user ID to Segment. It is used for tracking occurrences of client-side events.

func (*Service) TrackExpiredCreditNeedsRemoval added in v1.80.3

func (service *Service) TrackExpiredCreditNeedsRemoval(userID uuid.UUID, customerID, packagePlan string)

TrackExpiredCreditNeedsRemoval sends an "Expired Credit Needs Removal" event to Segment.

func (*Service) TrackExpiredCreditRemoved added in v1.80.3

func (service *Service) TrackExpiredCreditRemoved(userID uuid.UUID, customerID, packagePlan string)

TrackExpiredCreditRemoved sends an "Expired Credit Removed" event to Segment.

func (*Service) TrackLargeUnpaidInvoice added in v1.74.1

func (service *Service) TrackLargeUnpaidInvoice(invID string, userID uuid.UUID, email string)

TrackLargeUnpaidInvoice sends an event to Segment indicating that a user has not paid a large invoice.

func (*Service) TrackLinkEvent added in v1.27.2

func (service *Service) TrackLinkEvent(eventName string, userID uuid.UUID, email, link string)

TrackLinkEvent sends an arbitrary event and link associated with user ID to Segment. It is used for tracking occurrences of client-side events.

func (*Service) TrackProjectCreated added in v1.27.0

func (service *Service) TrackProjectCreated(userID uuid.UUID, email string, projectID uuid.UUID, currentProjectCount int)

TrackProjectCreated sends an "Project Created" event to Segment.

func (*Service) TrackProjectLimitError added in v1.58.1

func (service *Service) TrackProjectLimitError(userID uuid.UUID, email string)

TrackProjectLimitError sends an "Project Limit Error" event to Segment.

func (*Service) TrackProjectMemberAddition added in v1.69.1

func (service *Service) TrackProjectMemberAddition(userID uuid.UUID, email string)

TrackProjectMemberAddition sends an "Project Member Added" event to Segment.

func (*Service) TrackProjectMemberDeletion added in v1.69.1

func (service *Service) TrackProjectMemberDeletion(userID uuid.UUID, email string)

TrackProjectMemberDeletion sends an "Project Member Deleted" event to Segment.

func (*Service) TrackSignedIn added in v1.27.0

func (service *Service) TrackSignedIn(userID uuid.UUID, email string)

TrackSignedIn sends an "Signed In" event to Segment.

func (*Service) TrackStorjTokenAdded added in v1.62.1

func (service *Service) TrackStorjTokenAdded(userID uuid.UUID, email string)

TrackStorjTokenAdded sends an "Storj Token Added" event to Segment.

func (*Service) TrackStorjscanUnpaidInvoice added in v1.83.2

func (service *Service) TrackStorjscanUnpaidInvoice(invID string, userID uuid.UUID, email string)

TrackStorjscanUnpaidInvoice sends an event to Segment indicating that a user has not paid an invoice, but has storjscan transaction history.

type TokenData added in v1.67.1

type TokenData struct {
	AccessToken string
	ExpiresAt   time.Time
}

TokenData contains data related to the Hubspot access token.

type TrackCreateUserFields

type TrackCreateUserFields struct {
	ID               uuid.UUID
	AnonymousID      string
	FullName         string
	Email            string
	Type             UserType
	EmployeeCount    string
	CompanyName      string
	StorageNeeds     string
	JobTitle         string
	HaveSalesContact bool
	OriginHeader     string
	Referrer         string
	HubspotUTK       string
	UserAgent        string
}

TrackCreateUserFields contains input data for tracking a create user event.

type UserType

type UserType string

UserType is a type for distinguishing personal vs. professional users.

const (
	// Professional defines a "professional" user type.
	Professional UserType = "Professional"
	// Personal defines a "personal" user type.
	Personal UserType = "Personal"
)

Jump to

Keyboard shortcuts

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