Documentation ¶
Index ¶
- Constants
- func AggregateData(data []interface{}, trackAllPaths bool, ignoreTagPrefixList []string, ...) map[string]AnalyticsRecordAggregate
- func AggregateUptimeData(data []UptimeReportData) map[string]UptimeReportAggregate
- func OnConflictAssignments(tableName string, tempTable string) map[string]interface{}
- func OnConflictUptimeAssignments(tableName string, tempTable string) map[string]interface{}
- type AnalyticsFilters
- type AnalyticsRecord
- type AnalyticsRecordAggregate
- func (f *AnalyticsRecordAggregate) AsChange() (newUpdate bson.M)
- func (f *AnalyticsRecordAggregate) AsTimeUpdate() bson.M
- func (f *AnalyticsRecordAggregate) Dimensions() (dimensions []Dimension)
- func (f *AnalyticsRecordAggregate) DiscardAggregations(fields []string)
- func (f AnalyticsRecordAggregate) New() AnalyticsRecordAggregate
- func (f *AnalyticsRecordAggregate) SetErrorList(parent, thisUnit string, counter *Counter, newUpdate bson.M)
- type Code
- type Counter
- type Country
- type Dimension
- type ErrorData
- type GeoData
- type Latency
- type NetworkStats
- type SQLAnalyticsRecordAggregate
- type UptimeReportAggregate
- type UptimeReportAggregateSQL
- type UptimeReportData
Constants ¶
View Source
const ( AgggregateMixedCollectionName = "tyk_analytics_aggregates" MongoAggregatePrefix = "mongo-pump-aggregate" AggregateSQLTable = "tyk_aggregated" )
View Source
const SQLTable = "tyk_analytics"
View Source
const UptimeSQLTable = "tyk_uptime_analytics"
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
func AggregateUptimeData ¶ added in v1.5.0
func AggregateUptimeData(data []UptimeReportData) map[string]UptimeReportAggregate
func OnConflictAssignments ¶ added in v1.5.0
func OnConflictUptimeAssignments ¶ added in v1.5.0
Types ¶
type AnalyticsFilters ¶ added in v1.0.0
type AnalyticsFilters struct { // Filters pump data by the whitelisted org_ids. OrgsIDs []string `json:"org_ids"` // Filters pump data by the whitelisted api_ids. APIIDs []string `json:"api_ids"` // Filters pump data by the whitelisted response_codes. ResponseCodes []int `json:"response_codes"` // Filters pump data by the blacklisted org_ids. SkippedOrgsIDs []string `json:"skip_org_ids"` // Filters pump data by the blacklisted api_ids. SkippedAPIIDs []string `json:"skip_api_ids"` // Filters pump data by the blacklisted response_codes. 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" gorm:"column:method"` Host string `json:"host" gorm:"column:host"` Path string `json:"path" gorm:"column:path"` RawPath string `json:"raw_path" gorm:"column:rawpath"` ContentLength int64 `json:"content_length" gorm:"column:contentlength"` UserAgent string `json:"user_agent" gorm:"column:useragent"` Day int `json:"day" sql:"-"` Month time.Month `json:"month" sql:"-"` Year int `json:"year" sql:"-"` Hour int `json:"hour" sql:"-"` ResponseCode int `json:"response_code" gorm:"column:responsecode;index"` APIKey string `json:"api_key" gorm:"column:apikey;index"` TimeStamp time.Time `json:"timestamp" gorm:"column:timestamp;index"` APIVersion string `json:"api_version" gorm:"column:apiversion"` APIName string `json:"api_name" sql:"-"` APIID string `json:"api_id" gorm:"column:apiid;index"` OrgID string `json:"org_id" gorm:"column:orgid;index"` OauthID string `json:"oauth_id" gorm:"column:oauthid;index"` RequestTime int64 `json:"request_time" gorm:"column:requesttime"` RawRequest string `json:"raw_request" gorm:"column:rawrequest"` RawResponse string `json:"raw_response" gorm:"column:rawresponse"` IPAddress string `json:"ip_address" gorm:"column:ipaddress"` Geo GeoData `json:"geo" gorm:"embedded"` Network NetworkStats `json:"network"` Latency Latency `json:"latency"` Tags []string `json:"tags"` Alias string `json:"alias"` TrackPath bool `json:"track_path" gorm:"column:trackpath"` 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
func (*AnalyticsRecord) TableName ¶ added in v1.5.0
func (ar *AnalyticsRecord) TableName() string
func (*AnalyticsRecord) TrimRawData ¶ added in v1.5.0
func (a *AnalyticsRecord) TrimRawData(size int)
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() (newUpdate bson.M)
func (*AnalyticsRecordAggregate) AsTimeUpdate ¶
func (f *AnalyticsRecordAggregate) AsTimeUpdate() bson.M
func (*AnalyticsRecordAggregate) Dimensions ¶ added in v1.5.0
func (f *AnalyticsRecordAggregate) Dimensions() (dimensions []Dimension)
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 (f AnalyticsRecordAggregate) New() AnalyticsRecordAggregate
func (*AnalyticsRecordAggregate) SetErrorList ¶ added in v1.0.0
func (f *AnalyticsRecordAggregate) SetErrorList(parent, thisUnit string, counter *Counter, newUpdate bson.M)
type Code ¶ added in v1.5.0
type Code struct { Code1x int `json:"1x" gorm:"1x"` Code200 int `json:"200" gorm:"200"` Code201 int `json:"201" gorm:"201"` Code2x int `json:"2x" gorm:"2x"` Code301 int `json:"301" gorm:"301"` Code302 int `json:"302" gorm:"302"` Code303 int `json:"303" gorm:"303"` Code304 int `json:"304" gorm:"304"` Code3x int `json:"3x" gorm:"3x"` Code400 int `json:"400" gorm:"400"` Code401 int `json:"401" gorm:"401"` Code403 int `json:"403" gorm:"403"` Code404 int `json:"404" gorm:"404"` Code429 int `json:"429" gorm:"429"` Code4x int `json:"4x" gorm:"4x"` Code500 int `json:"500" gorm:"500"` Code501 int `json:"501" gorm:"501"` Code502 int `json:"502" gorm:"502"` Code503 int `json:"503" gorm:"503"` Code504 int `json:"504" gorm:"504"` Code5x int `json:"5x" gorm:"5x"` }
func (*Code) ProcessStatusCodes ¶ added in v1.5.0
type Counter ¶
type Counter struct { Hits int `json:"hits"` Success int `json:"success"` ErrorTotal int `json:"error" gorm:"column:error"` RequestTime float64 `json:"request_time"` TotalRequestTime float64 `json:"total_request_time"` Identifier string `json:"identifier" sql:"-"` 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" sql:"-"` ErrorList []ErrorData `json:"error_list" sql:"-"` }
type Country ¶ added in v1.5.0
type Country struct {
ISOCode string `maxminddb:"iso_code" json:"iso_code"`
}
type GeoData ¶
type GeoData struct { Country Country `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 (*GeoData) GetLineValues ¶ added in v1.3.0
type Latency ¶
func (*Latency) GetFieldNames ¶ added in v1.3.0
func (*Latency) GetLineValues ¶ added in v1.3.0
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 SQLAnalyticsRecordAggregate ¶ added in v1.5.0
type SQLAnalyticsRecordAggregate struct { ID string `gorm:"primaryKey"` Counter `json:"counter" gorm:"embedded"` TimeStamp int64 `json:"timestamp" gorm:"index:dimension, priority:1"` OrgID string `json:"org_id" gorm:"index:dimension, priority:2"` Dimension string `json:"dimension" gorm:"index:dimension, priority:3"` DimensionValue string `json:"dimension_value" gorm:"index:dimension, priority:4"` Code `json:"code" gorm:"embedded"` }
func (*SQLAnalyticsRecordAggregate) TableName ¶ added in v1.5.0
func (f *SQLAnalyticsRecordAggregate) TableName() string
type UptimeReportAggregate ¶ added in v1.5.0
type UptimeReportAggregate struct { TimeStamp time.Time OrgID string TimeID struct { Year int Month int Day int Hour int } URL map[string]*Counter Errors map[string]*Counter Total Counter ExpireAt time.Time `bson:"expireAt" json:"expireAt"` LastTime time.Time }
func (*UptimeReportAggregate) Dimensions ¶ added in v1.5.0
func (u *UptimeReportAggregate) Dimensions() (dimensions []Dimension)
func (UptimeReportAggregate) New ¶ added in v1.5.0
func (u UptimeReportAggregate) New() UptimeReportAggregate
type UptimeReportAggregateSQL ¶ added in v1.5.0
type UptimeReportAggregateSQL struct { ID string `gorm:"primaryKey"` Counter `json:"counter" gorm:"embedded"` TimeStamp int64 `json:"timestamp" gorm:"index:dimension, priority:1"` OrgID string `json:"org_id" gorm:"index:dimension, priority:2"` Dimension string `json:"dimension" gorm:"index:dimension, priority:3"` DimensionValue string `json:"dimension_value" gorm:"index:dimension, priority:4"` Code `json:"code" gorm:"embedded"` }
func (*UptimeReportAggregateSQL) TableName ¶ added in v1.5.0
func (a *UptimeReportAggregateSQL) TableName() string
type UptimeReportData ¶
type UptimeReportData struct { URL string `json:"url"` RequestTime int64 `json:"request_time"` ResponseCode int `json:"response_code"` TCPError bool `json:"tcp_error"` ServerError bool `json:"server_error"` Day int `json:"day"` Month time.Month `json:"month"` Year int `json:"year"` Hour int `json:"hour"` Minute int `json:"minute"` TimeStamp time.Time `json:"timestamp"` ExpireAt time.Time `bson:"expireAt"` APIID string `json:"api_id"` OrgID string `json:"org_id"` }
Click to show internal directories.
Click to hide internal directories.