analytics

package
v1.4.0-rc3 Latest Latest
Warning

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

Go to latest
Published: Jun 16, 2021 License: MPL-2.0 Imports: 11 Imported by: 4

Documentation

Index

Constants

View Source
const (
	AgggregateMixedCollectionName = "tyk_analytics_aggregates"
	MongoAggregatePrefix          = "mongo-pump-aggregate"
)

Variables

This section is empty.

Functions

func AggregateData

func AggregateData(data []interface{}, trackAllPaths bool, ignoreTagPrefixList []string, storeAnalyticPerMinute bool) map[string]AnalyticsRecordAggregate

AggregateData calculates aggregated data, returns map orgID => aggregated analytics data

Types

type AnalyticsFilters added in v1.0.0

type AnalyticsFilters struct {
	OrgsIDs              []string `json:"org_ids"`
	APIIDs               []string `json:"api_ids"`
	ResponseCodes        []int    `json:"response_codes"`
	SkippedOrgsIDs       []string `json:"skip_org_ids"`
	SkippedAPIIDs        []string `json:"skip_api_ids"`
	SkippedResponseCodes []int    `json:"skip_response_codes"`
}

func (AnalyticsFilters) HasFilter added in v1.0.0

func (filters AnalyticsFilters) HasFilter() bool

func (AnalyticsFilters) ShouldFilter added in v1.0.0

func (filters AnalyticsFilters) ShouldFilter(record AnalyticsRecord) bool

type AnalyticsRecord

type AnalyticsRecord struct {
	Method        string       `json:"method"`
	Host          string       `json:"host"`
	Path          string       `json:"path"`
	RawPath       string       `json:"raw_path"`
	ContentLength int64        `json:"content_length"`
	UserAgent     string       `json:"user_agent"`
	Day           int          `json:"day"`
	Month         time.Month   `json:"month"`
	Year          int          `json:"year"`
	Hour          int          `json:"hour"`
	ResponseCode  int          `json:"response_code"`
	APIKey        string       `json:"api_key"`
	TimeStamp     time.Time    `json:"timestamp"`
	APIVersion    string       `json:"api_version"`
	APIName       string       `json:"api_name"`
	APIID         string       `json:"api_id"`
	OrgID         string       `json:"org_id"`
	OauthID       string       `json:"oauth_id"`
	RequestTime   int64        `json:"request_time"`
	RawRequest    string       `json:"raw_request"`
	RawResponse   string       `json:"raw_response"`
	IPAddress     string       `json:"ip_address"`
	Geo           GeoData      `json:"geo"`
	Network       NetworkStats `json:"network_stats"`
	Latency       Latency      `json:"latency"`
	Tags          []string     `json:"tags"`
	Alias         string       `json:"alias"`
	TrackPath     bool         `json:"track_path"`
	ExpireAt      time.Time    `bson:"expireAt" json:"expireAt"`
}

AnalyticsRecord encodes the details of a request

func (*AnalyticsRecord) GetFieldNames

func (a *AnalyticsRecord) GetFieldNames() []string

func (*AnalyticsRecord) GetLineValues

func (a *AnalyticsRecord) GetLineValues() []string

type AnalyticsRecordAggregate

type AnalyticsRecordAggregate struct {
	TimeStamp time.Time
	OrgID     string
	TimeID    struct {
		Year  int
		Month int
		Day   int
		Hour  int
	}

	APIKeys map[string]*Counter
	Errors  map[string]*Counter

	Versions map[string]*Counter
	APIID    map[string]*Counter
	OauthIDs map[string]*Counter
	Geo      map[string]*Counter
	Tags     map[string]*Counter

	Endpoints map[string]*Counter

	Lists struct {
		APIKeys       []Counter
		APIID         []Counter
		OauthIDs      []Counter
		Geo           []Counter
		Tags          []Counter
		Errors        []Counter
		Endpoints     []Counter
		KeyEndpoint   map[string][]Counter `bson:"keyendpoints"`
		OauthEndpoint map[string][]Counter `bson:"oauthendpoints"`
		APIEndpoint   []Counter            `bson:"apiendpoints"`
	}

	KeyEndpoint   map[string]map[string]*Counter `bson:"keyendpoints"`
	OauthEndpoint map[string]map[string]*Counter `bson:"oauthendpoints"`
	ApiEndpoint   map[string]*Counter            `bson:"apiendpoints"`

	Total Counter

	ExpireAt time.Time `bson:"expireAt" json:"expireAt"`
	LastTime time.Time
}

