record.go 32 KB

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