entry

package
v0.0.22 Latest Latest
Warning

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

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

Documentation

Index

Constants

This section is empty.

Variables

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 IndexedColumns = func() (m map[int]string) {
	m = make(map[int]string)
	for _, n := range IndexedColumnsNames {
		m[Index[n]] = n
	}
	return
}()

Maps column index to column name of all indexed columns

View Source
var IndexedColumnsNames = []string{
	"browser",
	"browser_version",
	"city",
	"country",
	"entry_page",
	"exit_page",
	"host",
	"name",
	"os",
	"os_version",
	"path",
	"referrer",
	"referrer_source",
	"region",
	"screen",
	"utm_campaign",
	"utm_content",
	"utm_medium",
	"utm_source",
	"utm_term",
}
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() []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

func Select

func Select(names ...string) *arrow.Schema

Types

type ByteArray

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

func NewByteArray

func NewByteArray() ByteArray

func (*ByteArray) Append

func (b *ByteArray) Append(s string)

func (*ByteArray) Reset

func (b *ByteArray) Reset()

func (*ByteArray) Write

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
	Name           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 Int64Array

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

func NewInt64Array

func NewInt64Array() Int64Array

func (*Int64Array) Append

func (b *Int64Array) Append(v int64)

func (*Int64Array) First

func (b *Int64Array) First() int64

func (*Int64Array) Last

func (b *Int64Array) Last() int64

func (*Int64Array) Reset

func (b *Int64Array) Reset()

func (*Int64Array) Write

func (b *Int64Array) Write(g file.ColumnChunkWriter)

type MultiEntry

type MultiEntry struct {
	Bounce         Int64Array
	Browser        ByteArray
	BrowserVersion ByteArray
	City           ByteArray
	Country        ByteArray
	Duration       Int64Array
	EntryPage      ByteArray
	ExitPage       ByteArray
	Host           ByteArray
	ID             Int64Array
	Name           ByteArray
	Os             ByteArray
	OsVersion      ByteArray
	Path           ByteArray
	Referrer       ByteArray
	ReferrerSource ByteArray
	Region         ByteArray
	Screen         ByteArray
	Session        Int64Array
	Timestamp      Int64Array
	UtmCampaign    ByteArray
	UtmContent     ByteArray
	UtmMedium      ByteArray
	UtmSource      ByteArray
	UtmTerm        ByteArray
	// contains filtered or unexported fields
}

func NewMulti

func NewMulti() *MultiEntry

func (*MultiEntry) Append

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

func (*MultiEntry) Release

func (m *MultiEntry) Release()

func (*MultiEntry) Reset

func (m *MultiEntry) Reset()

func (*MultiEntry) Write

func (m *MultiEntry) Write(f *file.Writer, r *roaring64.Bitmap)

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