ops_trend_models.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package service
  2. import "time"
  3. type OpsThroughputTrendPoint struct {
  4. BucketStart time.Time `json:"bucket_start"`
  5. RequestCount int64 `json:"request_count"`
  6. TokenConsumed int64 `json:"token_consumed"`
  7. SwitchCount int64 `json:"switch_count"`
  8. QPS float64 `json:"qps"`
  9. TPS float64 `json:"tps"`
  10. }
  11. type OpsThroughputPlatformBreakdownItem struct {
  12. Platform string `json:"platform"`
  13. RequestCount int64 `json:"request_count"`
  14. TokenConsumed int64 `json:"token_consumed"`
  15. }
  16. type OpsThroughputGroupBreakdownItem struct {
  17. GroupID int64 `json:"group_id"`
  18. GroupName string `json:"group_name"`
  19. RequestCount int64 `json:"request_count"`
  20. TokenConsumed int64 `json:"token_consumed"`
  21. }
  22. type OpsThroughputTrendResponse struct {
  23. Bucket string `json:"bucket"`
  24. Points []*OpsThroughputTrendPoint `json:"points"`
  25. // Optional drilldown helpers:
  26. // - When no platform/group is selected: returns totals by platform.
  27. // - When platform is selected but group is not: returns top groups in that platform.
  28. ByPlatform []*OpsThroughputPlatformBreakdownItem `json:"by_platform,omitempty"`
  29. TopGroups []*OpsThroughputGroupBreakdownItem `json:"top_groups,omitempty"`
  30. }
  31. type OpsErrorTrendPoint struct {
  32. BucketStart time.Time `json:"bucket_start"`
  33. ErrorCountTotal int64 `json:"error_count_total"`
  34. BusinessLimitedCount int64 `json:"business_limited_count"`
  35. ErrorCountSLA int64 `json:"error_count_sla"`
  36. UpstreamErrorCountExcl429529 int64 `json:"upstream_error_count_excl_429_529"`
  37. Upstream429Count int64 `json:"upstream_429_count"`
  38. Upstream529Count int64 `json:"upstream_529_count"`
  39. }
  40. type OpsErrorTrendResponse struct {
  41. Bucket string `json:"bucket"`
  42. Points []*OpsErrorTrendPoint `json:"points"`
  43. }
  44. type OpsErrorDistributionItem struct {
  45. StatusCode int `json:"status_code"`
  46. Total int64 `json:"total"`
  47. SLA int64 `json:"sla"`
  48. BusinessLimited int64 `json:"business_limited"`
  49. }
  50. type OpsErrorDistributionResponse struct {
  51. Total int64 `json:"total"`
  52. Items []*OpsErrorDistributionItem `json:"items"`
  53. }