- route definition
- Url: /api/v1/analytics/filters
- Method: GET
- Request:
FiltersGetRequest - Response:
FiltersGetResponse
- request definition
type FiltersGetRequest struct {
GameId string `form:"gameId,optional"`
}
- response definition
type FiltersGetResponse struct {
Items []AnalyticsFilters `json:"items"`
}
- route definition
- Url: /api/v1/analytics/filters
- Method: PUT
- Request:
FiltersUpdateRequest - Response:
FiltersGetResponse
- request definition
type FiltersUpdateRequest struct {
GameId string `json:"gameId"`
Filters interface{} `json:"filters"`
}
- response definition
type FiltersGetResponse struct {
Items []AnalyticsFilters `json:"items"`
}
- route definition
- Url: /api/v1/analytics/ingest
- Method: POST
- Request:
IngestRequest - Response:
IngestResponse
- request definition
type IngestRequest struct {
GameId string `json:"gameId"`
Env string `json:"env"`
Events interface{} `json:"events"`
Timestamp string `json:"timestamp,optional"`
}
- response definition
type IngestResponse struct {
Accepted int `json:"accepted"`
Rejected int `json:"rejected"`
BatchId string `json:"batchId"`
}
- route definition
- Url: /api/v1/analytics/overview
- Method: GET
- Request:
OverviewRequest - Response:
OverviewResponse
- request definition
type OverviewRequest struct {
GameId string `form:"gameId,optional"`
Env string `form:"env,optional"`
StartDate string `form:"startDate,optional"`
EndDate string `form:"endDate,optional"`
}
type AnalyticsQuery struct {
GameId string `form:"gameId,optional"`
Env string `form:"env,optional"`
StartDate string `form:"startDate,optional"`
EndDate string `form:"endDate,optional"`
}
- response definition
type OverviewResponse struct {
Metrics OverviewMetrics `json:"metrics"`
Trends interface{} `json:"trends"`
}
type OverviewMetrics struct {
DAU int `json:"dau"`
MAU int `json:"mau"`
NewUsers int `json:"newUsers"`
Revenue float64 `json:"revenue"`
ARPU float64 `json:"arpu"`
ARPPU float64 `json:"arppu"`
PayingRate float64 `json:"payingRate"`
}
- route definition
- Url: /api/v1/analytics/realtime
- Method: GET
- Request:
RealtimeRequest - Response:
RealtimeResponse
- request definition
type RealtimeRequest struct {
GameId string `form:"gameId,optional"`
Env string `form:"env,optional"`
}
- response definition
type RealtimeResponse struct {
OnlineUsers int `json:"onlineUsers"`
ActiveSessions int `json:"activeSessions"`
QPS float64 `json:"qps"`
AvgLatency float64 `json:"avgLatency"`
ErrorRate float64 `json:"errorRate"`
TopEvents interface{} `json:"topEvents"`
Timestamp string `json:"timestamp"`
}
type RealtimeMetrics struct {
OnlineUsers int `json:"onlineUsers"`
ActiveSessions int `json:"activeSessions"`
QPS float64 `json:"qps"`
AvgLatency float64 `json:"avgLatency"`
ErrorRate float64 `json:"errorRate"`
TopEvents interface{} `json:"topEvents"`
}
- route definition
- Url: /api/v1/analytics/realtime/series
- Method: GET
- Request:
RealtimeSeriesRequest - Response:
RealtimeSeriesResponse
- request definition
type RealtimeSeriesRequest struct {
GameId string `form:"gameId,optional"`
Env string `form:"env,optional"`
Interval string `form:"interval,optional,default=1m"` // 1m, 5m, 15m
Duration int `form:"duration,optional,default=60"` // 分钟
}
- response definition
type RealtimeSeriesResponse struct {
Series interface{} `json:"series"`
}