stats

package
v0.102.0 Latest Latest
Warning

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

Go to latest
Published: Jun 1, 2023 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

View Source
const BlockstoreTypeKey = "blockstore_type"

Variables

View Source
var (
	ErrSendError        = errors.New("stats: send error")
	ErrNoInstallationID = fmt.Errorf("installation ID is missing: %w", ErrSendError)
)

Functions

func BuildMetadataProvider

func BuildMetadataProvider(logger logging.Logger, c *config.Config) cloud.MetadataProvider

func HashMetricValue added in v0.83.0

func HashMetricValue(s string) string

func IsSuccessStatusCode added in v0.90.1

func IsSuccessStatusCode(statusCode int) bool

IsSuccessStatusCode returns true for status code 2xx

Types

type BufferedCollector

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

func NewBufferedCollector

func NewBufferedCollector(installationID string, cfg Config, opts ...BufferedCollectorOpts) *BufferedCollector

func (*BufferedCollector) Close added in v0.62.0

func (s *BufferedCollector) Close()

func (*BufferedCollector) CollectCommPrefs added in v0.87.0

func (s *BufferedCollector) CollectCommPrefs(email, installationID string, featureUpdates, securityUpdates bool)

func (*BufferedCollector) CollectEvent

func (s *BufferedCollector) CollectEvent(ev Event)

func (*BufferedCollector) CollectEvents added in v0.89.0

func (s *BufferedCollector) CollectEvents(ev Event, count uint64)

func (*BufferedCollector) CollectMetadata

func (s *BufferedCollector) CollectMetadata(accountMetadata *Metadata)

func (*BufferedCollector) SetInstallationID

func (s *BufferedCollector) SetInstallationID(installationID string)

func (*BufferedCollector) SetRuntimeCollector added in v0.48.0

func (s *BufferedCollector) SetRuntimeCollector(runtimeCollector func() map[string]string)

func (*BufferedCollector) Start added in v0.90.1

func (s *BufferedCollector) Start(ctx context.Context)

func (*BufferedCollector) Stop added in v0.90.1

func (s *BufferedCollector) Stop()

type BufferedCollectorOpts

type BufferedCollectorOpts func(s *BufferedCollector)

func WithExtended added in v0.83.0

func WithExtended(b bool) BufferedCollectorOpts

func WithLogger added in v0.83.0

func WithLogger(l logging.Logger) BufferedCollectorOpts

func WithSender

func WithSender(sender Sender) BufferedCollectorOpts

func WithWriteBufferSize

func WithWriteBufferSize(bufferSize int) BufferedCollectorOpts

type Collector

type Collector interface {
	CollectEvent(ev Event)
	CollectEvents(ev Event, count uint64)
	CollectMetadata(accountMetadata *Metadata)
	CollectCommPrefs(email, installationID string, featureUpdates, securityUpdates bool)
	SetInstallationID(installationID string)

	// Close must be called to ensure the delivery of pending stats
	Close()
}

type CommPrefsData added in v0.87.0

type CommPrefsData struct {
	InstallationID  string `json:"installation_id"`
	Email           string `json:"email"`
	FeatureUpdates  bool   `json:"featureUpdates"`
	SecurityUpdates bool   `json:"securityUpdates"`
}

type Config added in v0.90.0

type Config struct {
	Enabled       bool
	Address       string
	FlushInterval time.Duration
	FlushSize     int
	Extended      bool
}

type Event added in v0.83.0

type Event struct {
	Class      string `json:"class"`
	Name       string `json:"name"`
	Repository string `json:"repository,omitempty"`
	Ref        string `json:"ref,omitempty"`
	SourceRef  string `json:"source_ref,omitempty"`
	UserID     string `json:"user_id,omitempty"`
	Client     string `json:"client,omitempty"`
}

func (Event) ClearExtended added in v0.83.0

func (e Event) ClearExtended() Event

ClearExtended clear values of *all* extended fields

func (Event) HashExtended added in v0.83.0

func (e Event) HashExtended() Event

HashExtended hash the values of extended fields with sensitive information

type FlushTicker

type FlushTicker interface {
	Stop()
	Tick() <-chan time.Time
}

type HTTPSender

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

func NewHTTPSender

func NewHTTPSender(addr string, log logging.Logger) *HTTPSender

func (*HTTPSender) SendEvent

func (s *HTTPSender) SendEvent(ctx context.Context, event *InputEvent) error

func (*HTTPSender) UpdateCommPrefs added in v0.87.0

func (s *HTTPSender) UpdateCommPrefs(ctx context.Context, commPrefs *CommPrefsData) error

func (*HTTPSender) UpdateMetadata

func (s *HTTPSender) UpdateMetadata(ctx context.Context, m Metadata) error

type InputEvent

type InputEvent struct {
	InstallationID string   `json:"installation_id"`
	ProcessID      string   `json:"process_id"`
	Time           string   `json:"time"`
	Metrics        []Metric `json:"metrics"`
}

type LoggerAdapter added in v0.90.1

type LoggerAdapter struct {
	logging.Logger
}

func (*LoggerAdapter) Printf added in v0.90.1

func (l *LoggerAdapter) Printf(msg string, args ...interface{})

type Metadata

type Metadata struct {
	InstallationID string          `json:"installation_id"`
	Entries        []MetadataEntry `json:"entries"`
}

func NewMetadata

func NewMetadata(ctx context.Context, logger logging.Logger, blockstoreType string, metadataProvider MetadataProvider, cloudMetadataProvider cloud.MetadataProvider) *Metadata

type MetadataEntry

type MetadataEntry struct {
	Name  string `json:"name"`
	Value string `json:"value"`
}

type MetadataProvider added in v0.102.0

type MetadataProvider interface {
	GetMetadata(context.Context) (map[string]string, error)
}

type Metric

type Metric struct {
	Event
	Value uint64 `json:"value"`
}

type NullCollector added in v0.70.1

type NullCollector struct{}

func (*NullCollector) Close added in v0.70.1

func (m *NullCollector) Close()

func (*NullCollector) CollectCommPrefs added in v0.87.0

func (m *NullCollector) CollectCommPrefs(_, _ string, _, _ bool)

func (*NullCollector) CollectEvent added in v0.70.1

func (m *NullCollector) CollectEvent(_ Event)

func (*NullCollector) CollectEvents added in v0.89.0

func (m *NullCollector) CollectEvents(_ Event, _ uint64)

func (*NullCollector) CollectMetadata added in v0.70.1

func (m *NullCollector) CollectMetadata(_ *Metadata)

func (*NullCollector) SetInstallationID added in v0.70.1

func (m *NullCollector) SetInstallationID(_ string)

type Sender

type Sender interface {
	SendEvent(ctx context.Context, event *InputEvent) error
	UpdateMetadata(ctx context.Context, m Metadata) error
	UpdateCommPrefs(ctx context.Context, commPrefs *CommPrefsData) error
}

type TimeFn

type TimeFn func() time.Time

type TimeTicker

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

func (*TimeTicker) Stop

func (t *TimeTicker) Stop()

func (*TimeTicker) Tick

func (t *TimeTicker) Tick() <-chan time.Time

Jump to

Keyboard shortcuts

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