entry

package
v0.0.28 Latest Latest
Warning

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

Go to latest
Published: Aug 25, 2023 License: AGPL-3.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var All = Fields()
View Source
var ErrBadJSON = errors.New("api: invalid json ")
View Source
var Index = func() (m map[string]int) {
	m = make(map[string]int)
	for i := range All {
		m[All[i].Name] = i
	}
	return
}()
View Source
var ParquetSchema = parquetSchema()
View Source
var Schema = arrow.NewSchema(All, nil)

Functions

func Context

func Context(ctx ...context.Context) context.Context

func Fields

func Fields() (f []arrow.Field)

Fields for constructing arrow schema on Entry.

func NewFileReader

func NewFileReader(r parquet.ReaderAtSeeker) *file.Reader

func NewFileWriter

func NewFileWriter(w io.Writer) *file.Writer

Types

type Entry

type Entry struct {
	Bounce         int64
	Session        int64
	Browser        string
	BrowserVersion string
	City           string
	Country        string
	Domain         string
	Duration       time.Duration
	EntryPage      string
	ExitPage       string
	Host           string
	ID             uint64
	Event          string
	Os             string
	OsVersion      string
	Path           string
	Referrer       string
	ReferrerSource string
	Region         string
	Screen         string
	Timestamp      int64
	UtmCampaign    string
	UtmContent     string
	UtmMedium      string
	UtmSource      string
	UtmTerm        string
}

func NewEntry

func NewEntry() *Entry

func (*Entry) Clone

func (e *Entry) Clone() *Entry

func (*Entry) Hit

func (e *Entry) Hit()

func (*Entry) Release

func (e *Entry) Release()

func (*Entry) Update

func (s *Entry) Update(e *Entry)

type MultiEntry

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

func NewMulti

func NewMulti() *MultiEntry

func (*MultiEntry) Append

func (m *MultiEntry) Append(e *Entry)

func (*MultiEntry) Len added in v0.0.28

func (m *MultiEntry) Len() int

func (*MultiEntry) Release

func (m *MultiEntry) Release()

func (*MultiEntry) Reset

func (m *MultiEntry) Reset()

func (*MultiEntry) Write

func (m *MultiEntry) Write(f *file.Writer, hash func(v1.Column, parquet.ByteArray))

type Reader

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

func NewReader

func NewReader() *Reader

func (*Reader) Read

func (b *Reader) Read(r *file.Reader, groups []int)

func (*Reader) Record

func (b *Reader) Record() arrow.Record

func (*Reader) Release

func (b *Reader) Release()

type Request

type Request struct {
	EventName   string `json:"n"`
	URI         string `json:"url"`
	Referrer    string `json:"r"`
	Domain      string `json:"d"`
	ScreenWidth int    `json:"w"`
	HashMode    bool   `json:"h"`

	IP        string `json:"ip,omitempty"`
	UserAgent string `json:"ua,omitempty"`
	// contains filtered or unexported fields
}

Request is sent by the vince script embedded in client websites

func NewRequest

func NewRequest() *Request

func (*Request) Parse

func (r *Request) Parse(body io.Reader) error

Parse opportunistic parses request body to r object. This is crucial method any gains here translates to smooth events ingestion pipeline.

A hard size limitation of 32kb is imposed. This is arbitrary value, any change to it must be be supported with statistics.

func (*Request) Release

func (r *Request) Release()

Jump to

Keyboard shortcuts

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