Documentation ¶
Index ¶
- Constants
- func AggregateData(data []interface{}, trackAllPaths bool, ignoreTagPrefixList []string, ...) map[string]AnalyticsRecordAggregate
- type AnalyticsFilters
- type AnalyticsRecord
- type AnalyticsRecordAggregate
- func (f *AnalyticsRecordAggregate) AsChange() bson.M
- func (f *AnalyticsRecordAggregate) AsTimeUpdate() bson.M
- func (f *AnalyticsRecordAggregate) DiscardAggregations(fields []string)
- func (f AnalyticsRecordAggregate) New() AnalyticsRecordAggregate
- func (f *AnalyticsRecordAggregate) SetErrorList(parent, thisUnit string, counter *Counter, newUpdate bson.M)
- type Counter
- type ErrorData
- type GeoData
- type Latency
- type NetworkStats
- type UptimeReportData
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 (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 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 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 (*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
Click to show internal directories.
Click to hide internal directories.