record.go 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851
  1. package source
  2. import (
  3. "time"
  4. )
  5. var _ MetricsQuerier = (*RecordMetricsQuerier)(nil)
  6. // RecordMetricsQuerier is a wrapper implementation of MetricsQuerier which counts the number of times each function is
  7. // called
  8. type RecordMetricsQuerier struct {
  9. Calls map[string]int
  10. Querier MetricsQuerier
  11. }
  12. // NewRecordMetricsQuerier creates a new mock metrics querier
  13. func NewRecordMetricsQuerier(querier MetricsQuerier) *RecordMetricsQuerier {
  14. return &RecordMetricsQuerier{
  15. Calls: make(map[string]int),
  16. Querier: querier,
  17. }
  18. }
  19. // Helper to record method calls
  20. func (m *RecordMetricsQuerier) recordCall(method string) {
  21. m.Calls[method]++
  22. }
  23. // Local Cluster Disks
  24. func (m *RecordMetricsQuerier) QueryLocalStorageActiveMinutes(start, end time.Time) *Future[LocalStorageActiveMinutesResult] {
  25. m.recordCall("QueryLocalStorageActiveMinutes")
  26. return m.Querier.QueryLocalStorageActiveMinutes(start, end)
  27. }
  28. func (m *RecordMetricsQuerier) QueryLocalStorageUsedAvg(start, end time.Time) *Future[LocalStorageUsedAvgResult] {
  29. m.recordCall("QueryLocalStorageUsedAvg")
  30. return m.Querier.QueryLocalStorageUsedAvg(start, end)
  31. }
  32. func (m *RecordMetricsQuerier) QueryLocalStorageUsedMax(start, end time.Time) *Future[LocalStorageUsedMaxResult] {
  33. m.recordCall("QueryLocalStorageUsedMax")
  34. return m.Querier.QueryLocalStorageUsedMax(start, end)
  35. }
  36. func (m *RecordMetricsQuerier) QueryLocalStorageBytes(start, end time.Time) *Future[LocalStorageBytesResult] {
  37. m.recordCall("QueryLocalStorageBytes")
  38. return m.Querier.QueryLocalStorageBytes(start, end)
  39. }
  40. func (m *RecordMetricsQuerier) QueryKMLocalStorageUsedAvg(start, end time.Time) *Future[NodeUIDValueResult] {
  41. m.recordCall("QueryKMLocalStorageUsedAvg")
  42. return m.Querier.QueryKMLocalStorageUsedAvg(start, end)
  43. }
  44. func (m *RecordMetricsQuerier) QueryKMLocalStorageUsedMax(start, end time.Time) *Future[NodeUIDValueResult] {
  45. m.recordCall("QueryKMLocalStorageUsedMax")
  46. return m.Querier.QueryKMLocalStorageUsedMax(start, end)
  47. }
  48. func (m *RecordMetricsQuerier) QueryKMLocalStorageBytes(start, end time.Time) *Future[UIDValueResult] {
  49. m.recordCall("QueryKMLocalStorageBytes")
  50. return m.Querier.QueryKMLocalStorageBytes(start, end)
  51. }
  52. // Nodes
  53. func (m *RecordMetricsQuerier) QueryNodeInfo(start, end time.Time) *Future[NodeInfoResult] {
  54. m.recordCall("QueryNodeInfo")
  55. return m.Querier.QueryNodeInfo(start, end)
  56. }
  57. func (m *RecordMetricsQuerier) QueryNodeUptime(start, end time.Time) *Future[UptimeResult] {
  58. m.recordCall("QueryNodeUptime")
  59. return m.Querier.QueryNodeUptime(start, end)
  60. }
  61. func (m *RecordMetricsQuerier) QueryNodeActiveMinutes(start, end time.Time) *Future[NodeActiveMinutesResult] {
  62. m.recordCall("QueryNodeActiveMinutes")
  63. return m.Querier.QueryNodeActiveMinutes(start, end)
  64. }
  65. func (m *RecordMetricsQuerier) QueryNodeCPUCoresCapacity(start, end time.Time) *Future[NodeCPUCoresCapacityResult] {
  66. m.recordCall("QueryNodeCPUCoresCapacity")
  67. return m.Querier.QueryNodeCPUCoresCapacity(start, end)
  68. }
  69. func (m *RecordMetricsQuerier) QueryNodeCPUCoresAllocatable(start, end time.Time) *Future[NodeCPUCoresAllocatableResult] {
  70. m.recordCall("QueryNodeCPUCoresAllocatable")
  71. return m.Querier.QueryNodeCPUCoresAllocatable(start, end)
  72. }
  73. func (m *RecordMetricsQuerier) QueryNodeRAMBytesCapacity(start, end time.Time) *Future[NodeRAMBytesCapacityResult] {
  74. m.recordCall("QueryNodeRAMBytesCapacity")
  75. return m.Querier.QueryNodeRAMBytesCapacity(start, end)
  76. }
  77. func (m *RecordMetricsQuerier) QueryNodeRAMBytesAllocatable(start, end time.Time) *Future[NodeRAMBytesAllocatableResult] {
  78. m.recordCall("QueryNodeRAMBytesAllocatable")
  79. return m.Querier.QueryNodeRAMBytesAllocatable(start, end)
  80. }
  81. func (m *RecordMetricsQuerier) QueryNodeGPUCount(start, end time.Time) *Future[NodeGPUCountResult] {
  82. m.recordCall("QueryNodeGPUCount")
  83. return m.Querier.QueryNodeGPUCount(start, end)
  84. }
  85. func (m *RecordMetricsQuerier) QueryNodeCPUModeTotal(start, end time.Time) *Future[NodeCPUModeTotalResult] {
  86. m.recordCall("QueryNodeCPUModeTotal")
  87. return m.Querier.QueryNodeCPUModeTotal(start, end)
  88. }
  89. func (m *RecordMetricsQuerier) QueryNodeIsSpot(start, end time.Time) *Future[NodeIsSpotResult] {
  90. m.recordCall("QueryNodeIsSpot")
  91. return m.Querier.QueryNodeIsSpot(start, end)
  92. }
  93. func (m *RecordMetricsQuerier) QueryNodeRAMSystemPercent(start, end time.Time) *Future[NodeRAMSystemPercentResult] {
  94. m.recordCall("QueryNodeRAMSystemPercent")
  95. return m.Querier.QueryNodeRAMSystemPercent(start, end)
  96. }
  97. func (m *RecordMetricsQuerier) QueryNodeRAMUserPercent(start, end time.Time) *Future[NodeRAMUserPercentResult] {
  98. m.recordCall("QueryNodeRAMUserPercent")
  99. return m.Querier.QueryNodeRAMUserPercent(start, end)
  100. }
  101. func (m *RecordMetricsQuerier) QueryNodeResourceCapacities(start, end time.Time) *Future[ResourceResult] {
  102. m.recordCall("QueryNodeResourceCapacities")
  103. return m.Querier.QueryNodeResourceCapacities(start, end)
  104. }
  105. func (m *RecordMetricsQuerier) QueryNodeResourcesAllocatable(start, end time.Time) *Future[ResourceResult] {
  106. m.recordCall("QueryNodeResourcesAllocatable")
  107. return m.Querier.QueryNodeResourcesAllocatable(start, end)
  108. }
  109. // Load Balancers
  110. func (m *RecordMetricsQuerier) QueryLBActiveMinutes(start, end time.Time) *Future[LBActiveMinutesResult] {
  111. m.recordCall("QueryLBActiveMinutes")
  112. return m.Querier.QueryLBActiveMinutes(start, end)
  113. }
  114. func (m *RecordMetricsQuerier) QueryLBPricePerHr(start, end time.Time) *Future[LBPricePerHrResult] {
  115. m.recordCall("QueryLBPricePerHr")
  116. return m.Querier.QueryLBPricePerHr(start, end)
  117. }
  118. // Cluster Management
  119. func (m *RecordMetricsQuerier) QueryClusterInfo(start, end time.Time) *Future[ClusterInfoResult] {
  120. m.recordCall("QueryClusterInfo")
  121. return m.Querier.QueryClusterInfo(start, end)
  122. }
  123. func (m *RecordMetricsQuerier) QueryClusterUptime(start, end time.Time) *Future[UptimeResult] {
  124. m.recordCall("QueryClusterUptime")
  125. return m.Querier.QueryClusterUptime(start, end)
  126. }
  127. func (m *RecordMetricsQuerier) QueryClusterManagementDuration(start, end time.Time) *Future[ClusterManagementDurationResult] {
  128. m.recordCall("QueryClusterManagementDuration")
  129. return m.Querier.QueryClusterManagementDuration(start, end)
  130. }
  131. func (m *RecordMetricsQuerier) QueryClusterManagementPricePerHr(start, end time.Time) *Future[ClusterManagementPricePerHrResult] {
  132. m.recordCall("QueryClusterManagementPricePerHr")
  133. return m.Querier.QueryClusterManagementPricePerHr(start, end)
  134. }
  135. // Pods
  136. func (m *RecordMetricsQuerier) QueryPods(start, end time.Time) *Future[PodsResult] {
  137. m.recordCall("QueryPods")
  138. return m.Querier.QueryPods(start, end)
  139. }
  140. func (m *RecordMetricsQuerier) QueryPodsUID(start, end time.Time) *Future[PodsResult] {
  141. m.recordCall("QueryPodsUID")
  142. return m.Querier.QueryPodsUID(start, end)
  143. }
  144. func (m *RecordMetricsQuerier) QueryPodInfo(start, end time.Time) *Future[PodInfoResult] {
  145. m.recordCall("QueryPodInfo")
  146. return m.Querier.QueryPodInfo(start, end)
  147. }
  148. func (m *RecordMetricsQuerier) QueryPodUptime(start, end time.Time) *Future[UptimeResult] {
  149. m.recordCall("QueryPodUptime")
  150. return m.Querier.QueryPodUptime(start, end)
  151. }
  152. func (m *RecordMetricsQuerier) QueryPodOwners(start, end time.Time) *Future[OwnerResult] {
  153. m.recordCall("QueryPodOwners")
  154. return m.Querier.QueryPodOwners(start, end)
  155. }
  156. func (m *RecordMetricsQuerier) QueryPodPVCVolumes(start, end time.Time) *Future[PodPVCVolumeResult] {
  157. m.recordCall("QueryPodPVCVolumes")
  158. return m.Querier.QueryPodPVCVolumes(start, end)
  159. }
  160. func (m *RecordMetricsQuerier) QueryPodNetworkEgressBytes(start, end time.Time) *Future[PodNetworkBytesResult] {
  161. m.recordCall("QueryPodNetworkEgressBytes")
  162. return m.Querier.QueryPodNetworkEgressBytes(start, end)
  163. }
  164. func (m *RecordMetricsQuerier) QueryPodNetworkIngressBytes(start, end time.Time) *Future[PodNetworkBytesResult] {
  165. m.recordCall("QueryPodNetworkIngressBytes")
  166. return m.Querier.QueryPodNetworkIngressBytes(start, end)
  167. }
  168. // Container
  169. func (m *RecordMetricsQuerier) QueryContainerUptime(start, end time.Time) *Future[ContainerUptimeResult] {
  170. m.recordCall("QueryContainerUptime")
  171. return m.Querier.QueryContainerUptime(start, end)
  172. }
  173. func (m *RecordMetricsQuerier) QueryContainerResourceRequests(start, end time.Time) *Future[ContainerResourceResult] {
  174. m.recordCall("QueryContainerResourceRequests")
  175. return m.Querier.QueryContainerResourceRequests(start, end)
  176. }
  177. func (m *RecordMetricsQuerier) QueryContainerResourceLimits(start, end time.Time) *Future[ContainerResourceResult] {
  178. m.recordCall("QueryContainerResourceLimits")
  179. return m.Querier.QueryContainerResourceLimits(start, end)
  180. }
  181. // RAM
  182. func (m *RecordMetricsQuerier) QueryRAMBytesAllocated(start, end time.Time) *Future[RAMBytesAllocatedResult] {
  183. m.recordCall("QueryRAMBytesAllocated")
  184. return m.Querier.QueryRAMBytesAllocated(start, end)
  185. }
  186. func (m *RecordMetricsQuerier) QueryRAMRequests(start, end time.Time) *Future[RAMRequestsResult] {
  187. m.recordCall("QueryRAMRequests")
  188. return m.Querier.QueryRAMRequests(start, end)
  189. }
  190. func (m *RecordMetricsQuerier) QueryRAMLimits(start, end time.Time) *Future[RAMLimitsResult] {
  191. m.recordCall("QueryRAMLimits")
  192. return m.Querier.QueryRAMLimits(start, end)
  193. }
  194. func (m *RecordMetricsQuerier) QueryRAMUsageAvg(start, end time.Time) *Future[RAMUsageAvgResult] {
  195. m.recordCall("QueryRAMUsageAvg")
  196. return m.Querier.QueryRAMUsageAvg(start, end)
  197. }
  198. func (m *RecordMetricsQuerier) QueryRAMUsageMax(start, end time.Time) *Future[RAMUsageMaxResult] {
  199. m.recordCall("QueryRAMUsageMax")
  200. return m.Querier.QueryRAMUsageMax(start, end)
  201. }
  202. func (m *RecordMetricsQuerier) QueryNodeRAMPricePerGiBHr(start, end time.Time) *Future[NodeRAMPricePerGiBHrResult] {
  203. m.recordCall("QueryNodeRAMPricePerGiBHr")
  204. return m.Querier.QueryNodeRAMPricePerGiBHr(start, end)
  205. }
  206. // CPU
  207. func (m *RecordMetricsQuerier) QueryCPUCoresAllocated(start, end time.Time) *Future[CPUCoresAllocatedResult] {
  208. m.recordCall("QueryCPUCoresAllocated")
  209. return m.Querier.QueryCPUCoresAllocated(start, end)
  210. }
  211. func (m *RecordMetricsQuerier) QueryCPURequests(start, end time.Time) *Future[CPURequestsResult] {
  212. m.recordCall("QueryCPURequests")
  213. return m.Querier.QueryCPURequests(start, end)
  214. }
  215. func (m *RecordMetricsQuerier) QueryCPULimits(start, end time.Time) *Future[CPULimitsResult] {
  216. m.recordCall("QueryCPULimits")
  217. return m.Querier.QueryCPULimits(start, end)
  218. }
  219. func (m *RecordMetricsQuerier) QueryCPUUsageAvg(start, end time.Time) *Future[CPUUsageAvgResult] {
  220. m.recordCall("QueryCPUUsageAvg")
  221. return m.Querier.QueryCPUUsageAvg(start, end)
  222. }
  223. func (m *RecordMetricsQuerier) QueryCPUUsageMax(start, end time.Time) *Future[CPUUsageMaxResult] {
  224. m.recordCall("QueryCPUUsageMax")
  225. return m.Querier.QueryCPUUsageMax(start, end)
  226. }
  227. func (m *RecordMetricsQuerier) QueryNodeCPUPricePerHr(start, end time.Time) *Future[NodeCPUPricePerHrResult] {
  228. m.recordCall("QueryNodeCPUPricePerHr")
  229. return m.Querier.QueryNodeCPUPricePerHr(start, end)
  230. }
  231. // GPU
  232. func (m *RecordMetricsQuerier) QueryGPUsAllocated(start, end time.Time) *Future[GPUsAllocatedResult] {
  233. m.recordCall("QueryGPUsAllocated")
  234. return m.Querier.QueryGPUsAllocated(start, end)
  235. }
  236. func (m *RecordMetricsQuerier) QueryGPUsRequested(start, end time.Time) *Future[GPUsRequestedResult] {
  237. m.recordCall("QueryGPUsRequested")
  238. return m.Querier.QueryGPUsRequested(start, end)
  239. }
  240. func (m *RecordMetricsQuerier) QueryGPUsUsageAvg(start, end time.Time) *Future[GPUsUsageAvgResult] {
  241. m.recordCall("QueryGPUsUsageAvg")
  242. return m.Querier.QueryGPUsUsageAvg(start, end)
  243. }
  244. func (m *RecordMetricsQuerier) QueryGPUsUsageMax(start, end time.Time) *Future[GPUsUsageMaxResult] {
  245. m.recordCall("QueryGPUsUsageMax")
  246. return m.Querier.QueryGPUsUsageMax(start, end)
  247. }
  248. func (m *RecordMetricsQuerier) QueryNodeGPUPricePerHr(start, end time.Time) *Future[NodeGPUPricePerHrResult] {
  249. m.recordCall("QueryNodeGPUPricePerHr")
  250. return m.Querier.QueryNodeGPUPricePerHr(start, end)
  251. }
  252. func (m *RecordMetricsQuerier) QueryGPUInfo(start, end time.Time) *Future[GPUInfoResult] {
  253. m.recordCall("QueryGPUInfo")
  254. return m.Querier.QueryGPUInfo(start, end)
  255. }
  256. func (m *RecordMetricsQuerier) QueryIsGPUShared(start, end time.Time) *Future[IsGPUSharedResult] {
  257. m.recordCall("QueryIsGPUShared")
  258. return m.Querier.QueryIsGPUShared(start, end)
  259. }
  260. // Device
  261. func (m *RecordMetricsQuerier) QueryDCGMDeviceInfo(start, end time.Time) *Future[DCGMDeviceInfoResult] {
  262. m.recordCall("QueryDCGMDeviceInfo")
  263. return m.Querier.QueryDCGMDeviceInfo(start, end)
  264. }
  265. func (m *RecordMetricsQuerier) QueryDCGMDeviceUptime(start, end time.Time) *Future[DCGMDeviceUptimeResult] {
  266. m.recordCall("QueryDCGMDeviceUptime")
  267. return m.Querier.QueryDCGMDeviceUptime(start, end)
  268. }
  269. func (m *RecordMetricsQuerier) QueryDCGMContainerUsageAvg(start, end time.Time) *Future[DCGMDeviceContainerUsageResult] {
  270. m.recordCall("QueryDCGMContainerUsageAvg")
  271. return m.Querier.QueryDCGMContainerUsageAvg(start, end)
  272. }
  273. func (m *RecordMetricsQuerier) QueryDCGMContainerUsageMax(start, end time.Time) *Future[DCGMDeviceContainerUsageResult] {
  274. m.recordCall("QueryDCGMContainerUsageMax")
  275. return m.Querier.QueryDCGMContainerUsageMax(start, end)
  276. }
  277. // PVC
  278. func (m *RecordMetricsQuerier) QueryPodPVCAllocation(start, end time.Time) *Future[PodPVCAllocationResult] {
  279. m.recordCall("QueryPodPVCAllocation")
  280. return m.Querier.QueryPodPVCAllocation(start, end)
  281. }
  282. func (m *RecordMetricsQuerier) QueryPVCBytesRequested(start, end time.Time) *Future[PVCBytesRequestedResult] {
  283. m.recordCall("QueryPVCBytesRequested")
  284. return m.Querier.QueryPVCBytesRequested(start, end)
  285. }
  286. func (m *RecordMetricsQuerier) QueryPVCInfo(start, end time.Time) *Future[PVCInfoResult] {
  287. m.recordCall("QueryPVCInfo")
  288. return m.Querier.QueryPVCInfo(start, end)
  289. }
  290. func (m *RecordMetricsQuerier) QueryKMPVCInfo(start, end time.Time) *Future[PVCInfoResult] {
  291. m.recordCall("QueryKMPVCInfo")
  292. return m.Querier.QueryKMPVCInfo(start, end)
  293. }
  294. func (m *RecordMetricsQuerier) QueryPVCUptime(start, end time.Time) *Future[UptimeResult] {
  295. m.recordCall("QueryPVCUptime")
  296. return m.Querier.QueryPVCUptime(start, end)
  297. }
  298. func (m *RecordMetricsQuerier) QueryPVCBytesUsedAverage(start, end time.Time) *Future[PVCUIDValueResult] {
  299. m.recordCall("QueryPVCBytesUsedAverage")
  300. return m.Querier.QueryPVCBytesUsedAverage(start, end)
  301. }
  302. func (m *RecordMetricsQuerier) QueryPVCBytesUsedMax(start, end time.Time) *Future[PVCUIDValueResult] {
  303. m.recordCall("QueryPVCBytesUsedMax")
  304. return m.Querier.QueryPVCBytesUsedMax(start, end)
  305. }
  306. // PV
  307. func (m *RecordMetricsQuerier) QueryPVBytes(start, end time.Time) *Future[PVBytesResult] {
  308. m.recordCall("QueryPVBytes")
  309. return m.Querier.QueryPVBytes(start, end)
  310. }
  311. func (m *RecordMetricsQuerier) QueryPVPricePerGiBHour(start, end time.Time) *Future[PVPricePerGiBHourResult] {
  312. m.recordCall("QueryPVPricePerGiBHour")
  313. return m.Querier.QueryPVPricePerGiBHour(start, end)
  314. }
  315. func (m *RecordMetricsQuerier) QueryPVInfo(start, end time.Time) *Future[PVInfoResult] {
  316. m.recordCall("QueryPVInfo")
  317. return m.Querier.QueryPVInfo(start, end)
  318. }
  319. func (m *RecordMetricsQuerier) QueryPVActiveMinutes(start, end time.Time) *Future[PVActiveMinutesResult] {
  320. m.recordCall("QueryPVActiveMinutes")
  321. return m.Querier.QueryPVActiveMinutes(start, end)
  322. }
  323. func (m *RecordMetricsQuerier) QueryPVUsedAverage(start, end time.Time) *Future[PVUsedAvgResult] {
  324. m.recordCall("QueryPVUsedAverage")
  325. return m.Querier.QueryPVUsedAverage(start, end)
  326. }
  327. func (m *RecordMetricsQuerier) QueryPVUsedMax(start, end time.Time) *Future[PVUsedMaxResult] {
  328. m.recordCall("QueryPVUsedMax")
  329. return m.Querier.QueryPVUsedMax(start, end)
  330. }
  331. func (m *RecordMetricsQuerier) QueryKMPVInfo(start, end time.Time) *Future[PVInfoResult] {
  332. m.recordCall("QueryKMPVInfo")
  333. return m.Querier.QueryKMPVInfo(start, end)
  334. }
  335. func (m *RecordMetricsQuerier) QueryPVUptime(start, end time.Time) *Future[UptimeResult] {
  336. m.recordCall("QueryPVUptime")
  337. return m.Querier.QueryPVUptime(start, end)
  338. }
  339. // Deployment
  340. func (m *RecordMetricsQuerier) QueryDeploymentInfo(start, end time.Time) *Future[DeploymentInfoResult] {
  341. m.recordCall("QueryDeploymentInfo")
  342. return m.Querier.QueryDeploymentInfo(start, end)
  343. }
  344. func (m *RecordMetricsQuerier) QueryDeploymentUptime(start, end time.Time) *Future[UptimeResult] {
  345. m.recordCall("QueryDeploymentUptime")
  346. return m.Querier.QueryDeploymentUptime(start, end)
  347. }
  348. func (m *RecordMetricsQuerier) QueryDeploymentLabels(start, end time.Time) *Future[LabelsResult] {
  349. m.recordCall("QueryDeploymentLabels")
  350. return m.Querier.QueryDeploymentLabels(start, end)
  351. }
  352. func (m *RecordMetricsQuerier) QueryDeploymentAnnotations(start, end time.Time) *Future[AnnotationsResult] {
  353. m.recordCall("QueryDeploymentAnnotations")
  354. return m.Querier.QueryDeploymentAnnotations(start, end)
  355. }
  356. func (m *RecordMetricsQuerier) QueryDeploymentMatchLabels(start, end time.Time) *Future[DeploymentLabelsResult] {
  357. m.recordCall("QueryDeploymentMatchLabels")
  358. return m.Querier.QueryDeploymentMatchLabels(start, end)
  359. }
  360. // StatefulSet
  361. func (m *RecordMetricsQuerier) QueryStatefulSetInfo(start, end time.Time) *Future[StatefulSetInfoResult] {
  362. m.recordCall("QueryStatefulSetInfo")
  363. return m.Querier.QueryStatefulSetInfo(start, end)
  364. }
  365. func (m *RecordMetricsQuerier) QueryStatefulSetUptime(start, end time.Time) *Future[UptimeResult] {
  366. m.recordCall("QueryStatefulSetUptime")
  367. return m.Querier.QueryStatefulSetUptime(start, end)
  368. }
  369. func (m *RecordMetricsQuerier) QueryStatefulSetLabels(start, end time.Time) *Future[LabelsResult] {
  370. m.recordCall("QueryStatefulSetLabels")
  371. return m.Querier.QueryStatefulSetLabels(start, end)
  372. }
  373. func (m *RecordMetricsQuerier) QueryStatefulSetAnnotations(start, end time.Time) *Future[AnnotationsResult] {
  374. m.recordCall("QueryStatefulSetAnnotations")
  375. return m.Querier.QueryStatefulSetAnnotations(start, end)
  376. }
  377. func (m *RecordMetricsQuerier) QueryStatefulSetMatchLabels(start, end time.Time) *Future[StatefulSetLabelsResult] {
  378. m.recordCall("QueryStatefulSetMatchLabels")
  379. return m.Querier.QueryStatefulSetMatchLabels(start, end)
  380. }
  381. // DaemonSet
  382. func (m *RecordMetricsQuerier) QueryDaemonSetInfo(start, end time.Time) *Future[DaemonSetInfoResult] {
  383. m.recordCall("QueryDaemonSetInfo")
  384. return m.Querier.QueryDaemonSetInfo(start, end)
  385. }
  386. func (m *RecordMetricsQuerier) QueryDaemonSetUptime(start, end time.Time) *Future[UptimeResult] {
  387. m.recordCall("QueryDaemonSetUptime")
  388. return m.Querier.QueryDaemonSetUptime(start, end)
  389. }
  390. func (m *RecordMetricsQuerier) QueryDaemonSetLabels(start, end time.Time) *Future[LabelsResult] {
  391. m.recordCall("QueryDaemonSetLabels")
  392. return m.Querier.QueryDaemonSetLabels(start, end)
  393. }
  394. func (m *RecordMetricsQuerier) QueryDaemonSetAnnotations(start, end time.Time) *Future[AnnotationsResult] {
  395. m.recordCall("QueryDaemonSetAnnotations")
  396. return m.Querier.QueryDaemonSetAnnotations(start, end)
  397. }
  398. // Job
  399. func (m *RecordMetricsQuerier) QueryJobInfo(start, end time.Time) *Future[JobInfoResult] {
  400. m.recordCall("QueryJobInfo")
  401. return m.Querier.QueryJobInfo(start, end)
  402. }
  403. func (m *RecordMetricsQuerier) QueryJobUptime(start, end time.Time) *Future[UptimeResult] {
  404. m.recordCall("QueryJobUptime")
  405. return m.Querier.QueryJobUptime(start, end)
  406. }
  407. func (m *RecordMetricsQuerier) QueryJobLabels(start, end time.Time) *Future[LabelsResult] {
  408. m.recordCall("QueryJobLabels")
  409. return m.Querier.QueryJobLabels(start, end)
  410. }
  411. func (m *RecordMetricsQuerier) QueryJobAnnotations(start, end time.Time) *Future[AnnotationsResult] {
  412. m.recordCall("QueryJobAnnotations")
  413. return m.Querier.QueryJobAnnotations(start, end)
  414. }
  415. // CronJob
  416. func (m *RecordMetricsQuerier) QueryCronJobInfo(start, end time.Time) *Future[CronJobInfoResult] {
  417. m.recordCall("QueryCronJobInfo")
  418. return m.Querier.QueryCronJobInfo(start, end)
  419. }
  420. func (m *RecordMetricsQuerier) QueryCronJobUptime(start, end time.Time) *Future[UptimeResult] {
  421. m.recordCall("QueryCronJobUptime")
  422. return m.Querier.QueryCronJobUptime(start, end)
  423. }
  424. func (m *RecordMetricsQuerier) QueryCronJobLabels(start, end time.Time) *Future[LabelsResult] {
  425. m.recordCall("QueryCronJobLabels")
  426. return m.Querier.QueryCronJobLabels(start, end)
  427. }
  428. func (m *RecordMetricsQuerier) QueryCronJobAnnotations(start, end time.Time) *Future[AnnotationsResult] {
  429. m.recordCall("QueryCronJobAnnotations")
  430. return m.Querier.QueryCronJobAnnotations(start, end)
  431. }
  432. // ReplicaSet
  433. func (m *RecordMetricsQuerier) QueryReplicaSetInfo(start, end time.Time) *Future[ReplicaSetInfoResult] {
  434. m.recordCall("QueryReplicaSetInfo")
  435. return m.Querier.QueryReplicaSetInfo(start, end)
  436. }
  437. func (m *RecordMetricsQuerier) QueryReplicaSetUptime(start, end time.Time) *Future[UptimeResult] {
  438. m.recordCall("QueryReplicaSetUptime")
  439. return m.Querier.QueryReplicaSetUptime(start, end)
  440. }
  441. func (m *RecordMetricsQuerier) QueryReplicaSetLabels(start, end time.Time) *Future[LabelsResult] {
  442. m.recordCall("QueryReplicaSetLabels")
  443. return m.Querier.QueryReplicaSetLabels(start, end)
  444. }
  445. func (m *RecordMetricsQuerier) QueryReplicaSetAnnotations(start, end time.Time) *Future[AnnotationsResult] {
  446. m.recordCall("QueryReplicaSetAnnotations")
  447. return m.Querier.QueryReplicaSetAnnotations(start, end)
  448. }
  449. func (m *RecordMetricsQuerier) QueryReplicaSetOwners(start, end time.Time) *Future[OwnerResult] {
  450. m.recordCall("QueryReplicaSetOwners")
  451. return m.Querier.QueryReplicaSetOwners(start, end)
  452. }
  453. // Namespace
  454. func (m *RecordMetricsQuerier) QueryNamespaceInfo(start, end time.Time) *Future[NamespaceInfoResult] {
  455. m.recordCall("QueryNamespaceInfo")
  456. return m.Querier.QueryNamespaceInfo(start, end)
  457. }
  458. func (m *RecordMetricsQuerier) QueryNamespaceUptime(start, end time.Time) *Future[UptimeResult] {
  459. m.recordCall("QueryNamespaceUptime")
  460. return m.Querier.QueryNamespaceUptime(start, end)
  461. }
  462. // Service
  463. func (m *RecordMetricsQuerier) QueryServiceInfo(start, end time.Time) *Future[ServiceInfoResult] {
  464. m.recordCall("QueryServiceInfo")
  465. return m.Querier.QueryServiceInfo(start, end)
  466. }
  467. func (m *RecordMetricsQuerier) QueryServiceUptime(start, end time.Time) *Future[UptimeResult] {
  468. m.recordCall("QueryServiceUptime")
  469. return m.Querier.QueryServiceUptime(start, end)
  470. }
  471. func (m *RecordMetricsQuerier) QueryServiceSelectorLabels(start, end time.Time) *Future[ServiceLabelsResult] {
  472. m.recordCall("QueryServiceSelectorLabels")
  473. return m.Querier.QueryServiceSelectorLabels(start, end)
  474. }
  475. // Network Egress
  476. func (m *RecordMetricsQuerier) QueryNetZoneGiB(start, end time.Time) *Future[NetZoneGiBResult] {
  477. m.recordCall("QueryNetZoneGiB")
  478. return m.Querier.QueryNetZoneGiB(start, end)
  479. }
  480. func (m *RecordMetricsQuerier) QueryNetZonePricePerGiB(start, end time.Time) *Future[NetZonePricePerGiBResult] {
  481. m.recordCall("QueryNetZonePricePerGiB")
  482. return m.Querier.QueryNetZonePricePerGiB(start, end)
  483. }
  484. func (m *RecordMetricsQuerier) QueryNetRegionGiB(start, end time.Time) *Future[NetRegionGiBResult] {
  485. m.recordCall("QueryNetRegionGiB")
  486. return m.Querier.QueryNetRegionGiB(start, end)
  487. }
  488. func (m *RecordMetricsQuerier) QueryNetRegionPricePerGiB(start, end time.Time) *Future[NetRegionPricePerGiBResult] {
  489. m.recordCall("QueryNetRegionPricePerGiB")
  490. return m.Querier.QueryNetRegionPricePerGiB(start, end)
  491. }
  492. func (m *RecordMetricsQuerier) QueryNetInternetGiB(start, end time.Time) *Future[NetInternetGiBResult] {
  493. m.recordCall("QueryNetInternetGiB")
  494. return m.Querier.QueryNetInternetGiB(start, end)
  495. }
  496. func (m *RecordMetricsQuerier) QueryNetInternetPricePerGiB(start, end time.Time) *Future[NetInternetPricePerGiBResult] {
  497. m.recordCall("QueryNetInternetPricePerGiB")
  498. return m.Querier.QueryNetInternetPricePerGiB(start, end)
  499. }
  500. func (m *RecordMetricsQuerier) QueryNetInternetServiceGiB(start, end time.Time) *Future[NetInternetServiceGiBResult] {
  501. m.recordCall("QueryNetInternetServiceGiB")
  502. return m.Querier.QueryNetInternetServiceGiB(start, end)
  503. }
  504. func (m *RecordMetricsQuerier) QueryNetNatGatewayPricePerGiB(start, end time.Time) *Future[NetNatGatewayPricePerGiBResult] {
  505. m.recordCall("QueryNetNatGatewayPricePerGiB")
  506. return m.Querier.QueryNetNatGatewayPricePerGiB(start, end)
  507. }
  508. func (m *RecordMetricsQuerier) QueryNetNatGatewayGiB(start, end time.Time) *Future[NetNatGatewayGiBResult] {
  509. m.recordCall("QueryNetNatGatewayGiB")
  510. return m.Querier.QueryNetNatGatewayGiB(start, end)
  511. }
  512. func (m *RecordMetricsQuerier) QueryNetTransferBytes(start, end time.Time) *Future[NetTransferBytesResult] {
  513. m.recordCall("QueryNetTransferBytes")
  514. return m.Querier.QueryNetTransferBytes(start, end)
  515. }
  516. // Network Ingress
  517. func (m *RecordMetricsQuerier) QueryNetZoneIngressGiB(start, end time.Time) *Future[NetZoneIngressGiBResult] {
  518. m.recordCall("QueryNetZoneIngressGiB")
  519. return m.Querier.QueryNetZoneIngressGiB(start, end)
  520. }
  521. func (m *RecordMetricsQuerier) QueryNetRegionIngressGiB(start, end time.Time) *Future[NetRegionIngressGiBResult] {
  522. m.recordCall("QueryNetRegionIngressGiB")
  523. return m.Querier.QueryNetRegionIngressGiB(start, end)
  524. }
  525. func (m *RecordMetricsQuerier) QueryNetInternetIngressGiB(start, end time.Time) *Future[NetInternetIngressGiBResult] {
  526. m.recordCall("QueryNetInternetIngressGiB")
  527. return m.Querier.QueryNetInternetIngressGiB(start, end)
  528. }
  529. func (m *RecordMetricsQuerier) QueryNetInternetServiceIngressGiB(start, end time.Time) *Future[NetInternetServiceIngressGiBResult] {
  530. m.recordCall("QueryNetInternetServiceIngressGiB")
  531. return m.Querier.QueryNetInternetServiceIngressGiB(start, end)
  532. }
  533. func (m *RecordMetricsQuerier) QueryNetNatGatewayIngressPricePerGiB(start, end time.Time) *Future[NetNatGatewayPricePerGiBResult] {
  534. m.recordCall("QueryNetNatGatewayIngressPricePerGiB")
  535. return m.Querier.QueryNetNatGatewayIngressPricePerGiB(start, end)
  536. }
  537. func (m *RecordMetricsQuerier) QueryNetNatGatewayIngressGiB(start, end time.Time) *Future[NetNatGatewayIngressGiBResult] {
  538. m.recordCall("QueryNetNatGatewayIngressGiB")
  539. return m.Querier.QueryNetNatGatewayIngressGiB(start, end)
  540. }
  541. func (m *RecordMetricsQuerier) QueryNetReceiveBytes(start, end time.Time) *Future[NetReceiveBytesResult] {
  542. m.recordCall("QueryNetReceiveBytes")
  543. return m.Querier.QueryNetReceiveBytes(start, end)
  544. }
  545. // Annotations
  546. func (m *RecordMetricsQuerier) QueryNamespaceAnnotations(start, end time.Time) *Future[NamespaceAnnotationsResult] {
  547. m.recordCall("QueryNamespaceAnnotations")
  548. return m.Querier.QueryNamespaceAnnotations(start, end)
  549. }
  550. func (m *RecordMetricsQuerier) QueryPodAnnotations(start, end time.Time) *Future[PodAnnotationsResult] {
  551. m.recordCall("QueryPodAnnotations")
  552. return m.Querier.QueryPodAnnotations(start, end)
  553. }
  554. // Labels
  555. func (m *RecordMetricsQuerier) QueryNodeLabels(start, end time.Time) *Future[NodeLabelsResult] {
  556. m.recordCall("QueryNodeLabels")
  557. return m.Querier.QueryNodeLabels(start, end)
  558. }
  559. func (m *RecordMetricsQuerier) QueryNamespaceLabels(start, end time.Time) *Future[NamespaceLabelsResult] {
  560. m.recordCall("QueryNamespaceLabels")
  561. return m.Querier.QueryNamespaceLabels(start, end)
  562. }
  563. func (m *RecordMetricsQuerier) QueryPodLabels(start, end time.Time) *Future[PodLabelsResult] {
  564. m.recordCall("QueryPodLabels")
  565. return m.Querier.QueryPodLabels(start, end)
  566. }
  567. func (m *RecordMetricsQuerier) QueryPodsWithDaemonSetOwner(start, end time.Time) *Future[PodsWithDaemonSetOwnerResult] {
  568. m.recordCall("QueryPodsWithDaemonSetOwner")
  569. return m.Querier.QueryPodsWithDaemonSetOwner(start, end)
  570. }
  571. func (m *RecordMetricsQuerier) QueryPodsWithJobOwner(start, end time.Time) *Future[PodsWithJobOwnerResult] {
  572. m.recordCall("QueryPodsWithJobOwner")
  573. return m.Querier.QueryPodsWithJobOwner(start, end)
  574. }
  575. // ReplicaSet -> Controller mapping
  576. func (m *RecordMetricsQuerier) QueryPodsWithReplicaSetOwner(start, end time.Time) *Future[PodsWithReplicaSetOwnerResult] {
  577. m.recordCall("QueryPodsWithReplicaSetOwner")
  578. return m.Querier.QueryPodsWithReplicaSetOwner(start, end)
  579. }
  580. func (m *RecordMetricsQuerier) QueryReplicaSetsWithoutOwners(start, end time.Time) *Future[ReplicaSetsWithoutOwnersResult] {
  581. m.recordCall("QueryReplicaSetsWithoutOwners")
  582. return m.Querier.QueryReplicaSetsWithoutOwners(start, end)
  583. }
  584. func (m *RecordMetricsQuerier) QueryReplicaSetsWithRollout(start, end time.Time) *Future[ReplicaSetsWithRolloutResult] {
  585. m.recordCall("QueryReplicaSetsWithRollout")
  586. return m.Querier.QueryReplicaSetsWithRollout(start, end)
  587. }
  588. // ResourceQuotas
  589. func (m *RecordMetricsQuerier) QueryResourceQuotaInfo(start, end time.Time) *Future[ResourceQuotaInfoResult] {
  590. m.recordCall("QueryResourceQuotaInfo")
  591. return m.Querier.QueryResourceQuotaInfo(start, end)
  592. }
  593. func (m *RecordMetricsQuerier) QueryResourceQuotaUptime(start, end time.Time) *Future[UptimeResult] {
  594. m.recordCall("QueryResourceQuotaUptime")
  595. return m.Querier.QueryResourceQuotaUptime(start, end)
  596. }
  597. func (m *RecordMetricsQuerier) QueryResourceQuotaSpecCPURequestAverage(start, end time.Time) *Future[ResourceResult] {
  598. m.recordCall("QueryResourceQuotaSpecCPURequestAverage")
  599. return m.Querier.QueryResourceQuotaSpecCPURequestAverage(start, end)
  600. }
  601. func (m *RecordMetricsQuerier) QueryResourceQuotaSpecCPURequestMax(start, end time.Time) *Future[ResourceResult] {
  602. m.recordCall("QueryResourceQuotaSpecCPURequestMax")
  603. return m.Querier.QueryResourceQuotaSpecCPURequestMax(start, end)
  604. }
  605. func (m *RecordMetricsQuerier) QueryResourceQuotaSpecRAMRequestAverage(start, end time.Time) *Future[ResourceResult] {
  606. m.recordCall("QueryResourceQuotaSpecRAMRequestAverage")
  607. return m.Querier.QueryResourceQuotaSpecRAMRequestAverage(start, end)
  608. }
  609. func (m *RecordMetricsQuerier) QueryResourceQuotaSpecRAMRequestMax(start, end time.Time) *Future[ResourceResult] {
  610. m.recordCall("QueryResourceQuotaSpecRAMRequestMax")
  611. return m.Querier.QueryResourceQuotaSpecRAMRequestMax(start, end)
  612. }
  613. func (m *RecordMetricsQuerier) QueryResourceQuotaSpecCPULimitAverage(start, end time.Time) *Future[ResourceResult] {
  614. m.recordCall("QueryResourceQuotaSpecCPULimitAverage")
  615. return m.Querier.QueryResourceQuotaSpecCPULimitAverage(start, end)
  616. }
  617. func (m *RecordMetricsQuerier) QueryResourceQuotaSpecCPULimitMax(start, end time.Time) *Future[ResourceResult] {
  618. m.recordCall("QueryResourceQuotaSpecCPULimitMax")
  619. return m.Querier.QueryResourceQuotaSpecCPULimitMax(start, end)
  620. }
  621. func (m *RecordMetricsQuerier) QueryResourceQuotaSpecRAMLimitAverage(start, end time.Time) *Future[ResourceResult] {
  622. m.recordCall("QueryResourceQuotaSpecRAMLimitAverage")
  623. return m.Querier.QueryResourceQuotaSpecRAMLimitAverage(start, end)
  624. }
  625. func (m *RecordMetricsQuerier) QueryResourceQuotaSpecRAMLimitMax(start, end time.Time) *Future[ResourceResult] {
  626. m.recordCall("QueryResourceQuotaSpecRAMLimitMax")
  627. return m.Querier.QueryResourceQuotaSpecRAMLimitMax(start, end)
  628. }
  629. func (m *RecordMetricsQuerier) QueryResourceQuotaStatusUsedCPURequestAverage(start, end time.Time) *Future[ResourceResult] {
  630. m.recordCall("QueryResourceQuotaStatusUsedCPURequestAverage")
  631. return m.Querier.QueryResourceQuotaStatusUsedCPURequestAverage(start, end)
  632. }
  633. func (m *RecordMetricsQuerier) QueryResourceQuotaStatusUsedCPURequestMax(start, end time.Time) *Future[ResourceResult] {
  634. m.recordCall("QueryResourceQuotaStatusUsedCPURequestMax")
  635. return m.Querier.QueryResourceQuotaStatusUsedCPURequestMax(start, end)
  636. }
  637. func (m *RecordMetricsQuerier) QueryResourceQuotaStatusUsedRAMRequestAverage(start, end time.Time) *Future[ResourceResult] {
  638. m.recordCall("QueryResourceQuotaStatusUsedRAMRequestAverage")
  639. return m.Querier.QueryResourceQuotaStatusUsedRAMRequestAverage(start, end)
  640. }
  641. func (m *RecordMetricsQuerier) QueryResourceQuotaStatusUsedRAMRequestMax(start, end time.Time) *Future[ResourceResult] {
  642. m.recordCall("QueryResourceQuotaStatusUsedRAMRequestMax")
  643. return m.Querier.QueryResourceQuotaStatusUsedRAMRequestMax(start, end)
  644. }
  645. func (m *RecordMetricsQuerier) QueryResourceQuotaStatusUsedCPULimitAverage(start, end time.Time) *Future[ResourceResult] {
  646. m.recordCall("QueryResourceQuotaStatusUsedCPULimitAverage")
  647. return m.Querier.QueryResourceQuotaStatusUsedCPULimitAverage(start, end)
  648. }
  649. func (m *RecordMetricsQuerier) QueryResourceQuotaStatusUsedCPULimitMax(start, end time.Time) *Future[ResourceResult] {
  650. m.recordCall("QueryResourceQuotaStatusUsedCPULimitMax")
  651. return m.Querier.QueryResourceQuotaStatusUsedCPULimitMax(start, end)
  652. }
  653. func (m *RecordMetricsQuerier) QueryResourceQuotaStatusUsedRAMLimitAverage(start, end time.Time) *Future[ResourceResult] {
  654. m.recordCall("QueryResourceQuotaStatusUsedRAMLimitAverage")
  655. return m.Querier.QueryResourceQuotaStatusUsedRAMLimitAverage(start, end)
  656. }
  657. func (m *RecordMetricsQuerier) QueryResourceQuotaStatusUsedRAMLimitMax(start, end time.Time) *Future[ResourceResult] {
  658. m.recordCall("QueryResourceQuotaStatusUsedRAMLimitMax")
  659. return m.Querier.QueryResourceQuotaStatusUsedRAMLimitMax(start, end)
  660. }
  661. // Data Coverage Query
  662. func (m *RecordMetricsQuerier) QueryDataCoverage(limitDays int) (time.Time, time.Time, error) {
  663. m.recordCall("QueryDataCoverage")
  664. return m.Querier.QueryDataCoverage(limitDays)
  665. }