datasource.go 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. package source
  2. import (
  3. "time"
  4. "github.com/julienschmidt/httprouter"
  5. )
  6. type InstantMetricsQuerier interface {
  7. QueryRAMUsage(window string, offset string) QueryResultsChan
  8. QueryCPUUsage(window string, offset string) QueryResultsChan
  9. QueryNetworkInZoneRequests(window string, offset string) QueryResultsChan
  10. QueryNetworkInRegionRequests(window string, offset string) QueryResultsChan
  11. QueryNetworkInternetRequests(window string, offset string) QueryResultsChan
  12. QueryNormalization(window string, offset string) QueryResultsChan
  13. QueryHistoricalCPUCost(window string, offset string) QueryResultsChan
  14. QueryHistoricalRAMCost(window string, offset string) QueryResultsChan
  15. QueryHistoricalGPUCost(window string, offset string) QueryResultsChan
  16. QueryHistoricalPodLabels(window string, offset string) QueryResultsChan
  17. }
  18. type RangeMetricsQuerier interface {
  19. QueryRAMRequestsOverTime(start, end time.Time, resolution time.Duration) QueryResultsChan
  20. QueryRAMUsageOverTime(start, end time.Time, resolution time.Duration) QueryResultsChan
  21. QueryRAMAllocationOverTime(start, end time.Time, resolution time.Duration) QueryResultsChan
  22. QueryCPURequestsOverTime(start, end time.Time, resolution time.Duration) QueryResultsChan
  23. QueryCPUUsageOverTime(start, end time.Time, resolution time.Duration) QueryResultsChan
  24. QueryCPUAllocationOverTime(start, end time.Time, resolution time.Duration) QueryResultsChan
  25. QueryGPURequestsOverTime(start, end time.Time, resolution time.Duration) QueryResultsChan
  26. QueryPVRequestsOverTime(start, end time.Time, resolution time.Duration) QueryResultsChan
  27. QueryPVCAllocationOverTime(start, end time.Time, resolution time.Duration) QueryResultsChan
  28. QueryPVHourlyCostOverTime(start, end time.Time, resolution time.Duration) QueryResultsChan
  29. QueryNetworkInZoneOverTime(start, end time.Time, resolution time.Duration) QueryResultsChan
  30. QueryNetworkInRegionOverTime(start, end time.Time, resolution time.Duration) QueryResultsChan
  31. QueryNetworkInternetOverTime(start, end time.Time, resolution time.Duration) QueryResultsChan
  32. QueryNamespaceLabelsOverTime(start, end time.Time, resolution time.Duration) QueryResultsChan
  33. QueryNamespaceAnnotationsOverTime(start, end time.Time, resolution time.Duration) QueryResultsChan
  34. QueryPodLabelsOverTime(start, end time.Time, resolution time.Duration) QueryResultsChan
  35. QueryPodAnnotationsOverTime(start, end time.Time, resolution time.Duration) QueryResultsChan
  36. QueryServiceLabelsOverTime(start, end time.Time, resolution time.Duration) QueryResultsChan
  37. QueryDeploymentLabelsOverTime(start, end time.Time, resolution time.Duration) QueryResultsChan
  38. QueryStatefulsetLabelsOverTime(start, end time.Time, resolution time.Duration) QueryResultsChan
  39. QueryPodJobsOverTime(start, end time.Time, resolution time.Duration) QueryResultsChan
  40. QueryPodDaemonsetsOverTime(start, end time.Time, resolution time.Duration) QueryResultsChan
  41. QueryNormalizationOverTime(start, end time.Time, resolution time.Duration) QueryResultsChan
  42. }
  43. type ClusterMetricsQuerier interface {
  44. // Cluster Disks
  45. QueryPVCost(start, end time.Time) QueryResultsChan
  46. QueryPVSize(start, end time.Time) QueryResultsChan
  47. QueryPVStorageClass(start, end time.Time) QueryResultsChan
  48. QueryPVUsedAverage(start, end time.Time) QueryResultsChan
  49. QueryPVUsedMax(start, end time.Time) QueryResultsChan
  50. QueryPVCInfo(start, end time.Time) QueryResultsChan
  51. QueryPVActiveMinutes(start, end time.Time) QueryResultsChan
  52. // Local Cluster Disks
  53. QueryLocalStorageCost(start, end time.Time) QueryResultsChan
  54. QueryLocalStorageUsedCost(start, end time.Time) QueryResultsChan
  55. QueryLocalStorageUsedAvg(start, end time.Time) QueryResultsChan
  56. QueryLocalStorageUsedMax(start, end time.Time) QueryResultsChan
  57. QueryLocalStorageBytes(start, end time.Time) QueryResultsChan
  58. QueryLocalStorageActiveMinutes(start, end time.Time) QueryResultsChan
  59. QueryLocalStorageBytesByProvider(provider string, start, end time.Time) QueryResultsChan
  60. QueryLocalStorageUsedByProvider(provider string, start, end time.Time) QueryResultsChan
  61. // Nodes
  62. QueryNodeCPUHourlyCost(start, end time.Time) QueryResultsChan
  63. QueryNodeCPUCoresCapacity(start, end time.Time) QueryResultsChan
  64. QueryNodeCPUCoresAllocatable(start, end time.Time) QueryResultsChan
  65. QueryNodeRAMHourlyCost(start, end time.Time) QueryResultsChan
  66. QueryNodeRAMBytesCapacity(start, end time.Time) QueryResultsChan
  67. QueryNodeRAMBytesAllocatable(start, end time.Time) QueryResultsChan
  68. QueryNodeGPUCount(start, end time.Time) QueryResultsChan
  69. QueryNodeGPUHourlyCost(start, end time.Time) QueryResultsChan
  70. QueryNodeLabels(start, end time.Time) QueryResultsChan
  71. QueryNodeActiveMinutes(start, end time.Time) QueryResultsChan
  72. QueryNodeIsSpot(start, end time.Time) QueryResultsChan
  73. QueryNodeCPUModeTotal(start, end time.Time) QueryResultsChan
  74. QueryNodeCPUModePercent(start, end time.Time) QueryResultsChan
  75. QueryNodeRAMSystemPercent(start, end time.Time) QueryResultsChan
  76. QueryNodeRAMUserPercent(start, end time.Time) QueryResultsChan
  77. QueryNodeTotalLocalStorage(start, end time.Time) QueryResultsChan
  78. QueryNodeUsedLocalStorage(start, end time.Time) QueryResultsChan
  79. // Load Balancers
  80. QueryLBCost(start, end time.Time) QueryResultsChan
  81. QueryLBActiveMinutes(start, end time.Time) QueryResultsChan
  82. // Cluster Costs
  83. QueryDataCount(start, end time.Time) QueryResultsChan
  84. QueryTotalGPU(start, end time.Time) QueryResultsChan
  85. QueryTotalCPU(start, end time.Time) QueryResultsChan
  86. QueryTotalRAM(start, end time.Time) QueryResultsChan
  87. QueryTotalStorage(start, end time.Time) QueryResultsChan
  88. // Cluster Costs
  89. QueryClusterCores(start, end time.Time, step time.Duration) QueryResultsChan
  90. QueryClusterRAM(start, end time.Time, step time.Duration) QueryResultsChan
  91. QueryClusterStorage(start, end time.Time, step time.Duration) QueryResultsChan
  92. QueryClusterStorageByProvider(provider string, start, end time.Time, step time.Duration) QueryResultsChan
  93. QueryClusterTotal(start, end time.Time, step time.Duration) QueryResultsChan
  94. QueryClusterTotalByProvider(provider string, start, end time.Time, step time.Duration) QueryResultsChan
  95. QueryClusterNodes(start, end time.Time, step time.Duration) QueryResultsChan
  96. QueryClusterNodesByProvider(provider string, start, end time.Time, step time.Duration) QueryResultsChan
  97. }
  98. type OpenCostDataSource interface {
  99. InstantMetricsQuerier
  100. RangeMetricsQuerier
  101. ClusterMetricsQuerier
  102. RegisterEndPoints(router *httprouter.Router)
  103. BatchDuration() time.Duration
  104. }