func (*AnalyticsRecordAggregate) AsChange

func (f *AnalyticsRecordAggregate) AsChange() bson.M

func (*AnalyticsRecordAggregate) AsTimeUpdate

func (f *AnalyticsRecordAggregate) AsTimeUpdate() bson.M

func (*AnalyticsRecordAggregate) DiscardAggregations added in v1.2.0

func (f *AnalyticsRecordAggregate) DiscardAggregations(fields []string)

DiscardAggregations this method discard the aggregations of X field specified in the aggregated pump configuration

func (AnalyticsRecordAggregate) New

func (*AnalyticsRecordAggregate) SetErrorList added in v1.0.0

func (f *AnalyticsRecordAggregate) SetErrorList(parent, thisUnit string, counter *Counter, newUpdate bson.M)

type Counter

type Counter struct {
	Hits              int       `json:"hits"`
	Success           int       `json:"success"`
	ErrorTotal        int       `json:"error"`
	RequestTime       float64   `json:"request_time"`
	TotalRequestTime  float64   `json:"total_request_time"`
	Identifier        string    `json:"identifier"`
	HumanIdentifier   string    `json:"human_identifier"`
	LastTime          time.Time `json:"last_time"`
	OpenConnections   int64     `json:"open_connections"`
	ClosedConnections int64     `json:"closed_connections"`
	BytesIn           int64     `json:"bytes_in"`
	BytesOut          int64     `json:"bytes_out"`

	MaxUpstreamLatency   int64   `json:"max_upstream_latency"`
	MinUpstreamLatency   int64   `json:"min_upstream_latency"`
	TotalUpstreamLatency int64   `json:"total_upstream_latency"`
	UpstreamLatency      float64 `json:"upstream_latency"`

	MaxLatency   int64   `json:"max_latency"`
	MinLatency   int64   `json:"min_latency"`
	TotalLatency int64   `json:"total_latency"`
	Latency      float64 `json:"latency"`

	ErrorMap  map[string]int `json:"error_map"`
	ErrorList []ErrorData    `json:"error_list"`
}

type ErrorData added in v1.0.0

type ErrorData struct {
	Code  string
	Count int
}

type GeoData

type GeoData struct {
	Country struct {
		ISOCode string `maxminddb:"iso_code" json:"iso_code"`
	} `maxminddb:"country" json:"country"`

	City struct {
		GeoNameID uint              `maxminddb:"geoname_id" json:"geoname_id"`
		Names     map[string]string `maxminddb:"names" json:"names"`
	} `maxminddb:"city" json:"city"`

	Location struct {
		Latitude  float64 `maxminddb:"latitude" json:"latitude"`
		Longitude float64 `maxminddb:"longitude" json:"longitude"`
		TimeZone  string  `maxminddb:"time_zone" json:"time_zone"`
	} `maxminddb:"location" json:"location"`
}

func (*GeoData) GetFieldNames added in v1.3.0

func (g *GeoData) GetFieldNames() []string

func (*GeoData) GetLineValues added in v1.3.0

func (g *GeoData) GetLineValues() []string

type Latency

type Latency struct {
	Total    int64 `json:"total"`
	Upstream int64 `json:"upstream"`
}

func (*Latency) GetFieldNames added in v1.3.0

func (l *Latency) GetFieldNames() []string

func (*Latency) GetLineValues added in v1.3.0

func (l *Latency) GetLineValues() []string

type NetworkStats

type NetworkStats struct {
	OpenConnections  int64 `json:"open_connections"`
	ClosedConnection int64 `json:"closed_connections"`
	BytesIn          int64 `json:"bytes_in"`
	BytesOut         int64 `json:"bytes_out"`
}

func (*NetworkStats) GetFieldNames added in v1.3.0

func (n *NetworkStats) GetFieldNames() []string

func (*NetworkStats) GetLineValues added in v1.3.0

func (n *NetworkStats) GetLineValues() []string

type UptimeReportData

type UptimeReportData struct {
	URL          string
	RequestTime  int64
	ResponseCode int
	TCPError     bool
	ServerError  bool
	Day          int
	Month        time.Month
	Year         int
	Hour         int
	Minute       int
	TimeStamp    time.Time
	ExpireAt     time.Time `bson:"expireAt" json:"expireAt"`
	APIID        string
	OrgID        string
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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