ops_dashboard_models.go 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. package service
  2. import "time"
  3. type OpsDashboardFilter struct {
  4. StartTime time.Time
  5. EndTime time.Time
  6. Platform string
  7. GroupID *int64
  8. // QueryMode controls whether dashboard queries should use raw logs or pre-aggregated tables.
  9. // Expected values: auto/raw/preagg (see OpsQueryMode).
  10. QueryMode OpsQueryMode
  11. }
  12. type OpsRateSummary struct {
  13. Current float64 `json:"current"`
  14. Peak float64 `json:"peak"`
  15. Avg float64 `json:"avg"`
  16. }
  17. type OpsPercentiles struct {
  18. P50 *int `json:"p50_ms"`
  19. P90 *int `json:"p90_ms"`
  20. P95 *int `json:"p95_ms"`
  21. P99 *int `json:"p99_ms"`
  22. Avg *int `json:"avg_ms"`
  23. Max *int `json:"max_ms"`
  24. }
  25. type OpsDashboardOverview struct {
  26. StartTime time.Time `json:"start_time"`
  27. EndTime time.Time `json:"end_time"`
  28. Platform string `json:"platform"`
  29. GroupID *int64 `json:"group_id"`
  30. // HealthScore is a backend-computed overall health score (0-100).
  31. // It is derived from the monitored metrics in this overview, plus best-effort system metrics/job heartbeats.
  32. HealthScore int `json:"health_score"`
  33. // Latest system-level snapshot (window=1m, global).
  34. SystemMetrics *OpsSystemMetricsSnapshot `json:"system_metrics"`
  35. // Background jobs health (heartbeats).
  36. JobHeartbeats []*OpsJobHeartbeat `json:"job_heartbeats"`
  37. SuccessCount int64 `json:"success_count"`
  38. ErrorCountTotal int64 `json:"error_count_total"`
  39. BusinessLimitedCount int64 `json:"business_limited_count"`
  40. ErrorCountSLA int64 `json:"error_count_sla"`
  41. RequestCountTotal int64 `json:"request_count_total"`
  42. RequestCountSLA int64 `json:"request_count_sla"`
  43. TokenConsumed int64 `json:"token_consumed"`
  44. SLA float64 `json:"sla"`
  45. ErrorRate float64 `json:"error_rate"`
  46. UpstreamErrorRate float64 `json:"upstream_error_rate"`
  47. UpstreamErrorCountExcl429529 int64 `json:"upstream_error_count_excl_429_529"`
  48. Upstream429Count int64 `json:"upstream_429_count"`
  49. Upstream529Count int64 `json:"upstream_529_count"`
  50. QPS OpsRateSummary `json:"qps"`
  51. TPS OpsRateSummary `json:"tps"`
  52. Duration OpsPercentiles `json:"duration"`
  53. TTFT OpsPercentiles `json:"ttft"`
  54. }
  55. type OpsLatencyHistogramBucket struct {
  56. Range string `json:"range"`
  57. Count int64 `json:"count"`
  58. }
  59. // OpsLatencyHistogramResponse is a coarse latency distribution histogram (success requests only).
  60. // It is used by the Ops dashboard to quickly identify tail latency regressions.
  61. type OpsLatencyHistogramResponse struct {
  62. StartTime time.Time `json:"start_time"`
  63. EndTime time.Time `json:"end_time"`
  64. Platform string `json:"platform"`
  65. GroupID *int64 `json:"group_id"`
  66. TotalRequests int64 `json:"total_requests"`
  67. Buckets []*OpsLatencyHistogramBucket `json:"buckets"`
  68. }